dd und seine Verwendung

dd liest eine Datei und schreibt den Inhalt mit wählbarer Blockgröße und verschiedenen Konvertierungen. Mit Hilfe dieses Kommandos können reguläre Dateien ebenso wie ganze Disketten oder Festplattenpartitionen kopiert werden.

Am einfachsten geht’s mit ein paar Beispielen:

Eine ganze Festplatte (Filesystem-Unabhängig!) läßt sich so sichern:
# dd if=/dev/hda | gzip > /dev/hdb1/sicherung_hda.gz

Die Rücksicherung erfolgt so:
# gunzip -c /dev/hdb1/sicherung_hda.gz| dd of=/dev/hda

Den MBR (Masterbootrecord) sichert man, indem man nur die ersten 512 Byte sichert:
# dd if=/dev/hda bs=512 count=1 of=/zieldatei
# dd if=datei of=/dev/hda

Auch sicheres Löschen einer Festplatte ist möglich (Achtung, nicht die falsche Platte shredden!):
# dd if=/dev/urandom of=/dev/hda

Nimmt man den Befehl “netcat” zu Hilfe, läßt sich eine Sicherung auch direkt über ein Netzwerk übertragen. Man kann z.B. eine Live-CD booten (Knoppix, PC-LinuxOS), und die lokale Festplatte in eine Datei auf einem anderen Rechner schreiben. Dazu muß auf dem Zielrechner (hier: 192.168.0.3) ein Netcat lauschen, und die empfangenen Daten in eine Datei schreiben:

# netcat -l -p 9000 | dd of=/dateiname

Auf dem Quellrechner startet man die Übertragung so:

# dd if=/dev/sda | netcat 192.168.0.3 9000

Natürlich kann man auf diese Art auch Rechner clonen, Voraussetzung ist allerdings, daß die Zielfestplatte mindestens genauso groß ist wie die Quell-Platte. Auf dem Zielrechner läßt man Netcat einfach nicht in eine Datei schreiben, sondern auf die Festplatte:

# netcat -l -p 9000 | dd of=/dev/sda

Der Vorteil von dd ist, daß die Daten “RAW”, d.h “mit Haut und Haaren” kopiert werden. Diese Methode arbeitet blockbasiert, d.h. Filesystemunabhängig.
Nachteilig ist, daß auch unbenutzte Festplattenteile kopiert werden. Dies hat zur Folge, daß bei einer 500GB-Platte die vollen 500GB übertragen werden, auch wenn nur 20GB belegt sind.
Weitere Nachteile: Die Kopie wird abgebrochen, wenn das Quellmedium fehlerhaft ist. Um eine defekte Festplatte zu kopieren, man dd also nicht verwenden. Wenn dd auf defekte (nicht lesbare) Sektoren trifft, bricht es ab, oder mit der Option conv=noerror werden diese einfach übersprungen. Die Zieldatei ist dann kürzer! Das Programm dd_rescue schafft hier Abhilfe.

Auch gibt es keine Fortschrittsanzeige, man erkennt nur an den blinkenden Laufwerks-LEDs, daß etwas geschieht.

Schlagworte: , , , ,

Kommentieren

Sie müssen angemeldet sein, um kommentieren zu können.