tune2fs

调整ext2/ext3/ext4文件系统参数


语法格式

tune2fs [-fjl] [-c max-mounts] [-C mount-count] [-e errors-how]
[-E extended-opts] [-I chk-intvl[d|m|w]] [-J journal-opts]
[-L volume-name] [-m rsv-blk-percent]  [-M last-mnt-dir]  
[-o [^]mount-opts] [-O [^]features] [-r reserved-blocks]
[-T last-chk-time] [-u user] [-g group] [-U uuid] device

命令简介

利用tune2fs命令,能够查询、设置与修改ext2/ext3/ext4文件系统的各种可调参数。例如,利用“-l”选项可以显示文件系统参数的当前设置。

在上述语法格式中,device是文件系统分区的设备名,如/dev/sda6等。

命令选项

-c max-mounts  调整文件系统的最大安装次数。超过此限,系统需要采用e2fsck命令检测文件系统。如果最大安装次数设置为0或-1,e2fsck命令与系统内核将会忽略文件系统的安装次数。在使用具有日志功能的文件系统时,合理地设置文件系统的最大安装次数将会避免系统同时检测所有的文件系统。

-C mount-count  设置文件系统已安装的次数。如果设置的安装次数大于最大安装次数(参见“-c”选项),在下一次引导系统时,系统将会使用e2fsck命令检测文件系统。

-e errors-how  指定在检测到文件系统错误时内核应当采取的处理动作。在任何情况下,文件系统的错误都会导致下一次引导系统时采用e2fsck命令检测文件系统。文件系统出现错误时内核可以采用下列三种处理方式之一:

continue 继续正常运行。

remount-ro 以只读方式重新安装文件系统。

panic 引起系统瘫痪。

-E extended-opts  设置文件系统的扩充选项。多个选项可以并列,中间加逗号“,”分隔符。扩充选项采用“opt=arg”的形式,如“hash_alg=hash-alg”表示设置文件系统默认的散列算法,用于实现散列B树格式的目录。可以接受的有效算法是:legacy、half_md4和tea。

-f  强制运行tune2fs命令,即使在操作过程中出现问题。

-g group  设置能够使用文件系统保留数据块的用户组。给定的用户组参数既可以是用户组ID,也可以是用户组名。不管采用哪一种指定方式,系统最终都会把数值形式的用户组ID写入超级块中。

-i chk-intvl[d|m|w]  设定两次文件系统检测之间的最大时间间隔。如果指定的数值后面没有后缀,或后缀为d,则表示天数。后缀为m表示月数,后缀为w表示周数。如果指定的数值为0,表示禁止使用与时间有关的文件系统检测。强烈建议用户启用“-c”或“-i”选项表示的文件系统检测功能,以便强制系统周期性地采用e2fsck命令执行全面的文件系统检测。否则有可能因坏块或内核漏洞等原因导致文件系统损害而长期毫无觉察,直至最终引起数据的丢失或文件系统的严重受损。

-j  在ext2文件系统中增加ext3日志功能。

-J journal-opts  替换默认的ext3日志选项size与device。两个选项可以并列,中间加逗号分隔符。日志选项采用“opt=arg”的形式,例如,“size=journal-size”表示在文件系统中创建指定大小的日志。日志至少必须具有1024个逻辑数据块。也就是说,如果文件系统的逻辑数据块为1KB,日志至少必须设为1MB;如果逻辑数据块为4KB,日志至少必须设为4MB,但最大不能超过102 400个逻辑数据块。

-l  列出文件系统超级块中的数据内容,包括tune2fs命令能够调整的参数及其当前设置。

-L volume-label  设置文件系统的卷标。ext2/ext3/ext4文件系统的卷标可以长达16个字符。如果给定的卷标超过16个字符,tune2fs命令将会截掉超常部分,同时输出一条警告信息。在mount和fsck命令中,以及在/etc/fstab文件中,均可采用“LABEL=vol-label”的形式,以卷标替代设备文件名,如/dev/sda6等。

-m rsv-blk-percent  设置文件系统保留数据块的百分比。文件系统的保留数据块主要供特权进程使用。通常,保留数据块占整个文件系统容量的百分比是5%。

-M last-mnt-dir  设置文件系统最近一次安装的目录。

-o [^]mount-opts  设置或清除默认的文件系统安装选项。/etc/fstab文件和mount命令中指定的安装选项可以替代默认的安装选项。多个选项可以并列,中间加逗号分隔符。如果安装选项前面有一个上箭头字符“^”,表示应在文件系统超级块中清除相应的安装选项。如果安装选项前面存在一个加号字符“+”或没有任何前缀,表示应在文件系统超级块中增加相应的安装选项。利用tune2fs命令,可以设置或清除下列文件系统安装选项:

debug  启用文件系统的调试模式。

user_xattr  启用用户指定的文件扩展属性。

acl  启用POSIX访问控制表ACL。

uid16  禁止使用32位的UID和GID。以便能够与仅支持16位UID和GID的早期内核互操作。

journal_data  当安装的文件系统启用了日志功能时,所有的数据(不仅是元数据)首先提交给日志,然后才写入文件系统。

journal_data_ordered  当安装的文件系统启用了日志功能时,把元数据提交给日志之前,强制把所有的数据直接写入文件系统。

journal_data_writeback  当安装的文件系统启用了日志功能时,把元数据提交给日志之后,才可以把数据写入文件系统。

-O [^]features  设置或清除文件系统的功能特性。多个功能特性可以并列,中间加逗号分隔符。如果功能特性前面有一个上箭头字符“^”,表示清除相应的功能特性;如果功能特性前面存在一个加号字符“+”或没有任何前缀,表示增加相应的功能特性。利用tune2fs命令,可以设置或清除下列文件系统功能特性:

dir_index  采用散列B树提高大型目录的文件检索速度。

filetype  在目录项中存储文件类型信息。

flex_bg  允许把数据块组的位图和信息节点表置于存储介质的任何地方(仅适用于ext4文件系统)。

has_journal  使用日志确保文件系统的一致性。等价于指定“-j”选项。

large_file  确保文件系统能够存储大于2GB的文件。

resize_inode  保留空间以便数据块组描述表将来能够扩充(tune2fs只能清除这个功能特性)。

sparse_super  限制备份超级块的数量,以节省大型文件系统的空间。

uninit_bg  允许内核初始化位图和信息节点表,以便文件系统能够保持较多未用的信息节点,从而减少e2fsck的运行时间(仅适用于ext4文件系统)。

在设置或清除了文件系统的sparse_super、uninit_bg、filetype或resize_inode功能特性之后,必须运行e2fsck,以确保文件系统的一致性。如果需要,tune2fs命令将会给出一条消息,要求系统管理员运行e2fsck命令。在设置了文件系统的dir_index功能特性之后,需要运行“e2fsck -D”命令,以便把现有的目录转换成散列的B树格式。

-r reserved-blocks  设置文件系统保留的数据块数量。

-T last-chk-time  设置最近一次使用e2fsck命令检测文件系统的时间(本地时区)。时间采用国际日期格式“YYYYMMDD[[HHMM]SS]”表示。也可以使用关键字 now,把系统的当前时间作为文件系统的检测时间。

-u user  设置能够使用文件系统保留数据块的用户。指定用户时既可以使用用户ID,也可以使用用户名,但不管采用哪一种指定方式,系统最终都会把数值形式的用户ID写入超级块中。

-U uuid  设置文件系统的通用唯一标识符(UUID)。UUID是一系列十六进制数值中间加连字符组成的数字串。uuid参数可以选用下列值之一:

clear  清除文件系统的UUID。

random  随机生成一个新的UUID。

time  基于时间生成一个新的UUID。

mount命令、fsck命令以及/etc/fstab文件等可以采用“UUID=uuid”的形式使用UUID取代文件系统的设备文件名。

应用实例

1. 查询ext2/ext3/ext4文件系统的基本信息。

# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:         data01
Last mounted on:                <not available>
Filesystem UUID:                051eff62-6406-473f-9527-046fd0016f79
Filesystem magic number:        0xEF53
Filesystem revision #:          1 (dynamic)
Filesystem features:            has_journal ext_attr resize_inode dir_index ……
Filesystem flags:               signed_directory_hash
Default mount options:          (none)
Filesystem state:               clean
Errors behavior:                Continue
Filesystem OS type:             Linux
Inode count:                    1221600
Block count:                    4883708
Reserved block count:           244185
Free blocks:                    4763009
Free inodes:                    1221589
First block:                    0
Block size:                     4096
Fragment size:                  4096
Reserved GDT blocks:            1022
Blocks per group:               32768
Fragments per group:            32768
Inodes per group:               8144
Inode blocks per group:         509
Flex block group size:          16
Filesystem created:             Thu Dec 23 23:14:04 2010

First inode:                    11
Inode size:                     256
Journal inode:                  8

#

2. 在ext2文件系统中建立目录索引,提高ext2文件系统检索大型目录的速度。

# tune2fs –O dir_index /dev/sdb2
tune2fs 1.41.12 (17-May-2010)
#

3. 在ext2文件系统中增加日志功能,把ext2文件系统转换为ext3文件系统。

# tune2fs -j /dev/sdb2
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#

4. 把ext3文件系统转换为ext4文件系统(确保文件系统已经卸载)。

# tune2fs -O extents,uninit_bg,dir_index /dev/sdb2
tune2fs 1.41.12 (17-May-2010)

Please run e2fsck on the filesystem.

#

之后还需要运行fsck命令,修复文件系统,否则无法安装刚转换的ext4文件系统。

# fsck -Df /dev/sdb2
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
One or more block group descriptor checksums are invalid.  Fix<y>? yes

Group descriptor 0 checksum is invalid.  FIXED.
Group descriptor 1 checksum is invalid.  FIXED.

Group descriptor 149 checksum is invalid.  FIXED.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sdb2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb2: 11/1221600 files (0.0% non-contiguous), 120732/4883712 blocks
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z