Ddrescue
GNU Ddrescue (gddrescue)
| |
---|---|
![]() | |
Basisdaten
| |
Maintainer | Antonio Diaz |
Entwickler | GNU-Projekt |
Erscheinungsjahr | 12. August 2004 |
Aktuelle Version | 1.17 (15. Juli 2013) |
Betriebssystem | Unixoide Systeme |
Programmiersprache | C++ |
Kategorie | Datenwiederherstellung |
Lizenz | GPL (Freie Software) |
deutschsprachig | nein |
www.gnu.org/software/ddrescue/ddrescue.html |
GNU ddrescue (Paketname: gddrescue von engl. to rescue mit der Bedeutung retten, bergen, wiedererlangen, zurückgewinnen)[1] ist ein Kommandozeilenprogramm zur Datenwiederherstellung. Das Programm kopiert Daten aus einer Datei oder von einem blockorientierten Gerät (Festplatte, CD-ROM oder dergleichen) in eine andere Datei oder auf ein anderes blockorientiertes Gerät. Es versucht ganz besonders auch bei auftretenden Lesefehlern, die Daten so weit wie irgend möglich wiederzugeben.
Abgrenzung zu anderen Programmen
Das Programm ist weder eine Abspaltung von dd noch hat es sonst etwas mit dd zu tun, außer dass beide Programme Daten von einem Gerät auf ein anderes kopieren können. Ein Unterschied besteht darin, dass ddrescue einen ausgeklügelten Algorithmus benutzt, um Daten von aussetzenden Laufwerken auf eine Weise zu kopieren, dass so wenig weiterer Schaden verursacht wird wie möglich.[2]
GNU ddrescue ist nicht identisch mit dem älteren Hilfsprogramm dd_rescue
von Kurt Garloff.[1] Zwar gibt es ein Shell Script namens dd_rhelp
, das Garloffs dd_rescue
mehrfach aufruft, um etwas ähnliches zu leisten wie GNU ddrescue; jedoch soll die Zusammenarbeit von dd_rescue
und dd_rhelp
laut Antonio Diáz Diáz und anderen vergleichsweise ineffizient sein.[3] Eine gewisse Ineffizienz, nämlich Langsamkeit, ergibt sich schon daraus, dass ein Teil der Arbeit von einem Skript übernommen wird, wohingegen GNU ddrescue ein komplett kompiliertes Programm ist, das ohne ein steuerndes Skript auskommt.
Aufgabe des Programms
Laut seinem Programmautor kann ddrescue vor allem für zwei Aufgaben verwendet werden:[3]
- die Wiederherstellung der Daten einer defekten Festplatte auf einer anderen Festplatte
- das Löschen aller guten Sektoren einer Festplatte unter Beibehaltung der fehlerhaften, um die Festplatte zur Reklamation an den Hersteller schicken zu können, ohne unnötig eigene Daten preiszugeben.

GNU ddrescue hat den differiertesten Algorithmus zur Änderung von Blockgrößen, den es in einer Open-Source-Software gibt.[4][5] Es gilt als bedeutendes Datenwiederherstellungswerkzeug, [6][7] und wird professionell eingesetzt.[8]
Wenn man die Logfile-Technik von ddrescue benutzt, werden die Daten besonders effizient restauriert, weil nur die benötigten Blöcke gelesen werden. Darüber hinaus kann man dadurch die Datenwiederherstellung jederzeit unterbrechen und später an derselben Stelle fortsetzen.
Spezielle Einsatzmöglichkeiten
Automatische Kombination von gesicherten Daten: Gibt es mehrere beschädigte Kopien einer Datei, einer CD-ROM oder eines anderen blockorientierten Speichers, so kann man ddrescue nacheinander jede der Kopien in dieselbe Ausgabedatei kopieren lassen und wird dadurch eventuell eine vollständige und fehlerfreie Datei erhalten. Wird die Protokolldatei (engl. logfile) benutzt, so werden beim zweiten und jedem folgenden Kopiervorgang nur die Blöcke gelesen, die noch benötigt werden.
Ddrescue empfiehlt, Sicherungen mit lzip zu komprimieren, weil das Lzip-Format für die Langzeitarchivierung von Daten ausgelegt ist und Datenwiederherstellungsfunktionen bietet, die gut die Fähigkeiten von Ddrescue ergänzen. Wenn der Datenverlust in einer Datei auf einem beschädigten Datenträger beruht, ist eine Zusammenarbeit von Ddrescue und Lziprecover die beste Möglichkeit zur Wiederherstellung von Daten aus mehreren beschädigten Kopien.
Ddrescue kann ausgewählte Teile der Ausgabedatei überschreiben (fill mode). Damit können zum Beispiel Daten gelöscht oder fehlerhafte Sektoren gekennzeichnet werden und gelegentlich beschädigte Sektoren repariert werden.[9]
Anwendungsbeispiel
Eine Festplatte wiederherstellen
Mit ddrescue eine Festplatte mit zwei Ext2-Partitionen von /dev/sda auf /dev/sdb wiederherstellen.[10]
Hardwarekonstellation
Das Beispiel setzt – auch wenn andere Konstellationen möglich sind – voraus, dass vier Datenträger an den Rechner angeschlossen sind:
die wiederherzustellende bzw. zu kopierende Festplatte (
/dev/sda
),eine leere zweite Festplatte (
/dev/sdb
), die mindestens so groß ist wie die erste, die kopiert werden soll,ein CD-ROM-Laufwerk für eine Linux-Live-CD und
ein USB-Stick für die Logdatei von ddrescue (
/dev/sdc1
).
Die Verwendung eines gesonderten USB-Sticks für die Logdatei sorgt dafür, dass die Datei selbst bei einem Systemabsturz erhalten bleibt. Speichert man sie hingegen nur im Dateisystem der Live-CD, dann geht sie bei einem eventuellen Systemneustart verloren, wodurch ddrescue seine Arbeit nicht an der Stelle fortsetzen könnte, an der es unterbrochen wurde. Da ein Wiederherstellungslauf von ddrescue etliche Stunden dauern kann, ist dies ein nicht zu vernachlässigendes Risiko.

Die Befehlsfolge
Der Computer wird über einen Linux-Live-CD wie Parsix, Kanotix gestartet, dann gibt man an der Kommandozeile nacheinander folgende Befehle ein:
ddrescue -f -n /dev/sda /dev/sdb /media/myusb/rescue.log
ddrescue -d -f -r3 /dev/sda /dev/sdb logfile
fdisk /dev/sdb
e2fsck -v -f -p /dev/sdb1
e2fsck -v -f -p /dev/sdb2
Die Befehle im Einzelnen
Schritt | Befehl | Funktion | ||||
---|---|---|---|---|---|---|
1 | ddrescue -f -n /dev/sda /dev/sdb /media/myusb/rescue.log
|
Der erste Durchlauf von ddrescue, bei dem nur jene Daten kopiert werden, die ddrescue problemlos lesen kann.
| ||||
2 | ddrescue -d -f -r3 /dev/sda /dev/sdb /media/myusb/rescue.log
|
Zweiter Durchlauf von ddrescue, bei dem es jeden nicht problemlos zu lesenden Sektor bis zu dreimal (Parameter „-r3 “) zu lesen versucht. Die Ausgabe des ersten Durchlaufs wird durch diesen zweiten Durchlauf ergänzt, das heißt ddrescue versucht bei diesem zweiten Durchlauf die Lücken in der Ausgabe seines ersten Durchlaufs zu füllen.
| ||||
3 | fdisk /dev/sdb
|
Falls die Partitionstabelle beschädigt ist, muss man in diesem Schritt versuchen, mit fdisk die Partitionstabelle zu restaurieren. | ||||
4 | e2fsck -v -f -p /dev/sdb1
|
Ermittelt und verbessert eventuelle Fehler im Dateisystem der von ddrescue geschriebenen Partition sdb1.
| ||||
5 | e2fsck -v -f -p /dev/sdb2
|
Ermittelt und verbessert eventuelle Fehler im Dateisystem der von ddrescue geschriebenen Partition sdb2. |
Verbreitung
Ddrescue ist vorinstallierter Bestandteil verschiedener GNU/Linux-Distributionen und liegt ebenso für FreeBSD vor.[11]
Live-Systeme, die standardmäßig Ddrescue mitbringen:
Siehe auch
Einzelnachweise
- ↑ a b gddrescue. In: „Ubuntuusers.de“. 28. Dezember 2013, abgerufen am 28. Dezember 2013: „Achtung, Verwechslungsgefahr: Neben dem Paket gddrescue, welches das Programm ddrescue enthält, gibt es noch das Paket ddrescue mit dem Programm dd_rescue.“
- ↑ GNU ddrescue Manual. The GNU project, abgerufen am 6. September 2013.
- ↑ a b Interview With GNU DDRescue's Antonio Diaz Diaz. In: „Blue-GNU – News for Gnus“. 15. August 2007, archiviert vom ; abgerufen am 28. Dezember 2013 (englisch).
- ↑ Disk drive recovery: ddrescue, dd_rescue, dd_rhelp. John Gilmore, abgerufen am 6. September 2013.
- ↑ Damaged Hard Disk. www.cgsecurity.org, abgerufen am 6. September 2013.
- ↑ Best Data Recovery Tools - Top 10 List. Geekyprojects, abgerufen am 6. September 2013.
- ↑ 12 essential system recovery tools. PC Plus Issue 303 22nd Jan 2011, abgerufen am 6. September 2013.
- ↑ gnu ddrescue to the rescue! Jelsoft Enterprises Ltd., abgerufen am 6. September 2013.
- ↑ Ddrescue - Data recovery tool. The GNU project, abgerufen am 6. September 2013.
- ↑ GNU ddrescue Manual: “7 A small tutorial with examples”
- ↑ J. Harris: ddrescue 1.17. Port Details. In: „FreshPorts.org – New ports and applications [for FreeBSD]“. 16. August 2007, abgerufen am 12. Januar 2014.
- ↑ Package lists for grml32-small 2013.09[-rc1]. In: „Grml.org“. 17. Oktober 2013, abgerufen am 13. Januar 2014.
- ↑ Komplette Software-Liste (CD, ca. 1000 Programme). In: „Knopper.net“. 26. Juni 2013, abgerufen am 13. Januar 2014.
- ↑ Programs Included in Parted Magic 2014_01_04 – Parted Magic LLC. In: „PartedMagic.com“. 10. Januar 2014, abgerufen am 13. Januar 2014.
- ↑ Detailed-packages-list [SystemRescueCd-3.8.1]. In: „Sysresccd.org“. 28. Oktober 2013, abgerufen am 13. Januar 2014.
Weblinks
- GNU ddrescue. (englisch)
- „GNU ddrescue Manual“ auf gnu.org / auf manpagez.com (englisch)
- ddrescue auf debian.org. (Mit deutschen Seiten)