为什么我在 XFS 中格式化后获得比 ext4 更多的可用空间?

use*_*763 12 filesystem ext4 xfs

我买了一个 1TB 的外置硬盘,在ext4 中格式化整个驱动器后, Nautilus 说有 934.3 GB 的可用空间。在此处输入图片说明

我还测试了在XFS 中格式化驱动器,在这种情况下有 999.7 GB 的可用空间。在此处输入图片说明

为什么使用ext4而不是XFS 的可用空间缺少 60 GB 以上?

小智 17

EXT3/EXT4 文件系统出于安全等原因占用分区大小的 5%(例如在“非可用磁盘空间磁盘”原因中)。

如果它不是根分区,您可以通过执行以下操作将此 5% 更改为例如 1%:

sudo tune2fs -m 1 /dev/sda3
Run Code Online (Sandbox Code Playgroud)

您应该将 sda3 更改为您的分区的位置。

  • 顺便说一下,这个空间不会丢失——它是为单个用户保留的,通常是 root。这很有用,例如,如果您有一个分区并且一个用户下载 Internet(填满磁盘),系统服务仍然可以写入日志文件和审核信息,使系统至少保持足够的功能,以便管理员可以登录并检查情况。对于永远不会包含与系统相关的任何内容的磁盘,将此预留设置为 0% 当然是可以接受的。 (3认同)

小智 8

对于ext4(和 extfs 系列),inode 表在格式化时预先分配。这是有关文件系统的传统 Unix 行为。当您使用 extfs 文件系统格式化卷时,您可以使用-Nmkfs 实用程序的参数调整您期望的 inode 数量。(来源)。

尽管具有可扩展性,但这种设计可能会提供更好的性能(一次分配多个文件时)。必须估计格式化时所需的 inode 数量。一个主要包含小文件的卷,比如邮件服务器,每 GB 需要更多的 inode 比包含 ISO 的卷更多。

一旦您使用了所有 inode,即使驱动器上仍有可用空间,您也无法创建新文件。卷越大,inode 表就越大。这会导致大型驱动器上丢失许多 GB。

另一方面,XFS使用一种称为“动态 inode 分配”(Source)的技术。随着 inode 数量根据卷上的数据量增加或减少,这会带来更好的可扩展性。当您无法预测文件系统的用途或希望为数据节省额外空间时,这是一种更好的设计。这也是NTFS 的行为。

关于日记的说法是错误的,日记的成本只有几兆字节。主要的空间损失是由于静态 inode 分配。