掌握Linux磁盘格式化:mkfs与mke2fs命令详解

admin 2024年9月25日09:06:23评论5 views字数 7055阅读23分31秒阅读模式

掌握Linux磁盘格式化:mkfs与mke2fs命令详解

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中文社区!

掌握Linux磁盘格式化:mkfs与mke2fs命令详解掌握Linux磁盘格式化:mkfs与mke2fs命令详解

原文始发于微信公众号(Docker中文社区):掌握Linux磁盘格式化:mkfs与mke2fs命令详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月25日09:06:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   掌握Linux磁盘格式化:mkfs与mke2fs命令详解https://cn-sec.com/archives/3205413.html

发表评论

匿名网友 填写信息