欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux基础命令---tune2fs

程序员文章站 2022-07-07 11:30:04
tune2fs tune2fs允许系统管理员在Linux ext2、ext3或ext4文件系统上调整各种可调的文件系统参数。这些选项的当前值可以使用-l选项显示,也可以通过使用dumpe2fs (8)程序显示。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、open ......

tune2fs

      tune2fs允许系统管理员在linux ext2、ext3或ext4文件系统上调整各种可调的文件系统参数。这些选项的当前值可以使用-l选项显示,也可以通过使用dumpe2fs (8)程序显示。

      此命令的适用范围:redhat、rhel、ubuntu、centos、suse、opensuse、fedora。

 

1、语法

     tune2fs [选项]  device

     tune2fs [ -l ]  [ -c max-mount-counts ]  [ -e errors-behavior ]  [ -f ]  [ -i interval-between-checks ]  [ -j ]  [ -j journal-options ]  [ -m reserved-blocks-percentage ]  [-o [^]mount-options[,...]  ]  [ -r reserved-blocks-count ]  [ -s sparse-super-flag ]  [ -u user ]  [ -g group ]  [ -c mount-count ]  [ -e extended-options ]  [ -l  volume-name  ]  [  -m last-mounted-directory  ]  [ -o [^]feature[,...]  ]  [ -t time-last-checked ]  [ -u uuid ]  device

 

2、选项列表

选项

说明

-l

显示设备的详细信息

-c max-mount-counts

检查文件系统之前,调整最大挂载次数。如果最大挂载计数为0或-1,e2fsck(8)和内核将忽略文件系统的挂载次数。如果对强制检查文件系统的挂载计数,将避免在使用日志文件系统时一次检查所有文件系统。

-c mount-count

设置文件系统的挂载次数,如果设置为比-c选项设置的max-mount-counts参数更大的值,e2fsck(8)将在下次重新启动时检查文件系统。

-e error-behavior

当检测到错误时,更改内核代码的行为。在任何情况下,文件系统错误都会导致e2fsck(8)在下一次引导时检查文件系统。错误行为可以是下列行为之一:

continue,继续执行正常执行。

remount-ro,重新以只读的方式挂载。

panic,产生kernel panic。

-e extended-options

为文件系统设置扩展选项。扩展选项是逗号分隔的,可以使用相等号(‘=’)符号进行参数化。支持下列扩展选项:

stride=stride-size,为raid数组配置具有步长文件系统块的文件系统。这是在移动到下一个磁盘之前读取或写入磁盘的块数。这主要影响文件系统元数据(如位图)在mke2fs(2)时间的放置,以避免将它们放置在单个磁盘上,这可能会损害性能。它也可以被块分配器使用。

stripe_width=stripe-width,为raid数组配置文件系统,每条带宽的文件系统块。这通常是stride-size *n,其中n是raid中数据磁盘的数目(例如raid 5 n+1,raid 6 n+2)。这允许块分配器在写入数据时防止对raid条中的奇偶性进行读-修改-写入(如果可能的话)。

hash_alg=hash-alg,设置用于具有散列b树目录的文件系统的默认哈希算法。接受的有效算法有:legacy、half_md4和tea。

mount_opts=mount_option_string,设置一组默认的挂载选项,这些选项将在挂载文件系统时使用。与使用-o选项指定的基于位掩码的默认挂载选项不同,mount_option_string是最大长度为63字节的任意字符串,存储在超级块中。ext 4文件系统驱动程序将首先应用基于位掩码的默认选项,然后在解析从mount (8)程序传递的挂载选项之前解析mount_option_string。此超级块设置仅在2.6.35以上内核中执行,而ext2和ext3文件系统驱动程序则完全不执行。

test_fs,在文件系统超级块中设置一个标志,指示可以使用试验性内核代码(如ext4dev文件系统)挂载它。

^test_fs,清除test_fs标志,指示仅使用production-level文件系统代码挂载文件系统。

-f

强制执行。当从具有外部日志的文件系统(或损坏到似乎有外部日志)而外部日志不可用的文件系统中删除has_journal文件系统特性时,此选项非常有用。

-g group

设置可以使用保留文件系统块的组。group参数可以是数值gid或组名。如果给定组名,则在将其存储在超级块之前,将其转换为数字gid。

-i  interval-between-checks[d|m|w]

调整两个文件系统检查之间的最大时间。没有后缀或d将数字间隔检查解释为天,m为月,w为周.值为零将禁用与时间相关的检查。强烈建议启用-c(mount-count-dependent)检查或-i(time-dependent)检查,以强制对文件系统进行定期完整的e2fsck(8)检查。如果不这样做,可能会导致文件系统损坏(由于磁盘、电缆、内存或内核错误)而忽略,最终导致数据丢失或损坏。

-j

向文件系统添加ext3日志,如果没有指定-j选项,则将使用默认日志参数来创建存储在文件系统中的适当大小的日志(给定文件系统的大小)。请注意,您必须使用具有ext3支持的内核才能实际使用日志。

如果此选项用于在已安装的文件系统上创建日志,则将在文件系统的顶层目录中创建一个不可变的文件,即日志,因为它是在安装文件系统时创建日志inode的唯一安全方法。虽然ext 3日志是可见的,但在安装文件系统时删除它或修改它是不安全的;因此,文件被标记为不可变。在检查未挂载的文件系统时,e2fsck(8)将自动将.journal文件移动到不可见的保留日志inode。对于除根文件系统以外的所有文件系统,这应该在下一个重新启动周期中自动和自然地发生。由于根文件系统是只读安装的,因此必须从救援软盘上运行e2fsck(8)才能完成此转换。

-j journal-options

重写默认ext 3日志参数。日记选项是逗号分隔的,可以使用相等号(‘=’)符号进行参数化。支持下列日志选项:

size=journal-size,创建一个存储在文件系统中的日志,大小journal-size。日志的大小必须至少为1024个文件系统块(如果使用1k块,则为1mb;如果使用4k块,则为4mb)。并且可能不超过102,400个文件系统块。文件系统中必须有足够的空闲空间来创建这样大小的日志。

device=external-journal,将文件系统附加到位于外部日志上的日志块设备上。外部日志必须已使用以下命令创建“mke2fs  -o  journal_dev  external-journal”。注意,外部日志必须与将要使用的文件系统以相同的块大小进行格式化。此外,虽然支持将多个文件系统附加到单个外部日志,但linux内核和e2fsck(8)目前还不支持共享外部日志。除了直接指定设备名称之外,还可以通过label=label或uuid=uuid指定外部日志,以便通过存储在日志开头的ext2超级块中的卷标签或uuid来定位外部日志。使用dupe2fs(8)显示日志设备的卷标签和uuid。

size和device只能有一个。

-l volume-label

设置文件系统卷标。ext2文件系统标签最多可以长达16个字符;如果卷标签超过16个字符,tune2fs将截断它并打印警告。卷标签可由mount(8)、fsck(8)和/etc/fstab(5)(可能还有其他)使用,方法是指定label=volume_label,而不是/dev/hda 5这样的块特殊设备名。

-m  reserved-blocks-percentage

设置只能由特权进程分配的文件系统百分比。保留一些文件系统块以供特权进程使用是为了避免文件系统碎片,并允许系统守护进程(如syadd.1-d(8)在非特权进程被阻止写入文件系统之后继续正确运行。通常,保留块的默认百分比是5%。

-m last-mounted-directory

设置最后的挂载目录

-o [^]mount-option[,...]

在文件系统中设置或清除指定的默认挂载选项。默认的挂载选项可以被“/etc/fstab”(5)中指定的挂载选项覆盖,也可以在命令行参数上覆盖mount(8)。旧内核可能不支持此特性;特别是,在2.4.20之前的内核几乎肯定会忽略超级块中的默认挂载选项字段。可以通过用逗号分隔功能来清除或设置多个挂载选项。以插入字符(‘^’)为前缀的挂载选项将在文件系统的超级块中清除;没有前缀字符的挂载选项或以‘+’作为前缀的挂载选项将添加到文件系统中。可以使用tune2fs设置或清除下列挂载选项:

debug,bsdgroups,user_xattr,acl,uid16,journal_data,journal_data_ordered,journal_data_writeback,nobarrier,block_validity,discard,nodelalloc

-o[^]feature[,...]

设置或清除文件系统中指定的文件系统特性(选项)。多个文件系统特性可以通过用逗号分隔特性来清除或设置。以插入字符(‘^’)为前缀的文件系统特性将在文件系统的超级块中清除;没有前缀字符或前缀为‘+’的文件系统特性将添加到文件系统中。可以使用tune2fs设置或清除下列文件系统特性:dir_index,filetype,flex_bg,has_journal,large_file,resize_inode,sparse_super,uninit_bg。

-r reserved-blocks-count

设置保留文件系统块的数目

-t time-last-checked

使用e2fsck设置上次检查文件系统的时间。时间使用当前(本地)时区进行解释。这在使用逻辑卷管理器对文件系统进行一致快照的脚本中很有用,然后在空闲时间检查文件系统,以确保它没有因为硬件问题而损坏,等等。如果文件系统是干净的,那么这个选项可以用来设置原始文件系统上的最后一次检查时间。最后一次检查的格式是国际日期格式,有一个可选的时间说明符,即yyyymmdd[hh[mm[ss]。关键字now也被接受,在这种情况下,上一次检查时间将设置为当前时间。

-u user

设置可以使用保留文件系统块的用户。用户可以是uid或用户名。如果给定用户名,则将其转换为数字uid,然后将其存储在超级块中。

-u uuid

将文件系统的通用唯一标识符(uuid)设置uuid。uuid的格式是由连字符分隔的一系列十六进制数字,如“c1b9d5a2-f162-11cf-9ece-0020afc76f16”。uuid参数也可能是以下内容之一:

clear,清除uuid。

random,产生一个随机的uuid。

time,产生一个基于时间的uuid。

 

3、实例

1)查看sdb4的详细信息 

[root@localhost ~]# tune2fs -l /dev/sdb4

tune2fs 1.41.12 (17-may-2010)

filesystem volume name:   hello

last mounted on:          <not available>

filesystem uuid:          e2a0cb30-f3ca-47de-92b8-780296960d93

first inode:              11

inode size:             128

default directory hash:   half_md4

directory hash seed:     4930bf0f-771e-4940-9255-bee40d138079

2)设置最大挂载次数 

[root@localhost ~]# tune2fs -c 30 /dev/sdb4       //设置最大挂载次数

tune2fs 1.41.12 (17-may-2010)

setting maximal mount count to 30

you have new mail in /var/spool/mail/root

[root@localhost ~]# tune2fs -l /dev/sdb4         //查看详细信息

tune2fs 1.41.12 (17-may-2010)

filesystem volume name:   hello

maximum mount count:      30                         //最大挂载次数已经修改为30

directory hash seed:     4930bf0f-771e-4940-9255-bee40d138079

[root@localhost ~]#