Zip-Image der Festplatte sehr groß

20

Ich habe gerade ein Image eines frisch installierten Dualboots (Ubuntu und Windows) mit diesem Befehl erstellt (den ich seit einiger Zeit für kleinere Images verwende):

dd if=/dev/sda | gzip > /mnt/drive.img.gz

Auf diesem Laufwerk werden weniger als 60 G von 500 G verwendet. Trotzdem ist diese Bilddatei jetzt 409G groß.

Wie ist das? Sollte es gzip nicht gelingen, all diese Nullen zu komprimieren? Wie gesagt, es ist ein frisch installiertes System. So überladen konnte es nicht sein.

Jetzt habe ich nicht damit gerechnet, dass die Datei 60 GB groß sein wird, aber 400 GB scheinen mir sehr groß zu sein.

chris137
quelle
13
... welche Nullen?
Leichtigkeit Rennen mit Monica

Antworten:

29

Wie ist das? Sollte es gzip nicht gelingen, all diese Nullen zu komprimieren?

Ja, wenn sie Nullen wären .

Unbenutzter Speicherplatz bedeutet nicht, dass er Nullen enthält. es bedeutet, dass es nicht verwendet wird und alles enthalten kann .

Es gibt Programme, die nicht genutzten Speicherplatz auf Null setzen. Ich schlage vor, dass Sie diese verwenden, bevor Sie das Disk-Image erstellen. (Ich erinnere mich nicht ohne Weiteres, in Linux, ich würde nur verwenden , dd if=/dev/zero bs=1048576 of=somefileDateien zu erstellen , die nur Nullen enthalten, fülle jedes Dateisystem auf;. Sie dann entfernen , bevor das Bild macht Auch ich lieber xzüber gzip.)

Nominelles Tier
quelle
Oh, danke, ich habe nicht einmal darüber nachgedacht, was sich auf diesem Laufwerk befindet, bevor ich es installiert habe! Ich denke, es ist schneller, dieses Bild jetzt zu entpacken und es zu verkleinern (für die es anscheinend auch Lösungen gibt). Ich werde auch überlegen, xz zu verwenden. Vielen Dank!
Chris137
12
Das Schreiben von 400 GB Nullen jedes Mal, wenn Sie einen Klon erstellen möchten, scheint auf einer SSD keine gute Idee zu sein. Die andere Lösung (mit einem Dateisystem-fähigen Klonprogramm) scheint besser zu sein.
Federico Poloni
4
@ FedericoPoloni: Nein, aber das generierte Image ist ein perfektes Raw-Image . Dienstprogramme zum Klonen von Datenträgern verwenden verschiedene Formate. Daher benötigen Sie das Dienstprogramm, um das Image wiederherzustellen. Mir sind keine bekannt (aber ich habe auch nicht geprüft, ob), die tatsächlich ein Rohbild erzeugen können, während nicht verwendete Blöcke im Bild durch Nullen ersetzt werden. das wäre wirklich nützlich. Die Verwendung ddunter Linux ist die einfachste und einfachste Methode, um das Problem mit der Größe des Raw-Images zu beheben. Einmalig ist dies sogar auf einer SSD in Ordnung.
Nominal Animal
1
@FedericoPoloni: Ja, mit nbdkit können sowohl gzip- als auch xz-komprimierte Images gemountet werden . (Ich mache mir keine großen Sorgen über die Formate, wenn sie geöffnet sind und von mehr als einem Dienstprogramm unterstützt werden. Ich mache mir nur Sorgen darüber, dass Dienstprogramme auf neuen Systemen nicht mehr gewartet werden und fehlerhaft sind. Ich würde gerne SquashFS anstelle von xz oder verwenden gzip zum Beispiel.)
Nominal Animal
3
@Gilles Beim Lesen des zugeschnittenen Leerzeichens können keine Nullen garantiert werden. Einige Controller geben das, andere nicht.
Deviantfan
14

Für Backups einzelner Partitionen können Sie stattdessen partclone verwenden.

Partclone liest das Dateisystem, um festzustellen, wo Dateien gespeichert sind, und sichert nur die Teile der Partition.

Pelle
quelle
3
Auch Clonezilla ist eine ausgezeichnete GUI , dies zu tun.
Federico Poloni
partimage ist ein exzellentes Tool und bereits in vielen Linux-Distributionen / Live-CDs enthalten.
Criggie
Ein weiteres Werkzeug in diesem Sinne ist fsarchiver.
Iwillnotexist Idonotexist