
Ich habe eine Multisession-CD, deren Inhalt ich auf eine Festplatte kopieren möchte. Die CD ist etwa 20 Jahre alt und weist an mehreren Stellen Leseprobleme auf, daher ist sie ein potenzieller Kandidat für ddrescue
.
Das Problem ist, dass ddrescue
es keine anderen Sitzungen als die erste auf der CD zu erkennen scheint, genau wie dd
es tut. In der Dokumentation werden Multisession-CDs nicht einmal erwähnt und im Internet scheint es nicht viele Informationen darüber zu geben, wie man das macht.
Die Frage ist also: Wie kann ich eine Multisession-CD mit ddrescue
oder einem ähnlichen Tool retten?
Antwort1
Ich fürchte, Sie haben die unglückliche Antwort in Ihrem Kommentar erwähnt: ddrescue
weiß nicht, wie man einzelne Sitzungen anspricht. Ich vermute, dass dies eine bewusste Entscheidung der CD-ROM-Schnittstelle des Linux-Kernels ist: Sie zeigt nur die Sitzungen an, die sie für relevant hält. Um dies zu umgehen, cdrdao
tut man meiner Meinung nach etwas Besonderes, das es dem Tool ermöglicht, auf einzelne Sitzungen zuzugreifen (z. B. mit dem --session
Flag ).
Bei meinen Tests ergibt das Folgende eine große Binärdatei ( .bin
) und eine Inhaltsverzeichnisdatei ( .toc
), die die Festplatte beschreibt:
cdrdao read-cd --read-raw --datafile data.bin data.toc
Es führt keine erneuten Versuche durch und überprüft auch nichts, ist also keine echte Rettung. Aber es kann möglicherweise Mixed-Mode-CD-ROMs retten und einzelne Sitzungen ansprechen. Wenn das obige Programm nicht alle Sitzungen findet (Sie können mit überprüfen, wie viele Sitzungen vorhanden sind cdrdao disk-info
), können Sie einzelne Sitzungen extrahieren mit:
for session in 1 2 3 [...] ; do
cdrdao read-cd --read-raw --session $session --datafile data-$session.bin data-$session.toc
done
Die .bin
Dateien müssen konvertiert werden ISO
, um als Dateien angezeigt zu werden. Dazu verwenden Siebchunk:
bchunk data.bin data.toc data
Wenn alles gut geht, sollte eine Datei data.iso
für den entsprechenden Abschnitt der Festplatte erstellt werden. data.ugh
Wenn die Konvertierung fehlschlägt, kann auch eine Datei erstellt werden. Leider weiß ich nicht, wie ich in diesem Fall vorgehen soll.