Unterschied zwischen dem von ncdu zurückgegebenen Speicherplatz auf dem Datenträger und der Datenträgernutzung

Unterschied zwischen dem von ncdu zurückgegebenen Speicherplatz auf dem Datenträger und der Datenträgernutzung

An meinen Server ist ein 130 GB großes Volume angeschlossen.

Um den freien Speicherplatz zu prüfen, führe ich aus df -h -x tmpfs -x squashfs | grep -v /run/sharedund erhalte Folgendes:

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

Wenn ich jedoch Einzelheiten zur Datenträgernutzung abrufen möchte, indem ich ncdudas Stammverzeichnis ausführe, erhalte ich Folgendes:

.  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

Es besteht ein Unterschied von etwa 27 GB gegenüber dem vom vorherigen Befehl zurückgegebenen freien Speicherplatz (111 GB).

Woher kommt dieser Unterschied?

Danke.

Antwort1

Diese Frage wird recht häufig gestellt. Die kurze Antwort lautet: duVerwenden dfSie unterschiedliche Methoden, um Daten zu erhalten.

Das Dateisystem weist Plattenblöcke im Dateisystem zu, um seine Daten aufzuzeichnen. Diese Daten werden als Metadaten bezeichnet und sind für die meisten Programme auf Benutzerebene (wie du) nicht sichtbar. Beispiele für Metadaten sind Inodes, Plattenzuordnungen, indirekte Blöcke und Superblöcke.

DerduDer Befehl ist ein Programm auf Benutzerebene, das die Metadaten des Dateisystems nicht kennt, während df die Festplattenzuordnungskarten des Dateisystems betrachtet und die Metadaten des Dateisystems kennt. dferhält echte Dateisystemstatistiken, während du nur ein unvollständiges Bild sieht.

verwandte Informationen