mke2fs

创建ext2/ext3/ext4文件系统


语法格式

mke2fs [-cFjnqSvV] [-b blk-size] [-E ext-opts] [-g blks-per-grp] [-G blk-grps]
[-i file-bytes] [-I inode-size] [-J journal-opts] [-L vol-label]
[-m rsv-blk-percent] [-M last-mnt-dir] [-N inodes] [-O features]
[-t fstype][-T usage-type] [-U uuid] device [blocks]

命令简介

mke2fs命令主要用于创建ext2、ext3或ext4文件系统。在上述语法格式中,device是存储设备的特殊文件名,通常是磁盘分区的设备文件名,如/dev/sdb2等,表示在指定的设备上创建文件系统。blocks是指定设备中逻辑数据块的总和。如果忽略,mke2fs命令将自动计算与确定整个文件系统的容量。

在运行mke2fs命令创建文件系统时,通常只有“-t”选项和device参数是必须提供的,其他选项与参数可视具体情况而定。

在运行mke2fs命令创建文件系统时,如果未指定除“-t”之外的其他选项与参数,新建文件系统的默认参数由/etc/mke2fs.conf配置文件控制。有关mke2fs.conf文件的说明,详见mke2fs.conf(5)手册页。

此外,当文件系统的主超级块严重受损时,可以使用“-n”选项运行mke2fs命令,确定备份超级块的位置,然后再使用e2fsck命令修复文件系统。

命令选项

-b blk-size  指定文件系统逻辑数据块的字节数。有效的逻辑数据块是1024字节、2048字节或4096字节。如果未指定这个选项,mke2fs将会根据整个文件系统的大小和预计的用途(参见“-T”选项)综合考虑而定。如果blk-size 是负数,mke2fs将会使用探索算法确定数据块的适当大小,同时强制数据块不得小于标准的数据块要求。当某些存储设备要求数据块必须是2KB的倍数时,这个选项是非常有用的。

-c  在创建文件系统之前,首先执行存储设备的坏块检测。如果这个选项同时指定两次,意味着采用慢速的读写测试,而不是执行快速的只读测试。

-E ext-opts  设置文件系统的扩充选项。多个选项可以并列,中间加逗号分隔符。扩充选项采用“opt=arg”的赋值形式,例如,“resize=max-online-resize”表示保留足够的空间,以便数据块组描述表能够增长,从而能够支持具有max-online-resize个数据块的文件系统。

-F  即使指定的设备文件名并非块设备分区名,或指定的选项与参数并不合理,仍然强制mke2fs创建文件系统。即使文件系统已经安装甚至正在使用,仍然可以使用“-F”选项(必须指定两次),强制mke2fs继续创建新的文件系统。当然,这样做会严重危及当前的文件系统。

-g blks-per-grp  指定每个数据块组包含的逻辑数据块数量。用户通常不需要指定这个参数,默认值实际上已是针对具体文件系统优化选择的结果。这个选项主要供开发人员测试用。

-G blk-grps  指定数据块组的数量,用于组合、创建ext4文件系统中的大型虚拟数据块组(或称“flex_bg”组),改善元数据的存储位置与性能。数据块组的数量必须是2的幂,且只能在启用了文件系统的flex_bg功能特性时才能指定。

-i file-bytes  指定文件的字节数与信息节点数之比值,即每个文件平均占用多少字节。mke2fs将会根据这个数值与文件系统分区的空间容量确定信息节点的数量。这个数值越大,文件系统需要的信息节点数量越少。通常,这个数值不应小于文件系统的逻辑数据块。注意,文件系统一经创建,信息节点的数量是不能随意变动的,故应仔细确定这个数值。

-I inode-size  指定每个信息节点占用的字节数,其默认值为256。利用大于128字节的信息节点,可以存储扩展的文件属性,这将会改善文件访问的性能。inode-size必须是2的幂,且大于等于128。但是,inode-size的值越大,信息节点表占用的空间越多,从而减少文件系统的可用空间,反过来也会影响性能。

-j  创建具有ext3日志功能的文件系统。如果未指定“-J”选项,则采用默认的日志参数创建适当容量的内部日志。

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

-L vol-label  设置文件系统的卷标。注意,文件系统卷标的最大长度是16字节。

-m rsv-blk-percent  指定创建文件系统时需要为超级用户或系统进程保留的数据块占整个文件系统容量的百分比。当达到这个数值时,只有超级用户或系统进程才能继续请求分配空间。采用这一措施的主要目的是防止用户进程过多地占用存储空间而耗尽文件系统,使超级用户在文件系统处于满负荷的情况下仍然能够维护文件系统,系统进程仍然能够继续正常地运行。默认的百分比是5%。

-M last-mnt-dir  设置文件系统最近一次安装的目录。利用这个选项设置固定的安装目录,有利于之后确定文件系统的安装点,对于想要恢复访问先前安装的文件系统的应用而言,这个选项是非常有用的。

-n  这个选项的目的只是让mke2fs显示:一旦需要创建文件系统时最终将会创建一个什么样的文件系统,而实际上并非要真正地创建文件系统。利用这个选项可以确定一个特定文件系统中备份超级块的存储位置。当然,使用这个选项时要确保除“-n”之外,其他所有选项与先前使用的命令选项与参数是完全一致的。

-N inodes  采用直接指定的信息节点数量替代mke2fs命令基于数据块数量与信息节点字节数量的比率计算出的信息节点保留数量,从而允许用户直接指定自己理想的信息节点数量。

-O features  使用指定的功能特性创建文件系统,取代默认的文件系统选项。多个功能特性可以并列,中间加逗号“,”分隔符,表示启用列举的所有功能特性。如果想要禁用某个功能特性,可在其前面加一个上箭头字符“^”。如果指定的功能特性为“none”,表示清除所有的文件系统功能特性。除了利用“-O”选项临时指定文件系统的功能特性之外,特定的文件系统类型及/etc/mke2fs.conf配置文件也定义了自动启用的默认功能特性。通常,/etc/mke2fs.conf 配置文件“[defaults]”节中“base_features”定义的是通用的基本功能特性,“[fs_types]”节定义的是文件系统类型特定的功能特性。注意,如果冲突,“[fs_types]”节中的定义将会取代“[defaults]”节中的定义。mke2fs命令支持的部分文件系统功能特性如下:

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

extent  采用extent替代在信息节点中使用间接数据块存储数据块位置的寻址方式,这将会加速文件系统的访问,尤其是大型文件(仅适用于ext4文件系统)的读写。

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

flex_bg  允许把数据块组的位图和信息节点表置于存储介质的任何位置。此外,mke2fs也会把flex_bg虚拟数据块组中每个数据块组的元数据组合存放在一起。使用“-G”选项可以指定flex_bg数据块组的大小(仅适用于ext4文件系统)。

has_journal  创建一个ext3日志,等价于指定了“-j”选项。

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

resize_inode  保留空间以便数据块组描述表将来能够扩充。这对于使用resize2fs命令联机扩容或收缩文件系统是非常有用的。通常,mke2fs将会尝试保留足够的空间,以便文件系统能够在初始容量的基础上扩大1024倍。注意,利用“-E”选项的resize扩充选项能够修改保留的空间数量。

sparse_super  创建少量的备份超级块,以节省大型文件系统的空间。

uninit_bg  创建文件系统,但不必初始化所有的数据块组,从而能够提高文件系统的创建速度,而且也能减少e2fsck的运行时间(仅适用于ext4文件系统)。

-q  表示“安静地”运行mke2fs命令(主要用于脚本)。

-S  仅仅重写超级块和数据块组描述信息,而非真正创建文件系统。当所有的超级块和备份超级块均遭损坏时,这个选项是非常有用的。如果所有的文件系统修复方法都不奏效的话,这是恢复文件系统的最后一招。使用这个选项时,mke2fs将会重新初始化超级块和数据块组描述部分,但不会触及信息节点区,以及数据块和信息节点位图。之后,应立即运行e2fsck程序。注意,这种方法并不保证能够挽救所有的数据。当使用这个选项时,最关键的一点是指定的文件系统数据块的大小一定要正确。

-t fstype  指定欲建文件系统的类型,如ext2、ext3或ext4等。如果未指定这个选项,mke2fs将会基于调用的命令(如mkfs.ext3或mkfs.ext4等)或/etc/mke2fs.conf配置文件的定义等因素,挑选一个默认的文件系统类型。基于/etc/mke2fs.conf配置文件和文件系统类型,这个选项也控制了应启用哪些默认的文件系统选项。

-T usage-type  指定文件系统的预计用途,以便mke2fs能够有针对性地选用优化的文件系统参数。Linux系统支持的文件系统用途类型在/etc/mke2fs.conf文件中定义,用户可以指定一个或多个文件系统用途类型(中间加逗号分隔符)。如果未指定这个选项,mke2fs将会基于欲建文件系统的容量,挑选一个默认的用途类型。

-U uuid  在指定uuid的相应存储设备上创建文件系统。

-v  在运行过程中输出详细的处理信息,如新建文件系统的类型等。

-V  显示mke2fs命令的版本信息,然后退出。

应用实例

1. 创建一个普通的ext4文件系统。

# mke2fs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1221600 inodes, 4883708 blocks
244185 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
150 block groups
32768 blocks per group, 32768 fragments per group
8144 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000

2. 当文件系统损坏严重时,可以利用“-n”选项获取备份超级块的位置,利用备份超级块修复文件系统:

# mkfs -t ext4 -n /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1221600 inodes, 4883708 blocks
244185 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
150 block groups
32768 blocks per group, 32768 fragments per group
8144 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000
#

索引: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