ncdu によって返されるボリューム ディスク領域とディスク使用量の違い

ncdu によって返されるボリューム ディスク領域とディスク使用量の違い

私のサーバーには 130 GB のボリュームが接続されています。

空きディスク領域を確認するには、df -h -x tmpfs -x squashfs | grep -v /run/shared次のコマンドを実行します。

Filesystem      Size  Used Avail Use% Mounted on
udev            965M     0  965M   0% /dev
/dev/xvda1      128G  111G   13G  90% /

ただし、ディスク使用量の詳細が必要な場合は、ncduルート ディレクトリで実行すると、次のようになります。

.  55,7 GiB [######### ] /home                                                                                                                           
.  24,0 GiB [####      ] /var
.   2,4 GiB [          ] /usr
    1,0 GiB [          ]  swapfile
  598,6 MiB [          ] /lib
   63,0 MiB [          ] /boot
    9,4 MiB [          ] /sbin
    9,1 MiB [          ] /bin
.   8,1 MiB [          ] /etc
.   4,3 MiB [          ] /tmp
.   2,7 MiB [          ] /run
!  24,0 KiB [          ] /root
!  16,0 KiB [          ] /lost+found
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /opt
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /media
!   4,0 KiB [          ] /gandi
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
    0,0   B [          ] /dev
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz
e   0,0   B [          ] /srv

前のコマンドで返された空きディスク容量 (111 GB) と約 27 GB の差があります。

この違いはどこから来るのでしょうか?

ありがとう。

答え1

この質問はよく聞かれます。簡単に答えるとdudfデータを取得するにはさまざまな方法を使用するということです。

ファイル システムは、データを記録するためにファイル システム内にディスク ブロックを割り当てます。このデータはメタデータと呼ばれ、ほとんどのユーザー レベル プログラム (du など) には表示されません。メタデータの例としては、inode、ディスク マップ、間接ブロック、スーパーブロックなどがあります。

デュcommand はファイルシステムのメタデータを認識しないユーザーレベルのプログラムですが、df はファイルシステムのディスク割り当てマップを参照し、ファイルシステムのメタデータを認識します。 dfは実際のファイルシステム統計情報を取得しますが、du は部分的な画像のみを表示します。

関連情報