df 说零个 1k 块免费但仍然可以复制 (3 TB ext4)

df says zero 1k-blocks free but copying still possible (3 TB ext4)

我有 3 TB 的内部硬盘,(显然)快满了。 Df 说 0 1k-blocks free 但我仍然可以将超过 200 Mb 的文件复制到驱动器。这里有什么问题?

Ext4 默认保留 5% 的磁盘作为保留 space 以防止碎片化。这个 space 普通用户不可用,但 root 可以使用。这也是为什么 equality
Total = Used + Available
当您查看 ext4 文件系统的 df 输出时不成立。

尝试以下实验。

$ fallocate -l 100M image.raw
$ mkfs.ext4 image.raw
$ sudo losetup -f image.raw
$ sudo mount /dev/loop0 /mnt
$ dd if=/dev/zero of=/mnt/file bs=512
dd: error writing ‘file’: No space left on device

文件系统总共应该有 95k 个块,0 个可用块,大约 88k 个已使用。 如果您随后尝试执行与 root

相同的操作
$ sudo dd if=/dev/zero of=/mnt/file2 bs=512

那么您应该可以再填充一些,最多使用大约 93k 个块。