07 Jan 2008

Harddisk-Clone mit dd inkl. Komprimierung und Statusanzeige

Geschrieben von Tom Schimana in IT 7 Kommentare

Auf dem Zielrechner

Zuerst muss der Zielrechner vorbereitet werden. Dabei kann der Port (-p 555) frei gewählt werden. Er muss nur entsprechend auf der Gegenseite identisch sein. Für kann man ein Zeildevice eingeben (hda, sda, etc.). Aber Vorsicht. Diese Platte wird überschrieben und alle Daten sind dann gelöscht!

netcat -l -p 5555 | dd of=/dev/hdx bs=16065b

Auf dem Quellrechner

dd if=/dev/hda bs=16065b | pv | bzip2 -1 | netcat ZielIP 5555

Die Blocksize sind 100 KB, da dies auch der Blockwert von bzip2 -1 ist. Es wird die erste lokale IDE-Platte als Quelle verwendet. Die Komprimierung ist in diesem Fall mit bzip2, welches recht langsam ist, aber große Blöcke mit gleichen Daten (z.B. leere Plattenbereiche, auf denen noch keine Daten liegen) sehr gut komprimiert. Falls pv nicht gefunden wird, kann dieser mit apt-get install pv installiert werden.

Warum netcat: Netcat verschlüsselt nicht und hat somit Geschwindigkeitsvorteile gegenüber ssh.

Alternativ geht dies natürlich auch ohne Komprimierung oder mit einem “normalen” Gzip.

dd if=/dev/hda bs=16065b | pv | netcat ZielIP 5555
dd if=/dev/hda bs=16065b | pv | gzip -1 | netcat ZielIP 5555

Man muss mit den Werten rumspielen, um entsprechend der CPU- und Netzwerkleistung die richtigen Werte zu finden. Die Blocksize (bs=) muss auf beiden Seiten immer identisch sein und kann mit fdisk -l /dev/hda geprüft werden.

Ohne pv geht es natürlich auch. Allerdings ist das dann wie früher mit ISDN: Man sieht nichts, man riecht nicht und man hört nichts. ;-)

Clone in eine Datei

dd if=/dev/hda bs=16065b | pv | gzip -1 >/mnt/irgendwo/clone.gz

Rücksicherung:

gunzip -dc /mnt/irgendwo/clone.gz | pv | dd of=/dev/hdc bs=16065b

Das ganze über SSH:

dd if=/dev/hda bs=16065b | pv | gzip -c | ssh user@host "cat > clone.gz"

Und noch eine Rücksicherung über SSH:

ssh user@host "gzip -d -c clone.gz" | pv | dd of=/dev/hda bs=16065b
Themen: · · ·

Interessante Beiträge zu diesem Thema

7 Kommentare zu “Harddisk-Clone mit dd inkl. Komprimierung und Statusanzeige”

  1. marek says:

    Hi, die Befehlszeilen enthalten leider ein paar Fehler – so endet man in Variante 1 mit einem KOMPRIMIERTEN Abbild auf der Zielfestplatte, es auf der Zielseite das Entpacken des ge-bzip-ten Datenstroms fehlt, bevor er auf hdx geschrieben wird.
    Zudem sind 16065b nicht 100kb, wenn ich nicht irre :-)
    Zudem möchte ich noch das Tool dcfldd erwähnen, u.a. weil es eine Statusanzeige eingebaut hat.
    Insgesamt aber wieder ein nützlicher Artikel, wie so vieles anderes in diesem Blog auch. Weiter so!

  2. Alexandros says:

    Hallo, wirklich sehr gute Anleitung. Hat mir sehr weiter geholfen.

  3. Michael Simons says:

    "Ohne pv geht es auch.Allerdings ist das dann wie früher mit ISDN:Man sieht nichts, riecht nichts und hört nichts." http://bit.ly/tFeiK lol

  4. Daniel Hahler says:

    Man kann sich auch ohne “pv” den Status von dd anzeigen lassen, indem man das USR1-Kill-Signal schickt: “kill -USR1 $PID_OF_DD”

  5. Wiora Matthias says:

    superschicke sache! funktioniert 1a :)
    grüße µatthias

  6. MichaelRogger says:

    Festplatte clonen (Ziel: ssh oder internet) inkl komprimierung http://tinyurl.com/nuz743

  7. Linux-Kurs – Teil 7 (SSH verwenden) - Tom Schimana says:

    [...] ssh ein, um die Funktionsvielfalt von SSH zu sehen. Ein gutes Beispiel für SSH ist mein Artikel Harddisk-Clone mit dd inkl. Komprimierung und Statusanzeige, bei dem ich auch SSH verwende. Man kann also mit SSH nicht nur eine Konsole öffnen, sondern [...]

Kommentar schreiben