Linux mkfs、mke2fs 命令示例

举报
Tiamo_T 发表于 2022/07/14 19:37:01 2022/07/14
【摘要】 mkfs 实用程序用于在您的 Linux 系统上创建文件系统(ext2、ext3、ext4 等)。您应该为要在其上创建文件系统的 mkfs 指定设备名称。

mkfs 实用程序用于在您的 Linux 系统上创建文件系统(ext2、ext3、ext4 等)。您应该为要在其上创建文件系统的 mkfs 指定设备名称。

1.查看可用的文件系统生成器命令

文件系统构建器(mkfs* 命令)通常在 /sbin/、/sbin/fs、/sbin/fs.d、/etc/fs 和 /etc 等目录中搜索。如果没有找到,最后它会搜索在 PATH 变量中找到的目录。

以下列表显示了系统中可用的 mkfs* 命令。

# cd /sbin

# ls mkfs*
mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev  
mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat

2. 在特定设备上构建文件系统

为了使用 mkfs 命令构建文件系统,所需的参数是设备文件名和文件系统类型,如下所示。以下示例在 /dev/sda6 分区上创建 ext3 文件系统。

# mkfs -t ext3 /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

请注意,mkfs 命令的默认文件系统类型是 ext2。如果您不指定“-t”选项,它将创建 ext2 文件系统。

此外,您可以使用我们之前讨论的方法来识别您是否拥有 ext2 或 ext3 或 ext4 文件系统

3. 使用 -j 选项创建带有日志的文件系统

下面给出的示例创建了一个带有日志的文件系统。

# mke2fs /dev/sda6 -j
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

当您不需要文件系统上的日志时,请执行 mke2fs 命令,如下所示。

# mke2fs /dev/sda6 

4.检查设备上的坏块

在创建文件系统之前,您可以使用 -c 选项检查以确保系统上没有坏块,如下所示。这将对文件系统进行只读测试,以确保没有坏块。您还可以使用“-c -c”选项执行读写测试以验证没有坏块。请注意,这将比“-c”选项慢。

# mke2fs -c /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

5. 强制在挂载的分区上创建文件系统

建议不要对已挂载的分区执行任何文件系统操作。但是您仍然可以使用 -F 选项强制它在使用中的分区或已挂载的分区上创建文件系统,如下所示。

# mke2fs -F /dev/sda6

6. 分区上每个 Inode 组的字节数

您可能希望使用df 命令列出分区中已使用和可用的 inode,如下所示。

# df -i /dev/sda6 
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda6      1120112    11 1120101    1% /mydata

如上所示,在 /dev/sda6 上,IUsed 是 1120112 中的 11。在其上创建新文件后,IUsed 的值会相应更改,如下所示。

# cd /mydata
# touch sample.txt
# ls
sample.txt

# df -i /dev/sda6 
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda6      1120112    12 1120100    1% /mydata

您还可以使用 tune2fs 命令查看 Inode 详细信息:

# tune2fs -l /dev/sda6 | grep Inode
Inode count:              1120112
Inodes per group:         8176
Inode blocks per group:   511
Inode size:	          256

要更改上述分区的 inode-per-group(即:/dev/sda6),请使用 -i 选项,如下所示:

# mke2fs -i 8192 /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2240224 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done   

如上所示,每个 inode 的字节数从默认值 16384 更改为 8192。现在分区的 inode 限制增加了,如下所示。

# df -i /dev/sda6 
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda6      2240224    11 2240213    1% /mydata

# tune2fs -l /dev/sda6 | grep Inode
Inode count:              2240224
Inodes per group:         16352
Inode blocks per group:   1022
Inode size:	          256

更改 inode-per-group 的值只会影响要保留在分区上的文件数量。减小此值是为了增加分区上的文件数。

7. 更改分区上的 Inode 大小

可以使用选项 I 和 i 更改分区上 Inode 的大小,如下所示。

# mke2fs -I 128 -i 8192 /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2240224 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done   

如上所示,大小从 256 更改为 128,这导致分区上的总 Inode 计数增加:

# tune2fs -l /dev//sda6 | grep Inode
Inode count:              2240224
Inodes per group:         16352
Inode blocks per group:   511
Inode size:	          128

8.设置分区卷标

您可以使用选项 -L 为分区创建名称/标签。在以下示例中,我们将 DATA 分配为 /dev/sda6 分区的标签。

# mke2fs -L DATA /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=DATA
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

您可以使用 e2label 命令查看上述分区的标签名称,如下所示:

# e2label /dev/sda6 
DATA

查看分区标签的另一种方法是使用 blkid 命令,如下所示:

# blkid /dev/sda6 
/dev/sda6: LABEL="DATA" UUID="0de74d35-6050-4838-99b0-46cb1d518da8" TYPE="ext2" 

9. 模拟文件系统创建

执行 mkfs 命令时,它显示的内容就像它在 stdout 上所做的一样。您甚至可以在标准输出上显示这些消息,而无需使用 -n 选项实际创建文件系统,如下所示:

# mkfs -t ext3 -n /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

10. 创建具有特定 Inode 数量的文件系统

mkfs 提供了创建具有所需 inode 数量的文件系统的工具。它允许您根据每个 inode 的字节数比率覆盖每个文件系统的默认 inode 数量,如下所示。

# mkfs -t ext3 -v -N 700000 /dev/sda6 
mke2fs 1.42 (29-Nov-2011)
fs_types for mke2fs.conf resolution: 'ext3'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
701440 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
5120 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

以上可以使用 tune2fs 和 df 命令进行验证,如下所示。

# tune2fs -l /dev/sda6 | grep -i inode
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Inode count:              701440
Free inodes:              701429
Inodes per group:         5120
Inode blocks per group:   320
First inode:              11
Inode size:	          256
Journal inode:            8
Journal backup:           inode blocks

# df -i /dev/sda6 
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda6      701440    11 701429    1% /mnt
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。