Imageerstellung mit dd und ddrescue: Unterschied zwischen den Versionen
Gehrke (Diskussion | Beiträge) K (→Alternativen zu dd: nur etwas Zeichensetzung korrigiert, nichts Inhaltliches) |
|||
(13 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Mit Hilfe von dd lassen sich Images diverser Medien erstellen. Ob es sich dabei um Abbilddateien einer Festplatte, Dikettenimages oder ISO-/RAW-Images einer CD oder DVD erstellen ist für den eigentichen syntaktischen | + | == Imageerstellung mit dd == |
− | + | Mit Hilfe von [[dd]] lassen sich Images diverser Medien erstellen. Ob es sich dabei um Abbilddateien einer Festplatte, Dikettenimages oder ISO-/RAW-Images einer CD oder DVD erstellen ist für den eigentichen syntaktischen Aufbau des Befehls unerheblich. | |
+ | === ISO-Images und CD/DVD RAW-Images === | ||
Für die Erstellung eines kompletten Abbilds einer CD/DVD dient beispielsweise folgender Befehl: | Für die Erstellung eines kompletten Abbilds einer CD/DVD dient beispielsweise folgender Befehl: | ||
dd if=/dev/dvd of=/pfad/wo/das/Image/hin/soll/Image.img | dd if=/dev/dvd of=/pfad/wo/das/Image/hin/soll/Image.img | ||
− | Danach sollte man mit Hilfe des befehls cmp überprüfen, ob beim | + | Danach sollte man mit Hilfe des befehls cmp überprüfen, ob beim Auslesen des Ursprungsmediums auch alle Daten korrekt gelesen wurden. |
cmp Image.img /dev/dvd | cmp Image.img /dev/dvd | ||
Zeile 13: | Zeile 14: | ||
mv Image.img Image.iso | mv Image.img Image.iso | ||
− | problemlos den passenden Namen bekommen. Wenn es sich jedoch um eine SVCD gehandelt haben | + | problemlos den passenden Namen bekommen. Wenn es sich jedoch um eine SVCD gehandelt haben sollte, sollte man bedenken,das oben im [[dd|dd-Befehl]] keine Blocksize angegeben wurde und dd in diesem Fall die Blocksize selbst herausgefunden hat, die bei SVCDs nunmal keine 2048 wie in einem ISO-Format beträgt, sondern 2352. Dann liegt natürlich kein wirkliches ISO-Image vor sondern ein RAW-Image, welches dann als solches durchaus auch per K3b oder cdrdao wieder auf eine CD gebrannt werden könnte. Mit dd selbst kann jedoch nicht auf CD oder DVD gebrannt werden. |
+ | |||
+ | === Diskettenimages === | ||
− | Mit dem Befehl kann man jedoch auch Diskettenimages anlegen und auch vorhandene Diskettenimages auf Diskette zurückkopieren. | + | Mit dem dd Befehl kann man jedoch auch Diskettenimages anlegen und auch vorhandene Diskettenimages auf Diskette zurückkopieren. |
Der Befehl fürs anlegen lautet auch hier wieder: | Der Befehl fürs anlegen lautet auch hier wieder: | ||
Zeile 24: | Zeile 27: | ||
dd if=Diskimage.img of=/dev/fd0 | dd if=Diskimage.img of=/dev/fd0 | ||
− | Dabei ist es unerheblich ob auf der Diskette bereits ein Dateisystem existiert oder nicht, da dies gnadenlos von dd überschrieben wird. Man sollte jedoch auch hier wieder mit cmp überprüfen, ob die Daten korrekt gelesen bzw. geschrieben wurden. Sollte ein auf Diskette zurückgeschriebenes Image Fehler aufweisen, so sollte die entsprechende Diskette umgehend entsorgt werden,da dann Medienfehler die Ursache sein dürften und diese wohl kaum reparierbar sind (es | + | Dabei ist es unerheblich, ob auf der Diskette bereits ein Dateisystem existiert oder nicht, da dies gnadenlos von dd überschrieben wird. Man sollte jedoch auch hier wieder mit cmp überprüfen, ob die Daten korrekt gelesen bzw. geschrieben wurden. Sollte ein auf Diskette zurückgeschriebenes Image Fehler aufweisen, so sollte die entsprechende Diskette umgehend entsorgt werden,da dann Medienfehler die Ursache sein dürften und diese wohl kaum reparierbar sind (es sei denn, man formatiert die Diskette mehrfach im sogenannten Lowlevel, also ohne Dateisystem, was aber recht zeitaufwändig ist und den Aufwand gegenüber dem Wert einer Diskette meist nicht rechtfertigt). |
+ | |||
+ | === Festplattenimages === | ||
− | Desweiteren dient dd auch dem | + | Desweiteren dient dd auch dem Erstellen von Festplattenimages. Man kann damit ganze Festplatten in ein RAW-Image sichern: |
dd if=/dev/hdb of=/pfad/wo/das/Image/hin/soll/hdb-Image.img | dd if=/dev/hdb of=/pfad/wo/das/Image/hin/soll/hdb-Image.img | ||
Zeile 33: | Zeile 38: | ||
dd if=/dev/hda6 of=/pfad/wo/das/Image/hin/soll/hda6-Image | dd if=/dev/hda6 of=/pfad/wo/das/Image/hin/soll/hda6-Image | ||
+ | |||
+ | === Festplattenreplikation === | ||
Man kann jedoch diesen Befehl ebensogut zum 1:1 kopieren von ganzen Festplatten nutzen indem man identische(!) Festplatten in ein System integriert, beispielsweise mit externen USB-Festplattengehäusen, und dann die Rohdaten einfach 1:1 per dd vom Eingangsmedium auf das Ausgangsmedium schaufelt: | Man kann jedoch diesen Befehl ebensogut zum 1:1 kopieren von ganzen Festplatten nutzen indem man identische(!) Festplatten in ein System integriert, beispielsweise mit externen USB-Festplattengehäusen, und dann die Rohdaten einfach 1:1 per dd vom Eingangsmedium auf das Ausgangsmedium schaufelt: | ||
Zeile 40: | Zeile 47: | ||
Je nach Festplatengröße dauert das natürlich einige Zeit. | Je nach Festplatengröße dauert das natürlich einige Zeit. | ||
− | Festplattenimages lassen sich aber auch direkt komprimiert | + | Festplattenimages lassen sich aber auch direkt komprimiert anlegen indem man die Angabe über das Ausgangsmedium weglässt und die daraus resultierende Augabe an einen Packer piped: |
dd if=/dev/hda | gzip --best >hda-Image.gz | dd if=/dev/hda | gzip --best >hda-Image.gz | ||
Zeile 48: | Zeile 55: | ||
gunzip -c hda-Image.gz | dd of=/dev/hda | gunzip -c hda-Image.gz | dd of=/dev/hda | ||
− | Mit Hilfe der Pipefähigkeit von dd | + | Mit Hilfe der Pipefähigkeit von dd lassen sich durchaus komplexe Scripte erstellen mit deren Hilfe z.B. solche Images über Netzwerke hinweg angelegt und zurückgespielt werden können, siehe dazu auch in der manpage von netcat. |
− | + | ||
+ | == Bootsektorsicherung == | ||
− | Mit Angabe der Blockgröße und der Anzahl der zu lesenden Blöcke kann man per dd aber auch den Masterbootrecord einer Festplatte sicher um zum Beispiel | + | Mit Angabe der Blockgröße und der Anzahl der zu lesenden Blöcke kann man per dd aber auch den Masterbootrecord ([[MBR]]) einer Festplatte sicher um zum Beispiel [[GRUB]] zu sichern. |
dd if=/dev/hda bs=512 count=1 of=grub.img | dd if=/dev/hda bs=512 count=1 of=grub.img | ||
Zeile 59: | Zeile 67: | ||
dd if=grub.img bs=512 count=1 of=/dev/hda | dd if=grub.img bs=512 count=1 of=/dev/hda | ||
− | Die Alternative zu dd für den Fall, daß es sich um Medien handelt | + | == Alternativen zu dd == |
+ | |||
+ | Die Alternative zu dd für den Fall, daß es sich um fehlerhafte Medien handelt, lautet ddrescue. Dessen Syntax ist identisch zu dd, jedoch muss man dabei beachten, dasß beim Einlesen im Fehlerfall natürlich die an der defekten Stelle ehemals vorhandenen Daten nicht aus dem Nichts heraus restauriert werden können, sondern durch ddrescue schlichtweg durch Nullen ersetzt werden. | ||
+ | Des weiteren kann es dabei auch - je nach Fehlerart - zwingend notwendig werden, die Blockgröße sowie die Anzahl der zu lesenden Datenblöcke anzugeben. | ||
+ | == Datenvernichtung(!) und Festplattenrecycling == | ||
+ | |||
+ | Der Befehl dd kann auch dazu genutzt werden alte Daten unwiderruflich zu löschen, ähnlich wie wipe für Dateien. Benötigt wird sowas z.B. wenn Firmen Altgeräte weiterverkaufen wollen aber auch sichergehen wollen, daß die ehemals gespeicherten sensiblen Firmendaten nicht in die falschen Hände geraten können. Dazu bedient man sich den Zufallswerten aus /dev/urandom. | ||
+ | Um beispielsweise eine externe USB-Platte restlos und unwiderruflich von alten Daten zu befreien führt man einfach folgenden Befehl mehrfach aus: | ||
+ | |||
+ | dd if=/dev/urandom of=/dev/sda | ||
+ | |||
+ | Dies wiederholt man je nach Bedarf der Unwiderruflichkeit des Löschens zwischen 1 und 12 mal. Bei 12 Wiederholungen der so erfolgten Überschreibung der Festplatte versagen auch die Wiederherstellunsgversuche der meisten Datenrettungsunternehmen, mehr als 12 mal wiederholen schadet zwar nicht aber ist meist unnötiger Zeitaufwand. Als letztes füllt man die Platte dann wieder mit Nullen und sie ist genauso zu handhaben wie eine flammneue Festplatte(abgesehen von den altersbedingten ausgefallenen Sektoren die im Lowlevelformat von der Plattenfirmware dann schon vermerkt wurden). Dies geschieht über folgenden Befehl: | ||
+ | |||
+ | dd if=/dev/zero of=/dev/sda | ||
+ | |||
+ | Somit ist die Wiederaufbereitung der Festplatte abgeschlossen und sie ist nun fertig für den Weiterverkauf. | ||
+ | |||
+ | |||
+ | == Weiterführende Links == | ||
+ | * http://www.linux-user.de/ausgabe/2004/08/048-dd-rescue/ | ||
+ | * ausführliche [[dd|Beschreibung und Anwendungsbeispiele von dd]] | ||
--[[Benutzer:TomcatMJ|TomcatMJ]] 15:53, 29. Aug 2006 (CEST) | --[[Benutzer:TomcatMJ|TomcatMJ]] 15:53, 29. Aug 2006 (CEST) | ||
+ | ---- | ||
+ | [[Multimedia | Zurück zu Multimedia]] | ||
+ | |||
+ | [[Konsole | Zurück zu Konsole]] | ||
[[Category:Konsole]] | [[Category:Konsole]] | ||
[[Category:Multimedia]] | [[Category:Multimedia]] |
Aktuelle Version vom 31. Mai 2015, 15:32 Uhr
Inhaltsverzeichnis
Imageerstellung mit dd
Mit Hilfe von dd lassen sich Images diverser Medien erstellen. Ob es sich dabei um Abbilddateien einer Festplatte, Dikettenimages oder ISO-/RAW-Images einer CD oder DVD erstellen ist für den eigentichen syntaktischen Aufbau des Befehls unerheblich.
ISO-Images und CD/DVD RAW-Images
Für die Erstellung eines kompletten Abbilds einer CD/DVD dient beispielsweise folgender Befehl:
dd if=/dev/dvd of=/pfad/wo/das/Image/hin/soll/Image.img
Danach sollte man mit Hilfe des befehls cmp überprüfen, ob beim Auslesen des Ursprungsmediums auch alle Daten korrekt gelesen wurden.
cmp Image.img /dev/dvd
Im Falle einer Daten-CD/DVD ist das Ergebnis ein ISO-Image, es kann also mit
mv Image.img Image.iso
problemlos den passenden Namen bekommen. Wenn es sich jedoch um eine SVCD gehandelt haben sollte, sollte man bedenken,das oben im dd-Befehl keine Blocksize angegeben wurde und dd in diesem Fall die Blocksize selbst herausgefunden hat, die bei SVCDs nunmal keine 2048 wie in einem ISO-Format beträgt, sondern 2352. Dann liegt natürlich kein wirkliches ISO-Image vor sondern ein RAW-Image, welches dann als solches durchaus auch per K3b oder cdrdao wieder auf eine CD gebrannt werden könnte. Mit dd selbst kann jedoch nicht auf CD oder DVD gebrannt werden.
Diskettenimages
Mit dem dd Befehl kann man jedoch auch Diskettenimages anlegen und auch vorhandene Diskettenimages auf Diskette zurückkopieren. Der Befehl fürs anlegen lautet auch hier wieder:
dd if=/dev/fd0 of=/pfad/wo/das/Image/hin/soll/Diskimage.img
Der Befehl zum zurück kopieren eines solchen Diskettenimages lautet dann passenderweise:
dd if=Diskimage.img of=/dev/fd0
Dabei ist es unerheblich, ob auf der Diskette bereits ein Dateisystem existiert oder nicht, da dies gnadenlos von dd überschrieben wird. Man sollte jedoch auch hier wieder mit cmp überprüfen, ob die Daten korrekt gelesen bzw. geschrieben wurden. Sollte ein auf Diskette zurückgeschriebenes Image Fehler aufweisen, so sollte die entsprechende Diskette umgehend entsorgt werden,da dann Medienfehler die Ursache sein dürften und diese wohl kaum reparierbar sind (es sei denn, man formatiert die Diskette mehrfach im sogenannten Lowlevel, also ohne Dateisystem, was aber recht zeitaufwändig ist und den Aufwand gegenüber dem Wert einer Diskette meist nicht rechtfertigt).
Festplattenimages
Desweiteren dient dd auch dem Erstellen von Festplattenimages. Man kann damit ganze Festplatten in ein RAW-Image sichern:
dd if=/dev/hdb of=/pfad/wo/das/Image/hin/soll/hdb-Image.img
Oder beispielsweise einzelne Partitionen:
dd if=/dev/hda6 of=/pfad/wo/das/Image/hin/soll/hda6-Image
Festplattenreplikation
Man kann jedoch diesen Befehl ebensogut zum 1:1 kopieren von ganzen Festplatten nutzen indem man identische(!) Festplatten in ein System integriert, beispielsweise mit externen USB-Festplattengehäusen, und dann die Rohdaten einfach 1:1 per dd vom Eingangsmedium auf das Ausgangsmedium schaufelt:
dd if=/dev/sda of=/dev/sdb
Je nach Festplatengröße dauert das natürlich einige Zeit.
Festplattenimages lassen sich aber auch direkt komprimiert anlegen indem man die Angabe über das Ausgangsmedium weglässt und die daraus resultierende Augabe an einen Packer piped:
dd if=/dev/hda | gzip --best >hda-Image.gz
Zurückkopieren liesse sich das dann mit:
gunzip -c hda-Image.gz | dd of=/dev/hda
Mit Hilfe der Pipefähigkeit von dd lassen sich durchaus komplexe Scripte erstellen mit deren Hilfe z.B. solche Images über Netzwerke hinweg angelegt und zurückgespielt werden können, siehe dazu auch in der manpage von netcat.
Bootsektorsicherung
Mit Angabe der Blockgröße und der Anzahl der zu lesenden Blöcke kann man per dd aber auch den Masterbootrecord (MBR) einer Festplatte sicher um zum Beispiel GRUB zu sichern.
dd if=/dev/hda bs=512 count=1 of=grub.img
Zurückspielen eines so angelegten Images geht äquivalent zum erstellen mit:
dd if=grub.img bs=512 count=1 of=/dev/hda
Alternativen zu dd
Die Alternative zu dd für den Fall, daß es sich um fehlerhafte Medien handelt, lautet ddrescue. Dessen Syntax ist identisch zu dd, jedoch muss man dabei beachten, dasß beim Einlesen im Fehlerfall natürlich die an der defekten Stelle ehemals vorhandenen Daten nicht aus dem Nichts heraus restauriert werden können, sondern durch ddrescue schlichtweg durch Nullen ersetzt werden. Des weiteren kann es dabei auch - je nach Fehlerart - zwingend notwendig werden, die Blockgröße sowie die Anzahl der zu lesenden Datenblöcke anzugeben.
Datenvernichtung(!) und Festplattenrecycling
Der Befehl dd kann auch dazu genutzt werden alte Daten unwiderruflich zu löschen, ähnlich wie wipe für Dateien. Benötigt wird sowas z.B. wenn Firmen Altgeräte weiterverkaufen wollen aber auch sichergehen wollen, daß die ehemals gespeicherten sensiblen Firmendaten nicht in die falschen Hände geraten können. Dazu bedient man sich den Zufallswerten aus /dev/urandom. Um beispielsweise eine externe USB-Platte restlos und unwiderruflich von alten Daten zu befreien führt man einfach folgenden Befehl mehrfach aus:
dd if=/dev/urandom of=/dev/sda
Dies wiederholt man je nach Bedarf der Unwiderruflichkeit des Löschens zwischen 1 und 12 mal. Bei 12 Wiederholungen der so erfolgten Überschreibung der Festplatte versagen auch die Wiederherstellunsgversuche der meisten Datenrettungsunternehmen, mehr als 12 mal wiederholen schadet zwar nicht aber ist meist unnötiger Zeitaufwand. Als letztes füllt man die Platte dann wieder mit Nullen und sie ist genauso zu handhaben wie eine flammneue Festplatte(abgesehen von den altersbedingten ausgefallenen Sektoren die im Lowlevelformat von der Plattenfirmware dann schon vermerkt wurden). Dies geschieht über folgenden Befehl:
dd if=/dev/zero of=/dev/sda
Somit ist die Wiederaufbereitung der Festplatte abgeschlossen und sie ist nun fertig für den Weiterverkauf.
Weiterführende Links
- http://www.linux-user.de/ausgabe/2004/08/048-dd-rescue/
- ausführliche Beschreibung und Anwendungsbeispiele von dd
--TomcatMJ 15:53, 29. Aug 2006 (CEST)