
Aus irgendeinem Grund gibt es nicht allzu viele Fragen oder Antworten zur Verwendung von dd zum Erstellen kleinerer Bilddateien mit demKonv=spärlichOption hier.
Wenn ich also dd zur Bilderzeugung verwende, kann ich dann sicher zBdd wenn=/dev/sda von=/media/Speichermedium/sda.img conv=spärlichum eine Bilddatei zu erhalten, die (viel) weniger Speicherplatz auf dem Ziel benötigt?
Ich weiß nicht, ob es wichtig ist, aber in diesem Fall wäre die Quelle eine SSD mit EXT4-Dateisystem und nur 15 % Nutzung (da sie ziemlich neu ist), und das Ziel würde auch EXT4 fs verwenden.
Oder ist das möglicherweise (unter Umständen) keine so gute Idee und kann (später, zB wenn ich es wiederherstellen muss) zu Problemen führen?
Ich frage mich auch, ob dies funktionieren würde, wenn das Ziel ein Netzwerk-Mount oder ein Dateisystem ist?
Das Ziel wäre, eine Image-Datei entweder einer Partition oder (noch besser) einer ganzen Festplatte zu erhalten, die nicht viel mehr Speicherplatz beansprucht als nötig und gleichzeitig leicht zu mounten und zu verwenden ist.
Eine zusätzliche Komprimierung ist weder wirklich nötig noch erwünscht und würde normalerweise auch dazu führen, dass das resultierende Image nicht mehr gemountet werden kann, also kann ich ohne sie leben.
Und ich weiß, dass Clonezilla Dinge kann wie das Speichern nur verwendeter Sektoren, aber ich mag seine Einschränkungen nicht, z. B.Aufgrund der Bildformatbeschränkung kann das Bild nicht erkundet oder gemountet werden. (Und natürlich ist dd bereits auf jedem System verfügbar.)
Vielen Dank im Voraus
Antwort1
Die einfachste Methode, die ich dafür gefunden habe, besteht darin, alle Partitionen auf dem Laufwerk mit dem entsprechenden Tool (fstrim unter Linux, wie auch immer das Tool unter Windows heißt) zu kürzen, dann die GPT-Partitionstabelle in eine Datei zu kopieren gdisk
und dd
jede Partition durch einen Kompressor laufen zu lassen (ich verwende normalerweise zstd aus Geschwindigkeitsgründen) und die komprimierten Ausgabebilder zusammen mit dem Partitionstabellen-Dump zu speichern. Sie komprimieren jedes Partitionsbild etwas unter die Größe des belegten Speicherplatzes und es ist trivial, die Bilder später wieder auf ein leeres Laufwerk zu übertragen. Ich mache das mit jedem brandneuen Laptop, um ein sauberes Werksabbild zu erstellen, bevor ich das Laufwerk lösche und Linux installiere. Wenn ich das Gerät zur Garantiereparatur einschicken oder mich entscheiden muss, es zu verkaufen, ist es einfach, es auf den Werkszustand zurückzusetzen.
Antwort2
Ich kann nicht beantworten, ob conv=sparse
die Verwendung sinnvoll/sicher ist, aber Sie erhalten ein spärliches Ergebnis, wenn Sie es dd
zusammen mit Komprimierung verwenden (ich verwende zstd) und wenn Sie die Quellfestplatte „vorbereiten“.
Ich habe ein Image einer 256 GB SSD mit installiertem Win 11 erstellt.
Unter Windows habe ich die NTFS-Partitionen getrimmt, allen freien Speicherplatz mit Nullen belegt und dann noch einmal getrimmt:
Beschneiden:defrag C: /L
Kein freier Speicherplatz in Windows: sdelete -z C:
(von Sysinternals)
Ich habe ein Image von Linux mit dd
und erstellt ztd
:
dd bs=1024K if="/dev/nvme0n1" | pv --size 256060514304 | zstd --quiet --force -o "/mnt/data/image.img.zst"
Das Bild wurde mit ca. ca.150-350 MB/s.
Danach wurden die Daten beim Ausführen in den leeren Speicherplatz der Quellfestplatte verarbeitet bei1,2 GB:-) Und die Image-Datei wuchs nur um etwa 100 KB von den verbleibenden 220 GB freiem Speicherplatz.
Ich würde sagen, das ist genauso gut wie "echt" spärlich. Die Größe der Bilddatei war19,3 GB. Die W11-Installationsgröße betrug 48 GB (wenn Sie die Auslagerungsdatei der Windows-Installation löschen, können Sie möglicherweise einige zusätzliche MB/GB sparen).
So stellen Sie das Bild wieder her:
zstd --quiet --stdout --decompress "/mnt/disk1/image.img.zst" | pv | dd bs=1024K of="/dev/nvme0n1"
Zusatzinfo:
So setzen Sie eine gemountete Partition in Linux auf Null cat /dev/zero | pv > /mnt/dis1/zero.dat
.
Und noch ein Beispiel: W10 LTSC, Größe der Installation (C:) 18,2 GB (keine Auslagerungsdatei):
Imagegröße mit dd: 6,26 GB
Imagegröße mit dism: 6,28 GB