Kann mir jemand die Unterschiede sagen von:
du -s dir
3705012 dir
du -s --apparent-size dir
3614558 dir
Diese Verzeichnisse befinden sich in einem Blockgerät (erstellt mit cryptsetup). Oder besser: Warum muss ich --apparent-size nur mit Dateien in einem verschlüsselten Blockgerät hinzufügen?
disk-usage
Pol Hallen
quelle
quelle
Antworten:
Die "scheinbare Größe" einer Datei gibt an, wie viele gültige Daten sich tatsächlich in der Datei befinden. Dies ist die tatsächliche Datenmenge, die aus der Datei gelesen werden kann. Blockorientierte Geräte können nur in Blöcken und nicht in Bytes gespeichert werden. Infolgedessen wird die Festplattennutzung immer auf den nächsthöheren Block aufgerundet. Ein "Block" entspricht in diesem Fall möglicherweise auch nicht einem physischen Block auf dem Speichergerät, je nachdem, wie das Dateisystem Speicherplatz zuweist.
Im Fall Ihres verschlüsselten Geräts kann das Dateisystem den Speicherplatz erweitern, der für die Unterstützung der Verschlüsselungs- / Entschlüsselungsinformationen verwendet wird. Es verschlüsselt oder randomisiert wahrscheinlich auch den nicht verwendeten Speicherplatz zwischen dem Ende der Datei und dem Ende des Blocks, der ihn enthält, wodurch er möglicherweise größer erscheint
du
.Nichts davon berücksichtigt die spärliche Dateibehandlung, die in einem verschlüsselten Dateisystem möglicherweise nicht unterstützt wird.
quelle
Beispiel für minimale Blockgranularität
Lass uns ein bisschen spielen, um zu sehen, was los ist.
mount
sagt mir, dass ich auf einer ext4-Partition bin, die bei gemountet ist/
.Ich finde seine Blockgröße mit:
was gibt:
Erstellen wir nun einige Dateien mit folgenden Größen
1 4095 4096 4097
:und die Ergebnisse sind:
Wir sehen also, dass alles, was darunter oder gleich ist, tatsächlich Bytes
4096
aufnimmt4096
.Sobald wir überqueren
4097
, geht es dann zu8192
dem , was ist2 * 4096
.Es ist dann klar, dass die Platte Daten immer an einer Blockgrenze von
4096
Bytes speichert .Was passiert mit spärlichen Dateien?
Ich habe nicht untersucht, was die genaue Darstellung ist, aber es ist klar, dass
--apparent
dies berücksichtigt wird.Dies kann dazu führen, dass die scheinbaren Größen größer sind als die tatsächliche Festplattennutzung.
Zum Beispiel:
gibt:
Siehe auch: /programming/38718864/how-to-test-if-sparse-file-is-supported
Was tun, wenn ich ein paar kleine Dateien speichern möchte?
Einige Möglichkeiten sind:
Literaturverzeichnis:
Getestet in Ubuntu 16.04.
quelle