ncduがdfとは異なるデータを報告するのはなぜですか?

ncduがdfとは異なるデータを報告するのはなぜですか?

df -h印刷:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  6.6G   50G  12% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  9.0M  1.9G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   54M  199M  22% /boot
tmpfs           391M     0  391M   0% /run/user/1000

またncdu /印刷して下さい:

Total disk usage:   1.8 GiB  Apparent size:   1.8 GiB  Items: 176500

レポートの1つは6.6+ GiBを使用し、他のレポートは6.6+ GiBのみを使用するのはなぜですか1.8 GiB

ベストアンサー1

の出力はdfファイルシステムレベルの統計に基づいていますが、一般的なものではなく、ncduディレクトリdu検索、個々のファイルサイズの読み取り、および要約を通じて結果を生成します。

du-styleコマンドがroot以外のユーザーとして実行されている場合、すべてのディレクトリへのフルアクセス権が必要ないため、すべてのエントリが表示されない可能性があります(sudo ncduこの例では使用されています)。

実行して、du -hs /結果を報告された「合計ディスク使用量」と比較してみてくださいncdu /。同様の結果を見つけることもできます。を使用すると、duコマンドがアクセスできないため考慮できない複数のディレクトリに関するメッセージが表示されることがあります。それも本当かもしれませncduんが、エラーメッセージを隠すだけです。

ncduまた、最新のLinuxディストリビューションの仮想ファイルシステムを理解するように更新されていないため、混乱する可能性があります。私のDebian 10システムでは、ncdu /次のように報告します。

Total disk usage:  75.6 GiB  Apparent size: 128.1 TiB  Items: 469143

私が知る限り、「見かけの大きさ」は明らかに意味がなく、役に立たない。 「総ディスク使用量」は私が得たものとほぼ同じですdu -hs /。ただし、これにはRAMベースの仮想ファイルシステム(devtmpfstmpfs)がたくさん含まれているため、その数もあまり役に立ちません。

ただし、コマンドを1つのファイルシステム(たとえば)に制限すると、ncdu -x /より合理的な結果が得られるようです。このファイルシステムは、丸めエラー内の to の出力と一致し、ファイルシステムに出力du -shx /と一致するために少しのスペースが必要になることを覚えています。それを保存するとき。df -h内部メタデータ。

エラーが発生する可能性があるもう1つの原因は、BTRFSファイルシステムスナップショットなどの高度なファイルシステム機能を使用している場合です。もちろん、ルートファイルシステムには1.8GiBのファイルしかありませんが、そのファイルシステムに以前の状態の2つのスナップショットが含まれている場合、使用されるディスク容量の合計は保持されているファイルサイズの合計の3倍に達する可能性があります。 (とduコマンドのようなもの)期待通り。

dfコマンドはファイルシステムドライバを調べて情報を取得するため、報告する大きな「使用済み」値には、アクセスに正しい方法を使用しない限り、表示されない可能性があるスナップショットを含めることができます。

おすすめ記事