Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
GNU ddrescue
ist ein Programm zur Datenrettung von defekten Datenträgern. Es greift direkt auf die übergebenen Daten zu und rettet im ersten Durchlauf die Daten, die sich fehlerlos auslesen lassen. Zugriffsfehler merkt sich das Programm, um diese in weiteren Durchläufen auszulesen. Je nachdem kann die Datenrettung einige Zeit dauern. Dabei füllt das Programm Daten mit Nullen auf, die nicht mehr gelesen werden können. gddrescue läuft automatisch ab.
Achtung, Verwechslungsgefahr: Neben dem Paket gddrescue, welches das Programm ddrescue
enthält, gibt es noch das Paket ddrescue mit dem Programm dd_rescue
. Letzteres hat mit dem hier vorgestellten Programm lediglich gemeinsam, dass es die Funktionalität von dd erweitert und wird in den Artikeln Datenrettung, Festplatten Problembehebung sowie Rettungsanker - Mit dd_rescue defekte Partition wiederherstellen behandelt.
Eine ausführliche Besprechung beider Programme findet sich hier: Images erstellen mit ddrescue .
Folgendes Paket muss installiert[1] werden:
gddrescue (universe )
mit apturl
Paketliste zum Kopieren:
sudo apt-get install gddrescue
sudo aptitude install gddrescue
Die Datenrettung wird über das Terminal[2] gestartet - je nach mitgegebenen Parametern können einzelne Dateien oder ganze Medien ausgelesen werden. Mit Strg + C kann der Vorgang jederzeit unterbrochen und bei Verwendung eines Logfiles zu einem späteren Zeitpunkt an der Stelle fortgeführt werden.
Der Aufruf sieht wie folgt aus:
ddrescue OPTIONEN QUELLE ZIEL LOGDATEI
Beim ersten Anzeichen eines drohenden Datenverlustes sollte eine Kopie angelegt werden, um den möglichen Datenverlust gering zu halten.
Optionen | |
Parameter | Beschreibung |
-b bytes | Sektorengröße in Bytes - 512 ist Standard (3.5" Disketten + Festplatten: 512 / 3.5" Disketten: 1024 / 5.25" Disketten und CD-ROMs: 2048 ). |
-r, --max-retries=>n< | Maximale Versuche, um die Daten zu retten - bei -1 wird das Programm so lange ausgeführt, bis alle Fehler behoben wurden. |
-v | Mehr Informationen anzeigen lassen |
--help | Anzeige weiterer möglicher Parameter |
logfile | Anlegen eines Logfiles. Dies hat den Vorteil, dass man die Sicherung jederzeit mit Strg + C abbrechen und später an dieser Stelle fortführen kann. |
Zusätzliche Informationen sind in den Manpages zu finden.
Mit dem Logfile können Daten sehr effizient wieder hergestellt werden. Auch das Zusammenführen von Backups (Datei, CD-ROM, Festplatte ...) ist so möglich. So kann das Programm aus mehreren Kopien eines Backups ggf. ein funktionierendes und fehlerfreies Backup erstellen.
Das Logfile kann mit einem Editor eingesehen und bearbeitet werden und ist in zwei Sektionen unterteilt: die Statuszeile und eine Liste der Datenblöcke. Eine Beispieldatei kann so aussehen:
# Rescue Logfile. Created by GNU ddrescue version 1.2 # pos size status 0x00000000 0x001F4000 + 0x001F4000 0x002FC000 / 0x004F0000 0x022C0000 + ...
Neben Informationen über die Datenträgerposition und die Größe erfährt man etwas über den Status. Jede Zeile in der Liste beschreibt einen Datenblock. Kommentarzeilen sind mit der Raute hinterlegt.
Status | |
Meldung | Beschreibung |
? | kopieren nicht überprüfter Blöcke |
* | Zuschneiden der Blöcke |
/ | Blöcke trennen |
- | Defekte Sektoren erneut überprüfen |
F | Füllen der angegebenen Blöcke |
G | Erstellung des Logfile |
+ | Beendet |
Eine Vielzahl von Anwendungsbeispielen findet man auf mangpagez.com hinterlegt.
Um eine einzelne Datei zu retten, gibt man z.B. Folgendes an:
ddrescue -v ~/Quelldatei.tar.bz2 ~/Zieldatei.tar.bz2
Um einen Datenträger zu retten, muss man das Laufwerk ansprechen und das Image wird im angegebenen Verzeichnis gesichert:
ddrescue -b2048 /dev/cdrom /home/BENUTZER/Datensicherung.iso logfile
Ausgabe:
Press Ctrl-C to interrupt rescued: 28459 kB, errsize: 3129 kB, current rate: 655 kB/s ipos: 31588 kB, errors: 48, average rate: 78762 B/s opos: 31588 kB Copying Data...
Im obigen Beispiel wurde ein Datenträger ausgelesen. Die ausgegebenen Werte bedeuten Folgendes:
ddrescue | |
Ausgabe | Beschreibung |
rescued: | bisher gerettete Datenmenge |
ipos: | derzeitige Leseposition |
opos: | Schreibposition im Durchgang |
errsize: | fehlerhafte Datenmenge |
errors: | Anzahl gefundener Fehler |
current rate: | aktuelle Lesegeschwindigkeit |
average rate: | durchschnittliche Lesegeschwindigkeit |
Copying data... | Im ersten Durchgang wird angezeigt, dass Daten kopiert werden) |
Splitting error areas... | In den Folgedurchgängen werden fehlerbehaftete Bereiche unterteilt |
Es ist ebenfalls möglich, Datenträger (-Partitionen) zu kopieren, die nicht im System eingebunden (eingehängt) sind. Es wird eine 1:1 Kopie erstellt, kein Image. Hierzu werden als Quelle und Ziel von ddrescue die entsprechenden Geräte bzw. Partitionen angegeben. Es werden Root-Rechte [3] benötigt.
sudo ddrescue --force /dev/sdb1 /dev/sdc3
Der Befehl kopiert die Partition sdb1
auf die Partition sdc3
. Man kann wieder Quelle und Ziel an die eigenen Bedürfnisse anpassen, so ist es z.B. beim Austausch von Festplatten möglich, als Quelle /dev/sdb
und als Ziel /dev/sdc
anzugeben.
Bei Kopien mit einem Datenträger oder einer Partition als Ziel werden alle auf dem Ziel befindlichen Daten gelöscht. Dies wird von gddrescue standardmäßig verweigert. Wenn man sich sicher ist, das man alle(!) Daten auf dem Zielgerät bzw. der Zielpartition nicht mehr benötigt, kann man die Option --force
(bzw. kurz -f
) verwenden um auf das Gerät zu schreiben.