LINUX 大于2T磁盘创建EXT3文件系统

LINUX 大于2T磁盘创建EXT3文件系统
LINUX 大于2T磁盘创建EXT3文件系统

linux ext3支持2T以上大硬盘分区

6块硬盘,每个1TB,用一块硬盘做raid0,安装系统,剩余5块做raid5。由于ext3文件系统不支持大于2TB 的分区,所以考虑使用GPT首先以root身份登录系统,查看硬盘信息:fdisk -l

1.[root@libftp ~]# fdisk -l

2.

3.Disk /dev/cciss/c0d0: 1000.1 GB, 1000171331584 bytes

4.255 heads, 63 sectors/track, 121597 cylinders

5.Units = cylinders of 16065 * 512 = 8225280 bytes

6.

7. Device Boot Start End Blocks Id System

8./dev/cciss/c0d0p1 * 1 33 265041 83 Linux

9./dev/cciss/c0d0p2 34 116105 932348340 83 Linux

10./dev/cciss/c0d0p3 116106 118655 20482875 83 Linux

11./dev/cciss/c0d0p4 118656 121597 23631615 5 Extended

12./dev/cciss/c0d0p5 118656 120567 15358108+ 83 Linux

13./dev/cciss/c0d0p6 120568 121587 8193118+ 82 Linux swap / Solaris

14.

15.WARNING: GPT (GUID Partition Table) detected on '/dev/cciss/c0d1'! The util fdisk doesn't support GPT.

Use GNU Parted.

16.

17.

18.Disk /dev/cciss/c0d1: 4000.6 GB, 4000684662784 bytes

19.255 heads, 63 sectors/track, 486388 cylinders

20.Units = cylinders of 16065 * 512 = 8225280 bytes

21.

22. Device Boot Start End Blocks Id System

23./dev/cciss/c0d1p1 1 267350 2147483647+ ee EFI GPT

复制代码

使用parted命令:

1.[root@libftp ~]# parted /dev/cciss/c0d1

2.GNU Parted 1.8.1

https://www.360docs.net/doc/dc18127858.html,ing /dev/cciss/c0d1

4.Welcome to GNU Parted! Type 'help' to view a list of commands.

5.(parted) mklabel gpt

6.Warning: The existing disk label on /dev/cciss/c0d1 will be destroyed and all data on this disk will

be lost. Do you want to

7.continue?

8.Yes/No?

y

9.New disk label type? [gpt]? gpt

复制代码

下一步:由MBR转为GPT磁盘

1.(parted) mkpart primary 0 4000GB

2.

复制代码

print:

1.(parted) print

2.

3.Model: Compaq Smart Array (cpqarray)

4.Disk /dev/cciss/c0d1: 4001GB

5.Sector size (logical/physical): 512B/512B

6.Partition Table: gpt

7.

8.Number Start End Size File system Name Flags

9. 1 17.4kB 4001GB 4001GB primary

10.

11.(parted) quit

https://www.360docs.net/doc/dc18127858.html,rmation: Don't forget to update /etc/fstab, if necessary.

复制代码

下一步:格式化

1.[root@libftp ~]# mkfs.ext3 -F /dev/cciss/c0d1

2.mke2fs 1.39 (29-May-2006)

3.Filesystem label=

4.OS type: Linux

5.Block size=4096 (log=2)

6.Fragment size=4096 (log=2)

7.488374272 inodes, 976729654 blocks

8.48836482 blocks (5.00%) reserved for the super user

9.First data block=0

10.Maximum filesystem blocks=0

11.29808 block groups

12.32768 blocks per group, 32768 fragments per group

13.16384 inodes per group

14.Superblock backups stored on blocks:

15. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

16. 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

17. 102400000, 214990848, 512000000, 550731776, 644972544

18.

19.Writing inode tables: done

20.Creating journal (32768 blocks): done

21.Writing superblocks and filesystem accounting information: done

22.

23.This filesystem will be automatically checked every 22 mounts or

24.180 days, whichever comes first. Use tune2fs -c or -i to override.

复制代码

此时注意事项:mkfs.ext3 -F 后面要跟上 -F下一步:挂载

1.[root@libftp ~]# mkdir -p /mnt/cciss/c0d1

2.[root@libftp ~]# mount /dev/cciss/c0d1 /mnt/cciss/c0d1

复制代码

查看:

1.[root@libftp ~]# df -h

2.Filesystem Size Used Avail Use% Mounted on

3./dev/cciss/c0d0p5 15G 1.8G 12G 13% /

4./dev/cciss/c0d0p3 19G 173M 18G 1% /usr/local

5./dev/cciss/c0d0p2 862G 200M 817G 1% /else

6./dev/cciss/c0d0p1 251M 21M 218M 9% /boot

7.tmpfs 2.0G 0 2.0G 0% /dev/shm

8./dev/cciss/c0d1 3.6T 197M 3.4T 1% /mnt/cciss/c0d1

复制代码

开机自动挂载这块硬盘:vi /etc/rc.local加上:

1.mount /dev/cciss/c0d1 /mnt/cciss/c0d1

复制代码

搞定.

嵌入式Linux根文件系统制作

实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构 掌握根文件系统的搭建过程 掌握busybox、mkcramfs等工具的使用方法 二. 项目主要任务 使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS 格式的根文件系统。 分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程 三. 基本概念 1.文件系统基本概念 Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。 2.常见的嵌入式文件系统 嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。 (1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有: jffs2:RedHat基于jffs开发的文件系统。

3.ext2ext3 文件系统管理

CentOS 丛书目录 — 系统管理 — 网络服务 — 应用部署 ext2/ext3 文件系统管理 ext2/ext3 文件系统管理工具 在 e2fsprogs 软件包中提供了 ext2/ext3 文件系统管理工具。下面列出常用工具的说明: 创建 ext2/ext3 文件系统 mke2fs 命令用于创建 ext2/ext3 文件系统。mkfs.ext2 和 mkfs.ext3 命令都是 mke2fs 的硬链接,当使用 man mkfs.ext2 和 man mkfs.ext3 命令查看手册页时都定向到 mke2fs 。 mke2fs 命令的格式如下: 格式1: mke2fs [<选项>...] <设备名> [blocks-count] 格式2: mke2fs -j [<选项>...] <设备名> [blocks-count] 说明: 格式1用于创建 ext2 文件系统;格式2用于创建 ext3 日志文件系统。 blocks-count 用于指定要创建的文件系统的块数,此值应该小于 fdisk 命令查看的此分区或逻辑卷的块数,若省略此参数将使用整个分区或逻辑卷创建文件系统。 内容提要 1.熟悉 ext2/ext3 文件系统管理工具 2.学会使用 mke2fs 创建 ext2/ext3 文件系统 3.学会使用 e2fsck 检查 ext2/ext3 文件系统 4.学会使用 tune2fs 调整 ext2/ext3 文件系统的属性 工具 说明 /sbin/fsck 文件系统检查的前端工具 /sbin/e2fsck 检查和修复 ext2 或 ext3 文件系统 /sbin/fsck.ext2 检查和修复 ext2 文件系统 /sbin/fsck.ext3 检查和修复 ext3 文件系统 /sbin/mke2fs 创建 ext2 或 ext3 文件系统 /sbin/mkfs.ext2 创建 ext2 文件系统 /sbin/mkfs.ext3 创建 ext3 文件系统 /sbin/badblocks 检查磁盘分区坏块 /sbin/tune2fs 调整 ext2/ext3 文件系统的可调属性参数 /sbin/dumpe2fs 显示 ext2/ext3 文件系统的超级块和块组信息 /sbin/debugfs ext2/ext3 文件系统调试器 /sbin/e2label 显示或者修改 ext2/ext3 文件系统的卷标 /sbin/findfs 根据 ext2/ext3 文件系统的卷标或 UUID (全局唯一标识符,Universally Unique Identifier )查找对 应的设备 /sbin/resize2fs 更改 ext2/ext3 文件系统的容量

SQL Server 数据库清除日志的方法

SQL Server 数据库清除日志的方法 方法一: 1、打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_LOG 2、再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了。 方法二: 设置检查点,自动截断日志 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如用户数据库cwbase1)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存 2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定 3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据 方法三:通过SQL收缩日志 把代码复制到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可 SET NOCOUNT ON DECLARE @LogicalFileNamesysname, @MaxMinutes INT, @NewSize INT USE tablename -- 要操作的数据库名 SELECT @LogicalFileName = 'tablename_log', -- 日志文件名 @MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- 你想设定的日志文件的大小(M) -- Setup / initialize DECLARE @OriginalSizeint SELECT @OriginalSize = size FROM sysfiles WHERE name = @LogicalFileName SELECT 'Original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName CREATE TABLE DummyTrans (DummyColumn char (8000) not null) DECLARE @Counter INT,

busybox详解制作根文件系统

详解制作根文件系统 单击,返回主页,查看更多内容 一、FHS(Filesystem Hierarchy Standard)标准介绍 当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。 该标准规定了根目录下各个子目录的名称及其存放的内容: 制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括: ?编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 ?利用交叉编译工具链,构建/lib目录 ?手工构建/etc目录 ?手工构建最简化的/dev目录 ?创建其它空目录 ?配置系统自动生成/proc目录 ?利用udev构建完整的/dev目录 ?制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。 二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。 1、从https://www.360docs.net/doc/dc18127858.html,/下载busybox-1.7.0.tar.bz2 2、tar xjvf busybox-1.7.0.tar.bz2解包 3、修改Makefile文件 175 ARCH ?= arm 176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busybox busybox配置主要分两部分。 第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:

ext2和ext3的主要区别

在Red Hat Linux 7.2中,Red Hat首次支持日志文件系统ext3。ext3文件系统是对稳定的ext2文件系统的改进,有几项优点。本文概述这些优点,解释Red Hat公司对ext3进行了何种测试,略述性能调试(为高级用户)。 有数种基于Linux的日志文件系统正在开发之中。本文不言及这些日志文件系统,也不准备与这些日志文件系统进行比较。 ext3的优点 为什么你需要从ext2迁移到ext3呢?以下有四个主要原因:可用性、数据完整性、速度、易于迁移。 可用性 在非正常当机后(停电、系统崩溃),只有在通过e2fsck进行一致性校验后,ext2文件系统才能被装载使用。运行e2fsck的时间主要取决于ext2文件系统的大小。校验稍大一些的文件系统(几十GB)需要很长时间。如果文件系统上的文件数量多,校验的时间则更长。校验几百个GB的文件系统可能需要一个小时或更长。这极大地限制了可用性。 相比之下,除非发生硬件故障,即使非正常关机,ext3也不需要文件系统校验。这是因为数据是以文件系统始终保持一致方式写入磁盘的。在非正常关机后,恢复ext3文件系统的时间不依赖于文件系统的大小或文件数量,而依赖于维护一致性所需“日志”的大小。使用缺省日志设置,恢复时间仅需一秒(依赖于硬件速度)。 数据完整性 使用ext3文件系统,在非正常关机时,数据完整性能得到可靠的保障。你可以选择数据保护的类型和级别。你可以选择保证文件系统一致,但是允许文件系统上的数据在非正常关机时受损;这是可以在某些状况下提高一些速度(但非所有状况)。你也可以选择保持数据的可靠性与文件系统一致;这意味着在当机后,你不会在新近写入的文件中看到任何数据垃圾。这个保持数据的可靠性与文件系统一致的安全的选择是缺省设置。 速度 尽管ext3写入数据的次数多于ext2,但是ext3常常快于ext2(高数据流)。这是因为ext3的日志功能优化硬盘磁头的转动。你可以从3种日志模式中选择1种来优化速度,有选择地牺牲一些数据完整性。 第一种模式,data=writeback,有限地保证数据完整,允许旧数据在当机后存在于文件当中。这种模式可以在某些情况下提高速度。(在多数日志文件系统中,这种模式是缺省设置。这种模式为ext2文件系统提供有限的数据完整性,更多的是为了避免系统启动时的长时间的文件系统校验) 第二种模式,data=orderd(缺省模式),保持数据的可靠性与文件系统一致;这意味着在当机后,你不会在新近写入的文件中看到任何垃圾数据。 第三种模式,data=journal,需要大一些的日志以保证在多数情况下获得适中的速度。在当机后需要恢复的时间也长一些。但是在某些数据库操作时速度会快一些。 在通常情况下,建议使用缺省模式。如果需要改变模式,请在/etc/fstab文件中,为相应的文件系统加上data=模式的选项。详情可参看mount命令的man page在线手册(执行man mount)。 易于迁移 你可以不重新格式化硬盘,并且很方便的从ext2迁移至ext3而享受可靠的日志文件系统的好处。对,不需要做长时间的、枯燥的、有可能失误的“备份-重新格式化-恢复”操作,就可以体验ext3的优点。有两种迁移的方法: ·如果你升级你的系统,Red Hat Linux安装程序会协助迁移。需要你做的工作就是为每一

数据库的事务日志已满

数据库的事务日志已满。若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的log_reuse_wait_desc 列 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. 1、清空日志 DBCC SHRINKFILE(库名_log,0) DUMP TRANSACTION 库名WITH NO_LOG 2、截断事务日志: 如果出现“未能在sysfiles 中找到文件库名_log'。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。” 则使用这句SQL操作 BACKUP LOG 库名WITH NO_LOG DBCC SHRINKFILE(2,0) 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 a、选择日志文件--收缩文件至,这里会给出一个允许收缩到的最小M数,确定就可以了 b、选择数据文件--收缩文件至,这里会给出一个允许收缩到的最小M数,,确定就可以了也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDA TABASE(库名) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)

a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离pubs,然后将pubs 中的一个文件附加到当前服务器。a.分离 EXEC sp_detach_db @dbname = '库名' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = '库名', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf' 5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: EXEC sp_dboption '库名','autoshrink','TRUE' 6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式: alter database 库名modify file(name=逻辑文件名,maxsize=20)

实验四 ramdisk 根文件系统的制作

实验四ramdisk根文件系统的制作 一.实验目的 1.熟悉根文件系统组织结构; 2.定制、编译ramdisk根文件系统。 二.实验设备 1.硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 2.软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三.实验内容 利用6.3 中的已经完成的文件系统,生成一个根文件系统镜像。 四.实验原理 ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录: bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin 目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。1.制作ramdisk根文件系统映像 1)单击菜单应用程序->附件->终端打开终端,设置环境变量: $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)执行命令切换到ramdisk实验目录下: $cd $SIMPLEDIR/6.4-ramdisk 3)运行脚本文件: $ sudosh ramdisk-install.sh shell 脚本命令说明: #!/bin/bash # # ramdisk-install.sh - Make ramdiskfilesystem. # # Copyright (C) 2002-2007

MSSQL2000中没有日志文件的数据库恢复方法

MSSQL2000 中没有日志文件的数据库恢复方法 由于种种原因, 我们如果当时仅仅备份了 mdf 文件,那么恢复起来就是一件 很麻烦的事情了。 如果您的 mdf 文件是当前数据库产生的,那么很侥幸,也许你使用 sp_attach_db 或者 sp_attach_single_file_db 可以恢复数据库,但是会出现类 似下面的提示信息 ########################################################## 设备激活错误。 物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有误。 已创建名为 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。 ########################################################## 但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也 许上述办法就行不通了。你也许会得到类似下面的错误信息 ########################################################## 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 'test'。CREATE DATABASE 将终止。 设备激活错误。物理文件名 'd:\test_log.LDF' 可能有误。 ########################################################## 当出现以上问题时,恢复的办法如下: A.我们使用默认方式建立一个供恢复使用的数据库(数据库名应该与要恢复 的数据库相同,如 test)。可以在 SQL Server Enterprise Manager 里面建立。 B.停掉数据库服务器。 C.将刚才生成的数据库的日志文件 test_log.ldf 删除,用要恢复的数据库 mdf 文件覆盖刚才生成的数据库数据文件 test_data.mdf。 D.启动数据库服务器。此时会看到数据库 test 的状态为“置疑”。这时候 不能对此数据库进行任何操作。 E.设置数据库允许直接操作系统表。此操 作可以在 SQL Server Enterprise Manager 里面选择数据库服务器,按右键,选 择“属性”, 在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。 也可以使用如下语句来实现。

实验八 构建根文件系统

实验八构建根文件系统 一、实验目的 1、了解嵌入式Linux文件系统的作用和类型; 2、了解jffs2文件系统的优点和在嵌入式系统中的应用; 3、理解文件系统的挂载过程; 4、使用BusyBox制作一个根文件系统。 二、实验环境 预装redhat9.0(内核版本2.4.x)的pc机一台,XScale嵌入式实验箱一台(已构建嵌入式Linux系统),以太网线一根,交叉编译工具链,BusyBox软件包。 三、实验步骤 1、解压BusyBox软件包; 2、使用make menuconfig来配置BusyBox,修改交叉编译器前缀; Build Option [*] Build BusyBox as a static binary(no shared library) [*]Do you want to build BusyBox with a Cross ompile /usr/local/hybus-linux-R1.1/bin/arm-linux- Installation Option [*]Don't’t use /use Coreutils [*]ls

[*]cp [*]reboot [*]echo [*]mkdir [*]rm Editors [*]vi Login Utilities [*]getty 3、交叉编译BusyBox; make make install 4、建立BusyBox顶层目录结构 mkdir etc dev proc tmp lib var sys 5、在dev目录下创建必要的设备节点 (ram0,console,null,zero); mknod mdblock b 31 3 mknod console c 5 1 mknod null c 1 3 mknod zero c 1 5 cp –dpR /dev /_install/dev (假设busybox的安装目录为/_install)

基于busybox的根文件系统制作

龙源期刊网 https://www.360docs.net/doc/dc18127858.html, 基于busybox的根文件系统制作 作者:李飞,武金虎,石颖博 来源:《电脑知识与技术》2010年第17期 摘要:Busybox是构建嵌入式Linux文件系统的必备软件,它是所有文件和设备节点的起始点,是决定系统能否正常启动的关键。通过busybox-1.1.3为例,进行配置、编译、安装等过程,从而形成简单的根文件系统映像文件,为以后嵌入式Linux系统的移植打下了良好的开端。 关键词:Busybox;嵌入式Linux;Linux操作系统;根文件系统;cramfs 文件系统 中国分类号:TP316.81文献标识码:A文章编号:1009-3044(2010)17-4655-02 Making Root File System Based on Busybox LI Fei, WU Jin-hu, SHI Ying-bo (College of Computer Science and Information, Guizhou University, Guiyang 550025, China) Abstract: Busybox is an essentiaL software to buiLd an embedded Linux fiLe system. It is the starting node point of aLL the fiLes and devices and the key whether the system can have a normaL start. Taking busybox-1.1.3 for exampLe, making a simpLe root image system fiLe by configuration compiLation and instaLLation Lays a good foundation for migration of the embedded Linux system. Key words: busybox; embedded linux; Linux OS; root file system; cramfs file system 1 根文件系统结构 根文件系统是所有文件和设备节点的起始点,包括系统所必须的各种工具软件、库文件、 脚本、配置文件等一系列的文件。一个基本的Linux根文件系统包含有以下的目录:dev、proc、bin、etc、usr、Lib、temp、var、usr等等目录。其中dev是设备文件节点目录,proc是挂载proc文件系统所用的目录,bin目录下面包含了系统的基本命令,etc目录是系统启动脚本所在的目录,Lib是系统默认的动态链接库目录,usr是用户目录,temp是临时目录,用来保存临时文 件,var目录包含系统运行时要改变的数据。以上都是根文件系统所必须的目录 2 Busybox简介 熟练嵌入式Linux的朋友对busybox一定不会陌生,它是标准Linux工具的一个单个可执行实现,被形象的称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX工具和命令 结合到一个单独的可执行程序中。虽然busybox中的这些工具相对于GNU常用工具功能有所

Ext3文件系统

EXT3文件系统 EXT2和EXT3是许多Linux操作系统发行版本的默认文件系统。EXT基于UFS,是一种快速、稳定的文件系统。 随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了;其中EXT2文件系统是非日志式文件系统,这在关键行业的应用是一个致命的弱点,EXT3文件系统弥补了这一缺点。 EXT3文件系统是直接从EXT2文件系统发展而来,目前EXT3文件系统已经非常稳定可靠。它完全兼容EXT2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是EXT3日志文件系统初始设计的初衷。 Ext3文件系统属于一种日志文件系统,是对Ext2系统的扩展。Ext3系统兼容Ext2文件系统,二者之间的相互转换并不复杂。 Ext2是 GNU/Linux 系统中标准的文件系统,其簇快取层的优良设计使得Ext2系统存取文件的性能非常好,尤其是针对中小型的文件更显优势。 Ext3是一种日志式文件系统,日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。由于文件系统都有快取层参与运作,不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部关闭后才能进行关机。 如果在文件系统尚未关闭前就关机 (如停电) 时,下次重开机后会造成文件系统的资料不一致,故(所以)这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而这一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。 为了克服此问题,使用(便出现了)所谓的日志式文件系统 (Journal File System) 。此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。 由于资料的写入动作包含许多的细节,如改变文件标头资料、搜寻磁盘可写入空间、一个个写入资料区段等等,每一个细节进行到一半若被中断,就会造成文件系统的不一致,因而需要重整。 然而在日志式文件系统中,由于详细纪录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回溯并重整被中断的部分,而不必花时间去检查其他的部分,故重整的工作速度相当快,几乎不需要花时间。 EXT3日志文件系统的特点 1、高可用性 系统使用了EXT3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。宕机发生后,恢复EXT3文件系统的时间只要数十秒钟。 2、数据的完整性: EXT3文件系统能够极大地提高文件系统的完整性,避免了意外宕机对文件系统的破

嵌入式 linux 根文件系统 rootfs

一、什么是文件系统(Filesystem) 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点。 二、主要嵌入式采用的文件系统 * Linux 中,rootfs是必不可少的。PC 上主要实现有ramdisk和直接挂载HD(Harddisk,硬盘) 上的根文件系统;嵌入式中一般不从HD 启动,而是从Flash 启动,最简单的方法是将rootfs load 到RAM 的RAMDisk,稍复杂的就是直接从Flash 读取的Cramfs,更复杂的是在Flash 上分区,并构建JFFS2 等文件系统。 * RAMDisk将制作好的rootfs压缩后写入Flash,启动的时候由Bootloader load 到RAM,解压缩,然后挂载到/。这种方法操作简单,但是在RAM 中的文件系统不是压缩的,因此需要占用许多嵌入式系统中稀有资源RAM。 ramdisk就是用内存空间来模拟出硬盘分区,ramdisk通常使用磁盘文件系统的压缩存放在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统, 在linux系统中,ramdisk有二种,一种就是可以格式化并加载,在linux内核2.0/2.2就已经支持,其不足之处是大小固定;另一种是2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小随所需要的空间增加或减少,是目前linux常用的ramdisk技术. * initrd是RAMDisk的格式,kernel 2.4 之前都是image-initrd,Kernel 2.5 引入了cpio-initrd,大大简化了Linux 的启动过程,附合Linux 的基本哲学:Keep it simple, stupid(KISS). 不过cpio-initrd作为新的格式,还没有经过广泛测试,嵌入式Linux 中主要采用的还是image-initrd。 * Cramfs是Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从Flash 上运行,不须load 到RAM 中,因此节约了RAM。但是Cramfs是只读的,对于需要运行时修改的目录(如:/etc, /var, /tmp)多有不便,因此,一般将这些目录做成ramfs等可写的fs。 * SquashFS是对Cramfs的增强。突破了Cramfs的一些限制,在Flash 和RAM 的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如Cramfs。这也是一种新方法,在嵌入式系统采用之前,需要经过更多的测试 三、建一个包含所有文件的目录 1。建一个目录rootfs用来装文件系统 2。mkdir bin devetc lib procsbintmpusrvar 3. ln -fs bin/busyboxlinuxrc(使用busybox)

在硬盘上制作根文件系统.doc

在硬盘上制作根文件系统 一、实验目标: 在硬盘上建立一个根文件系统,硬盘镜像文件的名称为:hdc-0.11.new.img 二、实验环境: 1、Vmware workation, bochs虚拟机,ultraedit编辑环境 2、用到的四个重要的镜像文件:bootimage-0.11-hd,hdc-0.1.img,并将他们放到 mylinux0.11文件夹中。 3、实验环境:redhat linux 三、实验理论依据: 1、Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括以下一些子目录和文件: etc/ 目录主要含有一些系统配置文件; dev/ 含有设备特殊文件,用于使用文件操作语句操作设备; bin/ 存放系统执行程序。例如sh、mkfs、fdisk等; usr/ 存放库函数、手册和其它一些文件; usr/bin 存放用户常用的普通命令; var/ 用于存放系统运行时可变的数据或者是日志等信息。 存放文件系统的设备就是文件系统设备。Linux 0.11内核所支持的文件系统是MINIX 1.0文件系统。 2、inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬 盘、软盘、U盘... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode 值最快的找到相对应的文件。每一个文件开头都是一个inode。 做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。

根文件系统制作

Linux根文件系统的制作 1. 根文件系统 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点。 注:对于我们应用开发来说,购买开发板的时候,厂家会提供好现成的根文件系统和BootLoader等,如果需要,我们可以改变其中的命令而无需从头开始制作一个新的根文件系统。不过这儿的制作过程可以让我们更深一点理解Linux的文件系统。 2.主要的根文件系统 * Linux 中,rootfs 是必不可少的。PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk,硬盘)上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法是 将 rootfs load 到 RAM 的 RAMDisk,稍复杂的就是直接从Flash 读取的 Cramfs,更复杂的是在 Flash 上分区,并构建 JFFS2 等文件系统。 * RAMDisk 将制作好的 rootfs 压缩后写入 Flash,启动的时候由 Bootloader load 到RAM,解压缩,然后挂载到 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的,因此需要占用许多嵌入式系统中稀有资源 RAM。 ramdisk 就是用内存空间来模拟出硬盘分区,ramdisk通常使用磁盘文件系统的压缩存放在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统, 在linux系统中,ramdisk 有二种,一种就是可以格式化并加载,在linux内核2.0/2.2就已经支持,其不足之处是大小固定;另一种是 2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小 随所需要的空间增加或减少,是目前linux常用的ramdisk技术. * initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学:Keep it simple, stupid(KISS). 不过cpio-initrd 作为新的格式,还没有经过广泛测试,嵌入式 Linux 中主要采用的还是 image-initrd。 * Cramfs 是 Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从 Flash 上运行,不须 load 到 RAM 中,因此节约了 RAM。但是 Cramfs 是只读的,对于需要运行时修 改的目录(如: /etc, /var, /tmp)多有不便,因此,一般将这些目录做成ramfs 等可写的 fs。 * SquashFS 是对 Cramfs 的增强。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方法,在嵌入式系统采用之前,需要经过更多的测试。 3.Ramdisk制作 RAMDisk的制作方法如下:

数据库日志管理

一数据库日志文件管理 SQL SERVER日志清除的两种方法 在使用过程中大家经常碰到数据库日志非常大的情况,在这里介绍了两种处理方法...... 方法一: 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大。 1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选 择你的数据库名称-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择"简单",然后按确定保存。 2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定。 3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据 方法二: 如果日志文件过于庞大,使用数据库收缩已经不能解决问题,可以考虑使用以下的方法。 对数据库进行分离,分离后将日志文件改名,然后重新附加数据库,此时会提示没有正确的日志文件,不要管,在附加过程中会重新生成日志文件。 完成后,在数据库属性中重新设置日志文件的大小,可设置为5G,这样就把原来的日志清除掉了。 注意:该方法在使用过程中,可能对数据库分离时间点上的数据有影响,因此,如果出现问题,请重新恢复该部分数据。或者在停止业务一段时间后再进行操作。 在SQL Server 2000企业管理器里面收缩数据库日志 操作环境:Windows 2000 Server 简体中文版+ sp4、SQL Server 2000标准版+sp4 任务描述: 在企业管理器里面收缩数据库日志 以下为操作截屏:

Linux ext3

Linux ext3 在Red Hat Linux 7.2版中,Red Hat首次支持了日志文件系统的ext3文件系统。该文件系统是在ext2文件系统的基础上进行了改进,是使用了日志功能的ext2文件系统加强版。ext3文件系统为ext2文件系统共享了所的磁盘设备,并添加了向ext2文件系统转换的能力。 ext3基于ext2的代码,所以它的磁盘格式和ext2的相同,这意味着一个干净卸载的ext3文件系统可以作将ext2文件系统毫无问题地重新挂装。ext3文件系统和ext2文件系统都使用相同的元数据,因而有可能执行ext2文件系统到ext3文件系统的现场升级,从ext2文件系统升级到ext3只需要短短的几分钟。 1.日志(Journaling) 日志块设备层(JBD,Journaling block device layer)完成ext3文件系统日志功能。JBD不是ext3文件系统所特有的,它的设计目标是为了向一个块设备添加日志功能。当一个修改执行时,ext3文件系统代码将通知JBD,称为一个事务(transaction)。如果在事务执行时突然断电或出现其他情况导致事务终止,日志功能具有的重放功能,能重新执行中断的事务。日志中有三种数据模式:第一种模式:data=writeback。在这种模式里ext3文件系统根本不处理任何形式的日志数据(如XFS、JFS和ReiserFS)。尽管事实上它提供有限的数据完整性并能摧毁用户最近修改的文件,但这种模式能给用户整体上的最高性能。 第二种模式:data=ordered,在这种模式下ext3文件系统只记录元数据日志,但它将元数据和数据分组成一个单元称为事务(transaction)。这种模式保持数据的可靠性与文件系统一致性,这意味着在系统崩溃后,用户不会在新近写入的文件中看到任何垃圾数据。总体来说这种模式的性能远远低于data=writeback模式,但却比data=journal模式快很多。 第三种模式:data=journal。这种模式提供了完整的数据及元数据日志,所有新数据,首先被写入日志,然后才被定位。当发生灾难性故障后,日志可以被重新播放,将数据和元数据带回到一致状态。这种模式的整体性能是最慢的,但数据需要从磁盘读取和写入磁盘时却是三种模式中最快的。 2.ext3文件系统的优点 ext3文件系统在ext2文件系统的基础了做出了很大改进,并解决了ext2文件系统的缺点。除了具有明显的优点外,ext3文件系统还具有以下特点: 可用性 ext3文件系统提供了登记报表方式,这意味着非正常系统关机后没必要再进行类似ext2中fsck的检查。ext3文件系统的检查只在一些罕见的硬件失效的情况下发生。非法系统关机后,ext3文件系统的恢复时间不根据文件系统的大小或文件的数量而定,而是根据用于维护一致性的登记日志文件的大小而定。

数据库系统形考选择题

数据库系统形考选择题 1.关于数据库管理系统的说法,错误的是( C )。 A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.关于用文件管理数据的说法,错误的是( D )。 A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率 3.数据库系统的物理独立性是指( D )。 A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 4.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是( B )。 A.数据库B.操作系统 C.应用程序D.数据库管理系统 5.数据库三级模式结构的划分,有利于(A )。 A. 数据的独立性 B. 管理数据库文件 C. 建立数据库 D. 操作系统管理数据库 6.在数据库的三级模式中,描述数据库中全体数据的逻辑结构和特征的是( B )。 A.内模式 B.模式 C. 外模式 D. 其他 7.在用数据模型描述数据时,一般要求数据模型要满足三个要求。下列描述中,不属于数据 模型应满足的要求的是( A )。 A.A.能够描述并发数据B.能够真实地模拟现实世界 B.C.容易被业务人员理解D.能够方便地在计算机上实现 8.数据模型三要素是指(B )。 A.数据结构、数据对象和数据共享 B.数据结构、数据操作和数据完整性约束 C.数据结构、数据操作和数据的安全控制 D.数据结构、数据操作和数据的可靠性 9.下列关于实体联系模型中联系的说法,错误的是( D )。 A.一个联系可以只与一个实体有关 B.一个联系可以与两个实体有关 C.一个联系可以与多个实体有关

相关文档
最新文档