dfはduより20G以上のディスク容量を使用したと述べた。なぜ? [コピー]

dfはduより20G以上のディスク容量を使用したと述べた。なぜ? [コピー]

私はduを使用してすべてのフォルダを一覧表示し、サイズで並べ替えましたが、結果は使用されたディスク容量とまったく同じではありませんでした(dfを使用)。 20Gほど差が出るのになぜでしょうか?

[root@xxx lib]# du --max-length=1 -h /|sort-nr
310M/図書館
123M/ルート
96K/開発者
88M/等
75G/
73G/var
30M/スビン
20M/ブート
20K/tmp
18M/lib64
16K/月
16K/紛失+発見
12K/家庭
8.0K/サーバー
8.0K/seLinux
8.0K/オプション
8.0K/その他
8.0K/メディア
7.0M/箱
1.2G/usr
0/システム
0/プロセス
[root@xxx lib]# df -h
マウントされた%を使用して利用可能なファイルシステムサイズを利用可能
/dev/mapper/VolGroup00-LogVol00
                      298G 94G 189G 34% /
/dev/sda1 99M 26M 69M 28% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm

答え1

測定した内容duと異なるためです。df

man du説明する:

du - 推定ファイルスペース使用量(...) まとめるファイルあたりのディスク使用量、ディレクトリ再帰の場合。

そしてman df

df - レポートファイルシステムのディスク領域使用量

ファイルシステムには、要約されていないinodeテーブル、ログなどがありますdu。これはLinuxに限定されず、UNIXにのみ適用されます(UNIXファイルシステムにのみ適用されます)。 UNIXプロセスはすべてのジョブ(単純化しています)、つまりログファイルに書き込むジョブにファイルを使用するため、オープンファイル記述子この場合、問題によって他のdu出力が発生しますdf

答え2

これインデックスノードテーブル(およびいくつかの非常に小さいもの)は使用されたスペースに含まれています。約18GBのinodeがあるようです。これはext2 / ext3 / ext4の予想範囲内にある約6%のスペースです(他のものがない場合、inodeテーブルを持たないファイルシステムはより大きなディレクトリエントリを持つことができます)。以下を実行して、inodeで使用されている正確なサイズを見つけることができますtune2fs -l /dev/mapper/VolGroup00-LogVol00。たとえば、以下は20GBのext3ファイルシステムの1つに関連する行です。

Inode count:              2622368
Inode size:               128

このパーティションには、2622368×128 B≒320MB inodeがあります。

追加の注意:呼び出し方法duによっては、リモートマウントやその他の非直接ディスク対応ファイルシステムでも各ファイルが使用するスペースを表示できます。du -x /ルートファイルシステムに何が保存されているかを確認するには、実行してください。

関連情報