Was bedeutet X11? Sie wissen es nicht, egal ...  Interesse ? Info hier: X Window System
Linux-Server-Administratoren, sollten es jedoch wissen!
Das X Window System ist Netzwerkfähig wie wir, multiflexibel und anpassungsfähig!
  • Produkte
  • News
  • Support
  • Service/FAQ
  • Referenzen
  • Links
  • Seite Drucken
  • Kontakt
  • Impressum
  • FAQ
  • Linux Server HowTo
  • Typo3 Extensions
  • Kleine Helfer
  • SSL Root Cert
Die Programme dd ''dump device'' und dd_rescue

Datenrettung einer Festplatte oder Image erstellen mit dd oder dd_rescue

Der 1 zu 1 Kopiervorgang

Achtung, bitte ganz genau darauf achten welches DEV bzw. auf welche Platte geschrieben wird, war es die ''falsche'' Platte, gibt es (fast ) kein zurück mehr.

Es wird eine Blockgröße von einem Zylinder verwendet, hier als Beispiel 16065b (b=Block=Sektor=512Byte). Man bekommt diesen Wert mit fdisk -l /dev/hda. Vorteil: die zu kopierende Blockzahl entspricht genau der Zylinderzahl der Festplatte. Letztlich kann man die Blockgröße aber so wählen, wie man will.

 

Wir kopieren eine Platte 1 zu 1 auf eine andere mit der gleichen Geomertie:

INFO: if=QUELLE of=ZIEL bs=blocksize in Bytes

root@m1 # dd if=/dev/hda of=/dev/hdc bs=16065b

Das ganze kann auch über das Netz erledigt werden mit netcat.

Die Ausgabe von DD wird in das Program netcat ''gepiped''

INFO: netcat Zielrechner Zielport

Hier muss zuerst auf dem Zielrechner das Programm netcat im ''Listen mode'' gestartet werden, damit man sich vom Quellrechner aus verbinden kann.

 

root@zielrechner # netcat -l -p 22111 | dd of=/dev/hdc bs=16065b

root@quellrechner # dd if=/dev/hda bs=16065b | netcat zielrechner 22111

Oder eine Variante mittels SSH. Hier wird der Datenstrom zusätzlich verschlüsselt und man braucht keinen Service der auf dem Port hier im Beispiel (22111) hört. Nur einen gültige Benutzeraccount welcher eine Shell auf dem Ziehlhost ausführen darf.

 

Anmerkung: Hier kopieren wir aber erst mal in eine Datei (wir erzeugen ein sogenanntes Abbild (image) der Festplatte , welche dann entweder mittels DD auf die entsprechend Platte kopiert werden kann (siehe oben).

dd if=/dev/md0 | ssh username@saveto.host 'cat > /home/username/test.img'

Oder einfach mal gemountet wird.

root@ziehlhost mount -o loop /pfad/zu/test.img /mnt/ 

Mit gzip komprimiert sieht das ''Ganze'' dann so aus:

Wir ''pipen'' alles vorher noch durch gzip.

dd if=/dev/md0 | gzip -1 | ssh username@zielrechner 'cat > /home/username/test.img.gz'

Die Ziffer nach gzip (-1) ist die Kompressionstiefe 1 bedeutet schnell und schlecht komprimiert, 9 bedeutet langsam und optimal komprimiert.

 

Ein so erzeugtes Image lässt sich hiermit wieder auf eine Platte kopieren:

INFO: gunzip -c [Write output on standard output, keep original files unchanged] -d [decompress]

gunzip -dc /home/username/test.img.gz | dd of=/dev/hdc bs=16065b

Platte löschen

Nur Masterbootrecord (MBR) löschen (Bootcode + Partitionstabelle)

count=1 bedeutet, daß der Vorgang nur einmal durchgeführt wird.

root@m1# dd if=/dev/zero of=/dev/sdc count=1

Ganze Platte ''nullen''

root@m1# dd if=/dev/zero of=/dev/sdc

Ganze Platte mit Zufallsdaten überschreiben (sicherer):

/dev/urandom blockiert im Gegensatz zu /dev/random nicht, wenn eine definierte Entropieschwelle unterschritten wird. D.h. /dev/urandom ist für Anwendungen geeignet, die keine hohen Ansprüche an die Zufälligkeit der Zufallszahlen stellen und eine große Menge von Zufallszahlen benötigen. Ein Anwendungsbeispiel wäre ein Spiel.

wir wollen es ''Sicherer'' also verwendern wir /dev/random.

root@m1# dd if=/dev/random of=/dev/sdc

Wer es besonders Sicher haben will kann das mehrfach wiederholen, ca. 5x).

Da wir aber faul sind und das nicht 5 mal von Hand zu starten möchten erledigen wir das mit einer for Schleife:

root@m1# for ((i=0; i < 5; i++)); \

do echo Durchgang $i; \

dd if=/dev/random of=/dev/sda; \

sleep 1; clear; \

done

 

Boot-Sektor der Festplatte sichern

Im Bootsektor eines Linux-Systems befindet sich der Boot-Loader, z.B. GRUB Wenn auf einem Rechner außer Linux auch Windows installiert ist, wird bei einer Neuinstalltion von Windows der Bootloader überschrieben. (Windows muss halt öfter mal neu installiert werden, weil es zu Viren-Anfällig ist). Deswegen ist es ratsam den Bootloader (mit der Partitionstabelle) zu sichern.

root@m1# dd if=/dev/hda of=boots.img bs=512 count=1

 

Dann ist die Wiederherstellung des Bootsektors, mit der Ubutu oder Knoppix-CD einfacher: es braucht nur der Kopierbefehl umgekehrt werden:

root@m1# dd if=boots.img of=/dev/hda bs=512 count=1

Achtung: Dabei wird auch die Partitionstabelle überschrieben. Dies kann zu Datenverlusten führen, wenn nach der Sicherung des Bootsektors die Partitionierung geändert wurde. Mit bs=446 bleibt die Partitionstabelle bei i386 erhalten.

 

Defekte Platte sichern

Dazu sollte man dd 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. Das dd_rhelp Script beschleunigt Kopieren der gesunden Sektoren.

 

Fortschrittsanzeige

dd gibt eine Information über bereits kopierte Daten wenn es das Signal SIGUSR1 (10) bekommt:

INFO: DD-PID = Processi von dd während es arbeitet.

root@m1# root@localhost # kill -USR1 DD-PID

oder mit einer while Schleife:

root@m1# while /bin/true; do sleep 5; kill -USR1 DD-PID; done

 

Alternative: wenn "pv" (pipe visual) installiert ist, gibt es eine laufende Anzeige z.b. bei "Image einer Platte erstellen"

root@m1# dd if=/dev/hda bs=16065b | pv | gzip -1 >/mnt/vielplatz/plattenimage.gz

SIEHE AUCH:

DiskettenImage

IsoImage

 

Quelle: linuxwiki.de/dd

 

Weitere Links zur Datenrettung:

www.linux-user.de/ausgabe/2004/08/048-dd-rescue/

 

 

Defekte Festplatte sichern mit dd_rescue

Der Standardvorgang!

INFO: -A [Always write blocks, zeroed if err (def=no)] -l [logfile]

root@m1# dd_rescue -A /dev/sda1 /mnt/vielplatz/sda1.img

Oder komprimiert.

Wobei hier (output file is not seekable!) gemeldet wird.

Wenn nicht genügend Speicherplatz zur verfügung steht, eine weitere Option ...

root@m1# dd_rescue -A /dev/sda1 - | gzip -c -9 > /mnt/vielplatz/sda1.img.gz

 

Man kann dies auch über eine "Named Pipe" tun:

 

Zuerst erzeuge erzeugen wir eine Named Pipe:

root@m1# mkfifo /tmp/MY_PIPE_FIFO

Jetzt pipen wir das ganze über die Fifo Datei:

root@m1# dd_rescue -A -l /mnt/SAVE-DISK/sda1-sda1.log \

/dev/sda1 /tmp/MY_PIPE_FIFO \

& gzip -5 < /tmp/MY_PIPE_FIFO > \

/mnt/SAVE-DISK/sda1.img.gz

 

-xwinmaniac-

 

Windows XP / 2000 Sichern mit ntfsprogs

Folgende Programme sind enthalten:

ntfscat, ntfscluster, ntfscp, ntfsfix, ntfslabel, ntfsmount, ntfsundelete, ntfsclone ,ntfscmp, ntfsdecrypt, ntfsinfo, ntfsls, ntfsresize

Näheres unter: www.linux-ntfs.org