我将备份保存在两个 1.5 GB 的外部硬盘驱动器上,直到最近,它们都被格式化为 ntfs。两者拥有我的文件和文件夹的相同副本。最近我决定更改为 ext4,因此我重新格式化了其中一个硬盘驱动器并复制(rsync)那里的所有内容。令我最惊讶的是,我在新的 ext4 驱动器上的可用空间减少了大约 100 GB,所以我去调查原因。
我检查了两个驱动器上的可用空间,但我使用的每个应用程序/工具都显示了完全不同的数量。
对于 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 驱动器上有更多可用空间。
感谢您的任何见解!
文件大小和因此可用空间在应用程序之间的计算不一致。
这是由于文件系统的性质。数据存储在驱动器上的块中。典型的块大小为 4096,这意味着每个块最多可以包含 4096 字节的数据。
如果你有一个文件只包含1 个字节的数据,它实际上会占用你硬盘上4096 个字节的空间。
同样,如果您有一个包含4097 字节数据的文件,它将保留两个块,即8192 字节的存储空间。
如果您有一个计算每个文件中数据大小的应用程序,它的值将小于计算所有已用块总和的应用程序。
在计算文件大小时,许多应用程序使用许多“技巧”来估计或缓存文件大小,因此您的系统实际上不需要读取硬盘驱动器的全部内容。这也可能导致应用程序之间的差异。
再举一个例子,你可以看到这个关于为什么输出大小不同的答案
ls -l
ls -s
不同应用程序报告可用/已用文件大小不同的一些其他原因: