I'm afraid you have mentioned the unfortunate answer in your comment: ddrescue
does not know how to address individual session. I suspect this is a deliberate choice of the Linux kernel CD-ROM interface: it shows only whatever session it considers relevant. To bypass this, I believe cdrdao
does something special which makes it possible for the tool to access individual sessions (for example with the --session
) flag.
In my tests, the following yields one big binary file (.bin
) and a Table of Contents (.toc
) file describing the disk:
cdrdao read-cd --read-raw --datafile data.bin data.toc
It does not retry or check anything, so it's not quite a rescue. But it might be able to rescue mixed-mode CD-ROMs and address individual sessions. If the above does not find all sessions (you can check how many sessions are present with cdrdao disk-info
), you can extract individual sessions with:
for session in 1 2 3 [...] ; do
cdrdao read-cd --read-raw --session $session --datafile data-$session.bin data-$session.toc
done
The .bin
files need to be converted to show up as ISO
files, using bchunk:
bchunk data.bin data.toc data
If all goes well, this should create a data.iso
for the relevant section of the disk. It might also create a data.ugh
file if it fails to convert, and I do not unfortunately know how to handle that case.
cdrdao
to copy multiple sessions, but don't expect it to rescue hard-to-read data likeddrescue
does. That's why I posted this question.