Warum benötigen Verzeichnisbäume im ext4-Dateisystem weniger Platz als ext3?

542

Ich habe eine neue externe Festplatte erhalten, die eine ältere ersetzt, die Anzeichen von Problemen aufweist. Ich habe rsyncden Inhalt der alten Festplatte auf die neue kopiert. Um zu überprüfen, ob der Kopiervorgang ordnungsgemäß funktioniert hat, habe ich beispielsweise die Festplattennutzung mit duund dfund fertiggestellt. Ich habe festgestellt, dass der Speicherplatz auf der neuen Festplatte deutlich geringer ist als auf der alten. Dies zeigt sich zum Beispiel ( /backupist alte Festplatte, /backup1ist neue Festplatte):

> du -s /backup/laptop 5400764 /backup/laptop > du -s /backup1/laptop 5308428 /backup1/laptop 

aber wenn, diff -r /backup/laptop /backup1/laptop dann bekomme ich nichts. Das einzige, was ich für die Unterschiede ext3ausmachen kann, ist, dass die alte Festplatte das Dateisystem und die neue verwendet ext4. Wenn irgendjemand etwas Licht ins Dunkel bringen kann, würde ich es schätzen.

Danke, Jon

0
Der wahrscheinlichste Grund sind unterschiedliche Blockgrößen, wie von sudo fdisk -l mit der Beschreibung E / A-Größe (Minimum / Optimal) gezeigt. AFH vor 6 Jahren 0

1 Antwort auf die Frage

0
Theodore Ts'o

Zwei Möglichkeiten kommen in den Sinn. Einer ist, dass rsync‚s - --sparseDatei Option, es ist möglich, dass Dateien, die Null - Blöcke enthalten waren als Sparse - Dateien geschrieben, die weniger Platz auf der Festplatte nehmen würden.

Die andere (und wahrscheinlichere) mögliche Ursache ist, dass wie bei vielen Unix-Dateisystemen ext3 und ext4 Verzeichnisse nach dem Löschen von Einträgen nicht komprimieren. Zum Beispiel:

% mkdir test % cd test % ls -aldg . drwxr-xr-x 2 tytso 4096 May 26 15:25 ./ % seq 1 10000 | xargs touch % ls -aldg . drwxr-xr-x 2 tytso 159744 May 26 15:26 ./ % rm -f * % ls -aldg . drwxr-xr-x 2 tytso 159744 May 26 15:26 . 

Sobald dieses Verzeichnis in das Zieldateisystem kopiert wurde, dauert es wieder 4k.