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
链接:https://bbs.huaweicloud.com/blogs/364671
(版权归原作者所有,侵删)
免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!
原文始发于微信公众号(Docker中文社区):掌握Linux磁盘格式化:mkfs与mke2fs命令详解
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论