df 人类可读的计算

df 人类可读的计算

df -h我想知道为什么报告的文件系统大小与手动计算的文件系统大小之间存在差异。例如:

根据LVM的大小:

 # lvdisplay system/var | grep -i size
 LV Size                4.00 GiB

人类可读:

# df -h /var
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/system-var  4.0G  361M  3.4G  10% /var

以 KB 为单位的块大小:

# df -k /var
Filesystem             1K-blocks   Used Available Use% Mounted on
/dev/mapper/system-var   4128448 369480   3549256  10% /var

并根据 KB 计算 GB:

# perl -E 'say $_/(1024*1024) foreach ( 4128448 , 369480 , 3549256 );'
3.93719482421875
0.352363586425781
3.38483428955078

3.93G 与 4G 相差太远,无法考虑四舍五入。而 360.8203125 似乎足够接近 361,3.38G 与 3.4G 也是如此。

那么为什么文件系统总大小会存在差异呢?如果是四舍五入,为什么总大小应该固定为 4GB 时还需要四舍五入?

相关内容