Partitionen mit “dd” unter Linux sichern und auch mal per ssh über das Netzwerk
Wieder eine tolle Aufgabe, die in Linux mit Leichtigkeit zu erledigen ist.
Will man eine Partition mit “dd” kopieren (bit für bit spiegeln), dann geht es auf die folgende Art und Weise:
# dd if=/dev/sda1 of=/def/sdb1
oder für die ganze Festplatte:
# dd if=/dev/sda of=/def/sdb
Der Nachteil liegt darin, dass man keinen Fortschritt sieht. Dafür habe ich aber ein paar Vorschläge (buffer installieren: aptitude install buffer):
# dd if=/dev/sda1 | buffer -s 64k -S 10m | dd of=/dev/sdb1
oder
# dd if=/dev/sda1 | pv | dd of=/dev/sdb1
Dafür muss man aber pv installieren(unter Debian: apt-get install pv).
Das Gleiche geht natürlich auch in ein Image(mit Anzeige):
# dd if=/dev/sda1 | buffer -s 64k -S 10m > image
oder mit dem Tool “dd_rescue” falls verfügbar.
Oder das ganze mal verpackt:
# dd if=/dev/sda1 | buffer -s 64k -S 10m | gzip -c > image.gz
Um das ganze über Netzwerk zu betreiben stehen folgende Möglichkeiten zur Verfügung:
In ein Image:
# dd if=/dev/sda1 | pv | ssh user@host “cat > ~/image”
oder mit “buffer”:
# dd if=/dev/sda1 | buffer -s 64k -S 10m | ssh user@host “cat > ~/image”
oder auch mal mit Verpacken:
# dd if=/dev/sda1 | pv| gzip -c | ssh user@host “cat > ~/image.gz”
oder mit “buffer”:
# dd if=/dev/sda1 | buffer -s 64k -S 10m | gzip -c | ssh user@host “cat > ~/image.gz”
Um die Images auf eine Partition einzuspielen tut man das Folgende:
# dd if=image of=/dev/sdb1
oder mit Anzeige:
# dd if=image | pv | dd of=/dev/sdb1
oder
# dd if=image | buffer -s 64k -S 10m | dd of=/dev/sdb1
Natürlich kann man das verpackte Image auch entpacken:
# gunzip -c image.gz | pv | dd of=/dev/sdb1
oder
# gunzip -c image.gz | buffer -s 64k -S 10m | dd of=/dev/sdb1
Oder direkt auf die Partition schreiben mit(benötigt root-Rechte):
# dd if=/dev/sda1 | pv | ssh root@host “dd of=/dev/sdb1″
oder mit “buffer” (muss vorher mit “aptitude install buffer” installiert werden):
# dd if=/dev/sda1 | buffer -s 64k -S 10m | ssh root@host “dd of=/dev/sdb1″
Falls du noch ein paar hilfreiche Empfehlungen hast oder irgendwas falsch sein sollte, dann melde dich bitte! Es sind bereits einige Kommentare zu dem Thema eingegangen und dafür danke ich den Schreibern.
Konstantin
Ähnliche Beiträge:
Vielen Dank fuer die Tips !
Vielleicht noch ein kleiner Hinweis. Das “buffer” command war auf meiner Debian Maschine nicht da, ich musste noch
apt-get install buffer
sagen.
Peter
danke, ich nehme diese seite als referenz auf
bzgl. der übertragung des dd-images per ssh über das netzwerk wär es escht nett zu wissen, wie ich die gegenseite präparieren muss, damit der datenstrom auch angenommen wird.
gruss
s
Hallo sbecker,
was meinst du mit “preparieren”. der Befehl in den Ausführungszeichen wird auf der Remotemaschine ausgeführt. Als Beispiel wäre “dd of=image.iso” dann den geschickten Inhalt in die Datei “image.iso” schreiben oder “dd of=/dev/sda1″ z.B. direkt auf die Festplatte.
Gruß, Konstantin
Kleiner Auszug aus “man dd” bzgl der Fortschrittsanzeige:
Sending a USR1 signal to a running ‘dd’ process makes it print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Hallo Mario,
Danke für die Information. Viele Wege führen nach Rom.
Gruß, Konstantin
[...] Anleitungen findet ihr hier, und hier. Ich habe das netbook remix auf meinen USB Stick wie folgt [...]
Oft erfolgt ein Zurückspielen des Images mit Hilfe einer Linux-Live-CD aus. Da dort meist kein sshd läuft, können die o.g. Befehle nicht benutzt werden. Hiermit klappt es:
ssh user@host “cat /path/to/file/image.gz” | gzip -d -c | buffer -s 64k -S 10m | dd of=/dev/sdb
super blog Konstantin,
ich frage mich immer ob beim zurück spielen
des images die partition _genau: so groß sein muss oder auch größer sein darf wie die orginal partition?
danke
Hallo Marc,
Spielst du eine Partition zurück (z.B. /dev/sda1), dann wird die Partitionstabelle von der Festplatte (hier /dev/sda) nicht mitgeschrieben. Die Partitionsgröße (Eigenschaften einer Partition) werden nicht angefasst. Die Partition muss gleich oder größer sein. Ist sie größer, so kannst du mit den fs-tools (file system tools das Dateisystem auf die Partitionsgröße vergrößern. Das tool heißt “resize2fs”, aber sei damit vorsichtig und Datensicherung vorher nicht vergessen!
Spielst du eine Festplatte zurück (z.B /dev/sda), so wird die Partitionstabelle mit kopiert und damit auch die Aufteilung der Partitionen. Hier wird der alte Inhalte gnadenlos mit neuem Inhalt überschrieben.
Bei “dd” musst du mind. 3 Mal ganz genau auf den Befehl schauen, da es den Inhalt des Images oder der alten Festplatte nicht überprüft und das Ziellaufwerk oder Partition gnadenlos überschreibt.
Gruß, Konstantin
super Konstantin
ich arbeite schon lange mit Linux, aber diese Tipps waren heute Goldwert. Danke