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.