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

GBをKBとして計算します。

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

3.93Gは四捨五入を考慮するために4Gから遠すぎる。そして360.8203125は3.38Gと3.4Gと同様に361に十分近いようです。

それでは、ファイルシステム全体のサイズに違いがあるのはなぜですか?丸めの場合は、全体のサイズを4GBに固定する必要がありますが、なぜ丸めなければなりませんか?

関連情報