Zerkratzte DVDs mit ddrescue retten

Das Kommandozeilen-Tool dd ist vielen bekannt. Mit dd kann man Rohdaten von einem Blockdevice (Laufwerk oder Datei) auf ein anderes Blockdevice schreiben. Das ist praktisch, wenn man mal schnell die Partitionstabelle der Festplatte sichern will (dd if=/dev/sda of=mbr.img bs=512 count=1) oder z.B. einen bootbaren USB-Stick aus einem Ubuntu-Image erstellen will (dd if=ubuntu.iso of=/dev/sdb bs=4M). Leider versagt dd bei nicht lesbaren Daten und bricht einfach ab. Es eignet sich also nicht, um ein ISO-Abbild einer CD oder DVD zu erstellen, falls diese verkratzt ist.

An dieser Stelle hilft ddrescue. Es gibt verwirrenderweise zwei Programme mit diesem Namen (das andere ist dd_rescue). Ich spreche hier über GNU ddrescue, welches in Debians im Paket gddrescue zu finden ist. Ddrescue erlaubt im Gegensatz zu dd bei kaputten Blöcken mehrere Leseversuche.

Im ersten Schritt wird erst mal alles, was ohne Probleme lesbar ist in eine ISO-Datei geschrieben. Probleme werden in einer Log-Datei mitgeschrieben.

ddrescue -b 2048 -n -v /dev/sr0 dvd.iso rescue.log

Die angegebene Blockgröße (2048) ist die Standard-Blockgröße bei DVDs. Das angegebene Device ist das DVD-Laufwerk und kann auch anders heissen. Bei eingelegter DVD kann man durch einfache Eingabe von mount nachschauen, wie es lokal heisst.

Bei angezeigten Fehlern, startet man einen zweiten Versuch, der sich auf die kaputten Blöcke konzentriert.

ddrescue -b 2048 -d -r 3 -v /dev/sr0 dvd.iso rescue.log

Der Parameter -d sorgt für Direktzugriff auf das Gerät (kein kernel caching) und -r 3 gibt die Anzahl der Leseversuche bei kaputten Blöcken an. Kommt es weiterhin zu Fehlern, kann man noch mal das folgende probieren:

ddrescue -b 2048 -d -R -r 3 -v /dev/sr0 dvd.iso rescue.log

Der Parameter -R kehrt die Leserichtung um, was bei meinen Versuchen häufig noch ein paar Sektoren mehr gebracht hat.

Verbleibende Lesefehler sind bei einer Video-DVD nicht wirklich schlimm, da DVDs in ihren Rohdaten schon ziemlich viel Fehlerkorrekturdaten enthalten (CDs im Übrigen auch). Im schlechtesten Fall hat man also kleine Bildartefakte an den problematischen Stellen.

Die resultierende ISO-Datei kann man einfach mit einem Brenn-Programm seiner Wahl auf eine neue DVD brennen, oder mit einem Videoplayer wie VLC direkt abspielen.

7 Gedanken zu „Zerkratzte DVDs mit ddrescue retten

  1. Bachsau

    Ich hatte erwartet, dass es irgendwann mit „pct rescued: 100%“ endet. Leider behauptet ddrescue bereits bei 98.40% unbeirrbar fertig „finished“ zu sein.

    Antworten
    1. dakira Beitragsautor

      Ich bin mir relativ sicher, dass das trotzdem ausreicht. Kann mir vorstellen, dass ddrescue da für die Berechnungen der Prozente am Anfang falsche Werte angenommen hat und du daher nicht bei 100 landest. Funktioniert denn das Ergebnis?

      Antworten
      1. Bachsau

        Hat sich geklärt. Ich hatte es zunächst Rückwärts aber ohne -r versucht und mich dann gewundert, warum es sofort fertig ist. Aber scheinbar ist es so, dass auch fehlerhafte Sektoren, die schon versucht wurden, im Mapfile markiert werden und ddrescue diese auch bei einem erneuten Aufruf nicht mehr zu lesen versucht, sofern -r nicht angegeben wird. Nach einigen Retries konnte ich nun fast die komplette CD wiederherstellen.

        Antworten
        1. dakira Beitragsautor

          Cool, freut mich. Bei Audio-CDs sind tatsächlich sogar noch ne ganze Ecke mehr Fehlerkorrekturdaten mit dabei, so dass man beim Retten i.d.R. selbst bei total verkratzten CDs gute Resultate hat.

          Antworten
  2. Daniel

    „Bei angezeigten Fehlern“ => Wie sehen die denn aus? Kann ich nicht auch den exit code von ddrescue abfragen? Ich will die drei Schritte automatisieren.

    Antworten
    1. dakira Beitragsautor

      Kann ich dir leider nicht mehr sagen. Das letzte mal, dass ich eine DVD in der Hand hatte ist ungefähr so lange her, wie dieser Artikel. ;) Im Zweifel würde ich es ein mal testen, du siehst dann ja was kommt. Ansonsten ist ddrescue ja gerade darauf ausgelegt bei Fehlern nicht mit einem errorcode abzubrechen, sondern weiterzulesen.

      Antworten
    2. dakira Beitragsautor

      Nachdem ich mir meinen Artikel noch mal durchgelesen habe: Es spricht nichts dagegen die drei oben genannten Befehle hintereinander auszuführen.

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.