创建文件系统

介绍

有一些可以使用的文件系统。 有些在x86架构上稳定——建议在选择为一个重要分区实验性的选择文件系统前继续阅读。

  • btrfs 是下一代文件系统,提供了许多高级功能,如快照,通过校验和自我修复、 透明压缩、 子卷和集成 RAID。

    1. 几个发行版已经开始将它作为一个默认的选项,但它还未为生产工作做好准备。
    2. 文件系统报告崩溃是常见的。
    3. 其开发人员敦促人们运行最新的内核版本来解决安全问题,以及老的问题。
    4. 这种情况已经很多年了,现在使用它还为时过早。如果出现变更,以及发生了变化,解决错误问题,都很少往旧内核注入补丁。请谨慎使用这个文件系统!
  • ext2 是经考验证明可靠的Linux文件系统,但是没有元数据日志,这意味这在启动系统时的ext2文件系统的日常检查相当耗时。 现在相当一部分的新一代的日志文件系统都可以非常迅速检查一致性,因此比那些非日志文件系统更受欢迎。 当你启动系统碰巧遇到文件系统状态不一致时,日志文件系统不会在那里耽搁很长时间。

  • ext3 是ext2文件系统的带日志版本,提供了元数据日志模式以快速恢复数据。 此外还提供了其他增强的日志模式,如完整数据日志模式和有序数据日志模式。 它使用了HTree索引,在几乎所有的情况下都能保持高性能。简而言之,ext3是非常好及可靠的文件系统。
  • ext4 最初创建为ext3的一个分支 EXT4带来了新的功能,性能改进和去除中度更改磁盘格式大小限制。
    1. 它可以跨越体积高达1的EB并用16 TB最大文件大小。
    2. 取而代之的是经典的ext2/3位块分配的ext4的使用范围,这对提高大文件的性能,并减少碎片。
    3. Ext4还提供了更为复杂的块分配算法(延迟分配和多嵌段分配)给文件系统驱动更多的方式来优化数据的布局在磁盘上。

      EXT4是推荐的通用所有平台的文件系统。

  • f2fs 这个文件系统最初由三星创建用于NAND闪存,是一种闪存文件系统 从直到2016年第二季度起,这个文件系统仍然被认为不成熟。 把Gentoo安装到microSD卡,USB驱动器或其他基于闪存的存储设备时使用它是一个不错的选择。
  • JFS 是IBM的高性能日志文件系统。 JFS是一个轻量级的、快速的和稳定的基于B+树的文件系统,在很多情况下都有很好的表现。
  • ReiserFS 是基于B+树的文件系统,它有着非常全面的性能,特别时在处理很多小文件的时候,虽然会占用多一点CPU。ReiserFS相比其他文件系统显得受维护的不够。
  • XFS 是一种带元数据日志的文件系统,它有一个健壮的特性集,并且对可伸缩性进行了优化。 XFS似乎对各种各样的硬件问题显得不够宽容。
  • vfat 也称为FAT32,被支持Linux,但不支持任何权限设置。 它主要用于互操作性与其他操作系统(主要是微软的Windows),但也是很有必要的一些系统固件(如UEFI)的支持。
  • NTFS 这个“新技术”的文件系统是Microsoft Windows的旗舰文件系统。 与上面的vfat类似,它不存储BSD或Linux正常工作所需的权限设置或扩展属性,因此它不能用作根文件系统。 它应该'只'用于与Microsoft Windows系统的互操作性(注意只强调)。

当在一个小的分区(少于8GB)上使用ext2、ext3或ext4,则创建文件系统时必须带适当的选项以保留足够的inode。 mke2fs(mkfs.ext2)应用程序使用“字节每inode”设置来计算一个文件系统应该用多少个inode。在小分区,建议增加计算出的inode数量。

对于 ext2, ext3 和 ext4, 可以使用下面的命令来完成:

root #mkfs.ext2 -T small /dev/<device>
root #mkfs.ext3 -T small /dev/<device>
root #mkfs.ext4 -T small /dev/<device>

这一般将是对于给定的文件系统inode数量的四倍,它的“字节每inode”从16kB每个减少到4kB每个。这个可以在将来通过提供比例进行调整:

root #mkfs.ext2 -i <ratio> /dev/<device>

为分区应用文件系统

在一个分区或卷上创建一个文件系统,这里有用于每一个可能的分区的工具。 单击下表中的文件系统名称,了解每个文件系统的更多信息:

文件系统 创建命令 在最小化CD?
btrfs mkfs.btrfs Yes sys-fs/btrfs-progs
ext2 mkfs.ext2 Yes sys-fs/e2fsprogs
ext3 mkfs.ext3 Yes sys-fs/e2fsprogs
ext4 mkfs.ext4 Yes sys-fs/e2fsprogs
f2fs mkfs.f2fs Yes sys-fs/f2fs-tools
jfs mkfs.jfs Yes sys-fs/jfsutils
reiserfs mkfs.reiserfs Yes sys-fs/reiserfsprogs
xfs mkfs.xfs Yes sys-fs/xfsprogs
vfat mkfs.vfat Yes sys-fs/dosfstools
NTFS mkfs.ntfs Yes sys-fs/ntfs3g

比如,在示例分区结构中,有 使用ext2的引导分区(/dev/sda2)和使用ext4的根分区(/dev/sda4),下面的命令将会用到:

root #mkfs.ext2 /dev/sda2 root #mkfs.ext4 /dev/sda4

现在在新创建的分区(或逻辑卷)上创建文件系统。

激活swap分区

mkswap是用来初始化swap分区的命令:

root #mkswap /dev/sda3

要激活swap分区,使用swapon:

root #swapon /dev/sda3

使用上面提到的命令创建和激活swap。

挂载 root 分区

现在分区都已初始化并有文件系统,接下来该挂载那些分区了。使用mount命令,但是不要忘记为每一个创建的分区创建需要的挂载目录。比如示例中我们挂载根分区:

root #mount /dev/sda4 /mnt/gentoo

附注

如果/tmp/需要放在一个独立分区,确保在挂载后变更它的权限:

root #chmod 1777 /mnt/gentoo/tmp

这同样适用于/var/tmp

后面的介绍中将挂载proc文件系统(一个内核的虚拟接口)和其它内核伪文件系统。