我的驱动器(ext4 和 ntfs)上到底有多少可用空间?

我的驱动器(ext4 和 ntfs)上到底有多少可用空间?

我将备份保存在两个 1.5 GB 的外部硬盘上,直到最近,这两个硬盘都格式化为 ntfs。这两个硬盘保存着我的文件和文件夹的相同副本。最近我决定改为 ext4,所以我重新格式化了其中一个硬盘,并将所有内容复制(rsync)到那里。令我最惊讶的是,我有大约可用空间减少 100 GB在新的 ext4 驱动器上,所以我去调查原因。

我检查了两个驱动器上的可用空间,但我使用的每个应用程序/工具都显示完全不同的空间量。

对于 ext4 驱动器:

  • df 给了我 196 GB 的可用空间,
  • Nautilus 给了我 210 GB 的可用空间,
  • 磁盘给了我 285 GB 的可用空间,
  • Filelight 给了我 265.4 GB 的可用空间,并且
  • GParted 给了我 265,42 GB 的可用空间。

因此可用空间范围从 196 GB 到 285 GB,相差近 100 GB!!

对于 ntfs 驱动器(其中包含另一个驱动器的相同副本):

  • df 给了我 284 GB 的可用空间,
  • Nautilus 给了我 304.9 GB 的可用空间,
  • 磁盘给了我 305 GB 的可用空间,
  • Filelight 给了我 284 GB 的可用空间,并且
  • GParted 给了我 284 GB 的可用空间。

对于该硬盘,可用空间的测量更加一致,“仅”有 20 GB 的范围。

所以我的问题是:哪一个是真的?我应该真正相信哪一个?为什么他们报告的空间大小如此不同?尤其是对于 Linux 的原生格式 (ext4)?为什么两个系统上的可用空间之间有如此显著的差异?我希望 ext4 驱动器上有更多的可用空间。

谢谢您的见解!

答案1

应用程序之间的文件大小和可用空间计算并不一致。

这是由于文件系统的性质所致。数据存储在在驱动器上。典型的块大小为 4096,这意味着每个块最多可包含 4096 字节的数据。

如果你有一个文件仅包含1 字节的数据,它实际上会占用4096 字节硬盘上的空间。

类似地,如果你有一个包含以下内容的文件4097 字节的数据,它将保留两个块,或者8192 字节儲存。

如果您有一个应用程序正在计算每个文件中数据的大小,则该值将比计算所有使用块的总和的应用程序更小。

在计算文件大小时,许多应用程序会使用一些“技巧”来估计或缓存文件大小,这样您的系统实际上就不需要读取硬盘的全部内容。这也会导致应用程序之间的差异。

再举一个例子,你可以在为什么ls -l输出的大小不同于ls -s

答案2

不同应用程序报告可用/已用文件大小不同的其他一些原因:

  • 有些报告以“千兆字节”为单位,而有些则以“吉比字节”
  • 尤其是 Ext4 在文件系统上保留了一些用户无法使用的空间 - 如果用户在格式化时没有指定,则默认为 5%。有些应用程序可能会将这些空间包含在驱动器的总大小中,有些则不会。但这就是 ext4 驱动器通常看起来比预期的要小的原因。

相关内容