Alte Datenträger mit ddrescue als Images archivieren
Aktuell bin ich grade dabei, alte Fotos zusammenzusuchen und diese in meinen zentralen Foto-Ordner zu legen. Gestern bin ich dabei auf meine alten CD-Aufbewahrungsboxen gestoßen, wo noch eine Sicherung eines ehemaligen Rechners auf 18 Einzel-CDs rumliegt.
Da ich heutzutage nun wirklich keine Speicherplatz-Probleme mehr habe, wollte ich diese CDs in Form von Images auf meine NAS bringen. Das hat zugleich den Vorteil, dass wenn die CDs mal altersschwach werden, ich immer noch eine Sicherung von ihnen habe.
In diesem Artikel zeige ich euch, wie ihr das Tool ddrescue
nutzen könnt,
um optische Medien (CDs oder DVDs) in ein Image umzuwandeln.
Installation
Normalerweise ist das Paket nicht installiert. Es kann einfach mit
sudo apt install gddrescue
installiert werden. Je nach Distribution heißt das Paket entweder gddrescue
oder nur ddrescue
.
Image erzeugen
Um eine CD nun zu einem Image umzuwandeln, legen wir die CD zuerst in das optische Laufwerk ein.
Für den nächsten Schritt müsst ihr wissen, welche Gerätedatei eure Betriebssystem für das
CD-Laufwerk zugewiesen hat, z. B. /dev/sr0
. Meist ist ein symbolischer Link /dev/cdrom
definiert, den man verwenden kann.
Wir rufen ddrescue
nun mit folgender Befehlszeile auf:
ddrescue -b2048 /dev/cdrom safecopy-cd2.img /tmp/ddrescue.map
Mit -b2048
stellen wir die Blockgröße für CDs ein (siehe
Beschreibung des Parameters im Manual).
Die nächsten Parameter geben die Quelle an, also unser CD-Laufwerk, und das Ziel, in diesem Fall
eine Datei safecopy-cd2.img
, in der am Ende das CD-Image steht.
Der letzte Parameter ist wichtig. Er bestimmt die Map-Datei, die ddrescue
für diese
CD benutzt. Hier drin speichert ddrescue
seinen Fortschritt, welche Teile der CD bereits kopiert
sind und wenn es Probleme gibt, wo auf der CD Lese-Probleme aufgetreten sind.
Hat unsere CD keine Probleme, so können (und müssen!) wir diese Datei am Ende wieder weglöschen. Sollte es aber zu Problemen während des Lesens kommen, so wird diese Datei wichtig.
Wichtig: Wenn ihr auf diese Weise mehrere Medien in Images umwandelt, denkt daran,
die Map-Datei zu löschen, nachdem ein Medium erfolgreich abgeschlossen ist. Vergesst ihr das
und verwendet dieselbe Map-Datei für ein weiteres Medium, so wird ddrescue
nichts oder nicht
alles kopieren, weil er davon ausgeht, dass bereits alles erledigt ist.
Am Ende sieht die Ausgabe dann wie folgt aus:
GNU ddrescue 1.22
ipos: 669843 kB, non-trimmed: 0 B, current rate: 2789 kB/s
opos: 669843 kB, non-scraped: 0 B, average rate: 2647 kB/s
non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s
rescued: 669880 kB, bad areas: 0, run time: 4m 12s
pct rescued: 100.00%, read errors: 0, remaining time: n/a
time since last successful read: n/a
Finished
Image einhängen
Die angelegten Images kann man nun mit dem mount
-Befehl ins Dateisystem einhängen:
sudo mount -o ro safecopy-cd2.img /mnt/safecopy-cd2
Hierfür benötige ich ein Verzeichnis, in das ich mounten kann und Root-Rechte. Das ist nicht bequem!
Für einen bequemen Weg habe ich eine Weile suchen müssen…
Ich verwende als Datei-Manager Dolphin. Der logische Ansatz war, bei den Einstellungen unter "Dienste" zu suchen, ob es einen Dienst gibt, der CD-Images einfach per Klick einbinden kann. Ja, gibt es, sogar zwei. Allerdings funktionieren beide Lösungen nicht.
"Mount ISO image - here of elsewhere" tut einfach gar nichts. Und der "ISO Mounter-Unmounter" warnt bereits in seiner Beschreibung im ersten Satz in Großbuchstaben
** DO NOT INSTALL with Dolphin Add-On Installer
und gibt eine komplizierte Anleitung. Im Internet findet man ergänzende Anweisungen, um die Sache zum Laufen zu bringen.
Ich habe das gar nicht erst ausprobiert. 😒
Stattdessen habe ich folgende Lösung gefunden, die wirklich ganz einfach ist:
Installiert man das Paket gnome-disk-utility
, wird in Dolphin automatisch ein Punkt
"Disk Image Mounter" hinzufügt, mit dem man das Image mit einem Klick einbinden kann.
Warum ddrescue statt nur dd?
Zum Schluss gehe ich noch kurz auf die Frage ein, wieso die Images nicht einfach mit dd
erzeugen,
das in jeder Linux-Distribution schon enthalten ist. Warum ddrescue
?
ddrescue
ist eigentlich ein Datenwiederherstellungs-Tool, dass mit dd
nichts zu tun hat,
außer, dass beide dieselbe Aufgabe "kopiere Daten von A nach B" erledigen. Alte Medien haben
vielleicht Lese-Probleme, drum ist ddrescue
die bessere Lösung.
Während dd
sequentiell einfach stur von vorne nach hinten Daten kopiert, passt sich ddrescue
an Probleme an, wenn das Medium beschädigt ist und sich bestimmte Stellen nicht auslesen lassen.
ddrescue
verwendet spezielle Algorithmen, um möglichst schnell möglichst viele Daten zu kopieren,
um das kaputte Medium nicht noch weiter zu strapazieren.
In dem mehr-phasigen Ablauf macht sich ddrescue
erst am Ende an die schwierigen Stellen und
versucht mehrfach, die kaputten Blöcke auszulesen und so möglichst viel zu retten.
Deswegen hat ddrescue
auch eine hübsche Fortschrittsanzeige, die uns informiert,
an welcher Stelle der Kopiervorgang ist und wie lange es noch dauert. Ein weiterer Vorteil
gegenüber dem einfachen dd
.
Eingangs hatte ich geschrieben, dass ich 18 CDs zu archivieren hatte. Von diesen 18 CDs hatten
2 CDs tatsächlich Lesefehler! Während dd
mir hier keine Rückmeldung gegeben hätte und ich mich
nur gewundert hätte, dass der Befehl niemals terminiert, erhalte ich mit ddrescue
folgende
Ausgabe:
ipos: 608585 kB, non-trimmed: 0 B, current rate: 0 B/s
opos: 608585 kB, non-scraped: 27357 kB, average rate: 56 B/s
non-tried: 0 B, bad-sector: 826368 B, error rate: 85 B/s
rescued: 643375 kB, bad areas: 931, run time: 3h 14m 37s
pct rescued: 95.80%, read errors: 1780, remaining time: 108d 17h
time since last successful read: 1m 16s
Retrying bad sectors... Retry 3 (forwards)
Während schon 95,8% der CD erfolgreich gelesen und in die Image-Datei geschrieben worden sind,
kämpft ddrescue
an den restlichen Stellen, sie häppchenweise vielleicht doch noch auszulesen.
Man sieht an den Geschwindigkeitsangaben schon, dass dies mehrere (viele, zu viele) Tage dauern
kann.
Die obige Ausgabe ist bereits von einem weiteren Aufruf von ddrescue
, wo ich mit entsprechenden
Befehlszeilen-Parametern angewiesen habe, die schlechten Blöcke mehrfach erneut versuchen,
einzulesen.
Weitere Infos zur Datenrettung mittels ddrescue
werde ich in einem weiteren Artikel
zusammenstellen.
Wie handhabt ihr eure alten CDs und DVDs?
Hinterlasst gerne eine Kommentar.
Kommentare zu diesem Artikel
Schreib einen Kommentar zum Artikel
Vielen Dank für deinen Kommentar! :-)
Da alle Kommentare von Hand bearbeitet werden,
gedulde dich bitte, bis der Kommentar freigeschaltet wird.
Formular nicht richtig ausgefüllt.
Oops... da ist was schiefgelaufen :-(
Dein Kommentar konnte nicht gespeichert werden.
Bitte probier es später nochmal.