您应该使用哪个 Linux 文件系统?

已发表: 2022-01-29

在 Linux PC 上格式化分区时,您会看到各种各样的文件系统选项。 这些选项不需要压倒性的。 如果您不确定要使用哪个 Linux 文件系统,有一个简单的答案。

快速回答:如果您不确定,请使用 Ext4

稍后我们将深入讨论各种文件系统之间的差异,但如果您不确定:请使用 Ext4。

Ext4 是大多数 Linux 发行版上的默认文件系统是有原因的。 它是旧 Ext3 文件系统的改进版本。 它不是最先进的文件系统,但这很好:这意味着 Ext4 坚如磐石且稳定。

未来,Linux 发行版将逐渐转向 BtrFS。 BtrFS 仍然是最前沿的,并且看到了很多发展,所以你要避免在生产系统上使用它。 数据损坏或其他问题的风险不值得潜在的速度提高。

相关: FAT32、exFAT 和 NTFS 之间有什么区别?

但请注意,此“使用 Ext4”建议仅适用于 Linux 系统分区和其他只有 Linux 才能访问的磁盘分区。 如果您正在格式化要与其他操作系统共享的外部驱动器,则不应使用 Ext4,因为 Windows、macOS 和其他设备无法读取 Ext4 文件系统。 在 Linux 上格式化外部驱动器时,您需要使用 exFAT 或 FAT32。

广告

如果您要在主 Linux 引导驱动器上设置分区,那么在设置这些分区时,您还需要创建一个大小至少为几 GB 的交换分区。 此分区用于“交换空间”。 它类似于 Windows 上的页面文件。 Linux 在其 RAM 已满时将内存换出到交换空间。 此分区必须格式化为“交换”,而不是使用特定的文件系统。

什么是日记?

在文件系统之间进行选择时,您会注意到的一件事是,其中一些被标记为“日志”文件系统,而另一些则没有。 这个很重要。

日记功能旨在防止崩溃和突然断电导致数据损坏。 假设您的系统正在将文件写入磁盘的过程中,突然断电。 如果没有日志,您的计算机将不知道文件是否已完全写入磁盘。 该文件将保留在磁盘上,已损坏。

使用日志,您的计算机会注意到它将在日志中将某个文件写入磁盘,将该文件写入磁盘,然后从日志中删除该作业。 如果在写入文件的过程中断电,Linux 将在启动时检查文件系统的日志并恢复任何部分完成的作业。 这可以防止数据丢失和文件损坏。

日志确实会稍微降低磁盘写入性能,但在台式机或笔记本电脑上非常值得。 它没有你想象的那么多开销。 完整文件不会写入日志。 相反,只有文件元数据、inode 或磁盘位置会在写入磁盘之前记录在日志中。

每个现代文件系统都支持日志,在设置台式机或笔记本电脑时,您需要使用支持日志的文件系统。

广告

不提供日志记录的文件系统可用于高性能服务器和管理员希望挤出额外性能的其他此类系统。 它们也是可移动闪存驱动器的理想选择,您不希望更高的开销和额外的日志写入。

所有这些 Linux 文件系统之间有什么区别?

微软开发 Windows,苹果控制 macOS,而 Linux 是社区开发的开源项目。 任何有技能和时间的人(或任何公司)都可以创建一个新的 Linux 文件系统。 这就是为什么有这么多选择的原因之一。 以下是不同之处:

  • Ext代表“扩展文件系统”,是第一个专门为 Linux 创建的。 它进行了四次重大修订。 “Ext”是文件系统的第一个版本,于 1992 年推出。它是对当时使用的 Minix 文件系统的重大升级,但缺少重要功能。 许多 Linux 发行版不再支持 Ext。
  • Ext2不是一个日志文件系统。 推出时,它是第一个支持扩展文件属性和 2 TB 驱动器的文件系统。 Ext2 缺少日志意味着它写入磁盘的次数更少,这使得它对 USB 驱动器等闪存非常有用。 但是,像 exFAT 和 FAT32 这样的文件系统也不使用日记功能,并且与不同的操作系统更兼容,因此我们建议您避免使用 Ext2,除非您知道出于某种原因需要它。
  • Ext3基本上只是带有日志功能的 Ext2。 Ext3 旨在向后兼容 Ext2,允许在 Ext2 和 Ext3 之间转换分区,而无需任何格式化。 它比 Ext4 存在的时间更长,但 Ext4 自 2008 年以来就存在并且经过了广泛的测试。 此时,您最好使用 Ext4。
  • Ext4也被设计为向后兼容。 您可以将 Ext4 文件系统挂载为 Ext3,或者将 Ext2 或 Ext3 文件系统挂载为 Ext4。 它包括减少文件碎片的新功能,允许更大的卷和文件,并使用延迟分配来提高闪存寿命。 这是最现代的 Ext 文件系统版本,也是大多数 Linux 发行版的默认版本。

  • BtrFS ,发音为“Butter”或“Better”FS,最初是由 Oracle 设计的。 它代表“B-Tree 文件系统”,允许驱动器池、动态快照、透明压缩和在线碎片整理。 它与 ReiserFS 中的许多想法相同,ReiserFS 是一些 Linux 发行版默认使用的文件系统。 BtrFS 旨在彻底摆脱 Ext 系列文件系统。 Ext4 文件系统的维护者 Ted Ts'o 认为 Ext4 是一个短期的解决方案,并认为 BtrFS 是前进的方向。 随着 BtrFS 的进一步测试,预计在未来几年内,BtrFS 将成为企业服务器和消费者桌面 Linux 发行版的默认配置。
  • ReiserFS在 2001 年推出时是 Linux 文件系统的一大飞跃,它包含许多 Ext 永远无法实现的新功能。 ReiserFS 被 Reiser4 取代,它在 2004 年改进了许多初始版本中不完整或缺少的功能。但在主要开发人员 Hans Reiser 于 2008 年入狱后,Reiser4 的开发停滞不前。Reiser4 仍然没有在主要的 Linux 内核中,不太可能到达那里。 BtrFS 是更好的长期选择。

    相关:如何在 Ubuntu 上安装和使用 ZFS(以及为什么要这样做)

  • ZFS由 Sun Microsystems 为 Solaris 设计,现在归 Oracle 所有。 ZFS 支持许多高级功能,包括驱动器池、快照和动态磁盘条带化——默认情况下,BtrFS 将为 Linux 带来许多这些功能。 每个文件都有一个校验和,因此 ZFS 可以判断文件是否损坏。 Sun 在 Sun CDDL 许可下开源 ZFS,这意味着它不能包含在 Linux 内核中。 但是,您可以在任何 Linux 发行版上安装 ZFS 支持。 Ubuntu 现在也提供从 Ubuntu 16.04 开始的官方 ZFS 支持。 Ubuntu 默认使用 ZFS 作为容器。
  • XFS是 Silicon Graphics 于 1994 年为 SGI IRX 操作系统开发的,并于 2001 年移植到 Linux。它在某些方面类似于 Ext4,因为它也使用延迟分配来帮助处理文件碎片并且不允许挂载快照。 它可以即时放大,但不能缩小。 XFS 在处理大文件时性能很好,但在处理很多小文件时性能比其他文件系统差。 它对于主要需要处理大文件的某些类型的服务器可能很有用。
  • JFS或“日志文件系统”由 IBM 于 1990 年为 IBM AIX 操作系统开发,后来移植到 Linux。 它拥有低 CPU 使用率和对大文件和小文件的良好性能。 JFS 分区可以动态调整大小,但不能缩小。 它计划得非常好,并且在大多数主要发行版中都有支持,但是它在 Linux 服务器上的生产测试不如 Ext 广泛,因为它是为 AIX 设计的。 Ext4 更常用,测试也更广泛。
  • 交换是格式化驱动器时的一个选项,但不是实际的文件系统。 它用作虚拟内存,没有文件系统结构。 您无法安装它来查看其内容。 Swap 被 Linux 内核用作“暂存空间”,用于临时存储 RAM 中无法容纳的数据。 它也用于冬眠。 虽然 Windows 将其页面文件作为文件存储在其主系统分区上,但 Linux 只是为交换空间保留了一个单独的空分区。

相关: FAT32、exFAT 和 NTFS 之间有什么区别?

  • FAT16FAT32exFAT :在 Linux 中格式化驱动器时,Microsoft 的 FAT 文件系统通常是一种选择。 这些文件系统不包含日志,因此非常适合外部 USB 驱动器。 它们是每个操作系统(Windows、macOS、Linux 和其他设备)都可以读取的事实上的标准。 这使它们成为格式化要与其他操作系统一起使用的外部驱动器时使用的理想文件系统。 FAT32 较旧。 exFAT 是理想的选择,因为它支持大小超过 4 GB 的文件和大小超过 8 TB 的分区,这与 FAT32 不同。

还有其他 Linux 文件系统,包括专门为嵌入式设备和 SD 卡中的闪存设计的文件系统。 但这些是您在使用 Linux 时最常看到的选项。

相关:适合开发人员和爱好者的最佳 Linux 笔记本电脑