​http://mydear.itpub.net/post/28567/504859​

 

创建文件系统

Linux 使用 mkfs 命令来创建文件系统,用 mkswap 命令来创建交换空间。mkfs 命令实际上是几个特定于文件系统的命令的前端,这些命令包括针对 ext3 的 mkfs.ext3 和针对 ReiserFS 的 mkfs.reiserfs。

您的文件系统上安装的是什么文件系统支持?使用 ls /sbin/mk* 命令来找到答案。清单 11 展示了一个示例。

清单 11. 文件系统创建命令
[ian@echidna ~]$ ls /sbin/mk*
/sbin/mkdosfs /sbin/mkfs.ext2 /sbin/mkfs.ntfs
/sbin/mke2fs /sbin/mkfs.ext3 /sbin/mkfs.vfat
/sbin/mkfs /sbin/mkfs.ext4 /sbin/mkfs.xfs
/sbin/mkfs.btrfs /sbin/mkfs.ext4dev /sbin/mkhomedir_helper
/sbin/mkfs.cramfs /sbin/mkfs.msdos /sbin/mkswap
您将注意到一些命令的各种形式。例如,您通常会发现,文件 mke2fs、mkfs.ext2 和 mkfs.ext3 是一样的,文件 mkreiserfs 和 mkfs.reiserfs 也一样。启动系统可能需要的文件系统将使用多个名称不同的相同文件。不能用于 Linux 中的 / 文件系统的那些文件系统(比如 vfat 或 msdos)可能会使用符号链接代替。

所有 mkfs 命令都有几个公共选项。根据在 -type 选项中指定的文件系统类型,特定于正在创建的文件系统类型的选项将被传递到适当的创建命令。我们的示例使用 mkfs -type,但您也可以直接使用其他类型,效果一样。例如,您可以使用 mkfs -type ext2、mk2fs 或 mkfs.ext2。要获取一个特定文件系统的手册页,使用适当的 mkfs 命令作为名称,比如 man mkfs.ext3。下面的输出示例中显示的许多值都能通过 mkfs 的选项控制。

既然我们已经创建了所有分区,我们将重新启动 Fedora 12 系统(而不是有点缓慢的实时 Knoppix DVD)并格式化文件系统。当然,如果愿意,您也可以继续使用 Knoppix 系统。注意,创建文件系统需要根权限。

创建一个 ext3 文件系统

我们使用 mkfs 命令将 /dev/sda8 分区格式化为 ext3,如清单 12 所示。

清单 12. 创建一个 ext3 文件系统
[root@echidna ~]# mkfs -t ext3 /dev/sda8
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2624496 inodes, 10488429 blocks
524421 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
321 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, 7962624

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

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
注意,一个日志与 ext3 一同创建。如果您想向一个现有 ext2 系统添加一个日志,使用 tune2fs 命令和 -j 选项。

针对 ext2 和 ext3 文件系统的一个有用选项是带有一个名称的 -L 选项,该选项为分区指定一个标签。这个标签可用于在挂载文件系统时代替设备名称;它针对可能需要在各种控制文件中反映的更改提供某种级别的隔离。要为一个现有 ext2 或 ext3 文件系统显示或设置标签,使用 e2label 命令。标签的最大大小限制为 16 个字符。

最近的一个进展是使用 Universally Unique Identifier(或 UUID)而不是标签。UUID 是一个 128 位标识符,通常显示为 32 位 16 进制数字和 4 个连词号。大多数 Linux 文件系统在被格式化时自动生成一个 UUID。使用 blkid 命令(不需要根权限)来查看我们刚刚格式化的分区的 UUID,如清单 13 所示。与标签相比,UUID 更可能具备惟一性,对 USB 驱动器这样的热插拔设备尤其有用。

清单 13. 使用 blkid 命令显示一个 UUID
[ian@echidna ~]$ blkid /dev/sda8
/dev/sda8: UUID="87040def-920e-4525-9c81-c585ddc46384" SEC_TYPE="ext2" TYPE="ext3"
创建一个 XFS 文件系统

现在我们将刚才格式化为 ext3 的分区重新格式化为 XFS 文件系统。我们的 Fedora 12 系统使用 SELinux(Security Enhanced Linux),因此我们应该使用 -i 参数指定比默认值 256 更大的索引节点。推荐值是 512。注意,如果 XFS 格式化程序发现分区上已有一个公认的文件系统,那么它将会通知您。还要注意一点,XFS 格式重新指定了 UUID。

清单 14. 创建一个 XFS 文件系统
[root@echidna ~]# mkfs -t xfs -i size=512 /dev/sda8
mkfs.xfs: /dev/sda8 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@echidna ~]# mkfs -t xfs -f -i size=512 /dev/sda8
meta-data=/dev/sda8 isize=512 agcount=4, agsize=2622108 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=10488429, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=5121, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@echidna ~]# blkid /dev/sda8
/dev/sda8: UUID="1b6798f2-f07f-4d5e-af06-2470df37ddb3" TYPE="xfs"
您可以使用带有一个名称的 -L 选项来设置 XFS 系统的标签。还可以使用 xfs_admin 命令和 -L 选项来为一个现有 XFS 文件系统添加一个标签。使用带 -l 选项的 xfs_admin 命令来显示一个标签。与 ext2、ext3 和 ReiserFS 不同,XFS 标签的最大长度为 12 个字符。

创建一个 ReiserFS 文件系统

可以使用带 -t reiserfs 选项的 mkfs 命令或 mkreiserfs 命令创建 ReiserFS 文件系统。ReiserFS 不支持 SELinux,正在被 Resier4 替代。

可以使用 -l 选项(或带有一个名称的 --label 选项)为一个 ReiserFS 系统设置标签。可以使用 reiserfstune 命令添加标签或显示现有 ReiserFS 文件系统上的标签。标签的最大长度限制为 16 个字符。

您可能需要在您的系统上安装 ReiserFS 包才能使用 ReiserFS ,因为它可能不包含在默认安装内。参见手册页或信息页了解更多细节。

创建一个 vfat 文件系统

现在,我们将在 /dev/sda9 上创建 FAT32(vfat)文件系统。

清单 15. 创建一个 vfat 文件系统
[root@echidna ~]# mkfs -t vfat /dev/sda9
mkfs.vfat 3.0.9 (31 Jan 2010)
[root@echidna ~]# blkid /dev/sda9
/dev/sda9: LABEL="" UUID="CF72-99A8" TYPE="vfat"
vfat 文件系统的 UUIDs 比标准 UUIDs 短,因此不惟一的几率要大一些。如果想用一个标签代替,可以使用 dosfslabel 命令。DOS 分区的标签的最大长度限制为 11 个字符。