Es sieht so aus, als hätten Sie dort eine spärliche Datei .
Eine dünn besetzte Datei ist eine Art Computerdatei, die versucht, den Dateisystemspeicher effizienter zu nutzen, wenn die Datei selbst meistens leer ist. Dies wird erreicht, indem kurze Informationen (Metadaten), die die leeren Blöcke repräsentieren, auf den Datenträger geschrieben werden, anstatt den eigentlichen "leeren" Speicherplatz, aus dem der Block besteht, wobei weniger Festplattenspeicher benötigt wird. Die volle Blockgröße wird nur dann als tatsächliche Größe auf die Festplatte geschrieben, wenn der Block "echte" (nicht leere) Daten enthält.
Es ist diese Antwort, die besagt:
Das
/var/lib/docker/devicemapper/devicemapper
Verzeichnis enthält die Sparse-Loop-Dateien, die alle anderen Daten enthalten, die mit dem Andockgerät verbunden werden.
Ihre Datei besteht meistens aus leeren Blöcken (alle Nullen) und kann als spärliche Datei in Ihre kleine Partition passen. tar
Liest scheinbar einfach alle Nullen und verarbeitet sie. Sie werden sehr gut komprimiert, sodass die Ergebnisdatei nur wenig wächst, wenn der Nullstromstrom endet.
Es gibt eine Befehlszeilenoption, mit tar
der es auf Dateien mit geringer Dichte aufmerksam macht. Es wird hier beschrieben .
-S
--sparse
In Ihrem Fall ist Folgendes sehr wichtig, denke ich:
Beim Extrahieren (…) haben solche Dateien auch Löcher, wo immer sie gefunden wurden. (…) Erwägen Sie die Verwendung
--sparse
bei Dateisystemsicherungen, um zu vermeiden, dass die erweiterten Formulare der Dateien gespeichert werden, die sparsam im System gespeichert sind.
Ich denke, Sie haben die --sparse
Option nicht verwendet, also wird Ihre 100G
Datei beim Extrahieren als nicht-dünn erstellt und passt nicht in die 20G
Partition.