Боюсь, вы упомянули неудачный ответ в своем комментарии: ddrescue
не знает, как обращаться с отдельным сеансом. Я подозреваю, что это преднамеренный выбор интерфейса CD-ROM ядра Linux: он показывает только тот сеанс, который он считает уместным. Чтобы обойти это, я полагаю, что cdrdao
делает что-то особенное, что позволяет инструменту получать доступ к отдельным сеансам (например, с флагом --session
).
В моих тестах следующее выдает один большой двоичный файл (.bin
) и файл оглавления (.toc
), описывающий диск:
cdrdao read-cd --read-raw --datafile data.bin data.toc
Он ничего не повторяет и не проверяет, так что это не совсем спасение. Но он может быть в состоянии спасти компакт-диски смешанного режима и обратиться к отдельным сессиям. Если вышеупомянутое не находит все сеансы (вы можете проверить, сколько сеансов присутствует с помощью cdrdao disk-info
), вы можете извлечь отдельные сеансы с помощью:
for session in 1 2 3 [...] ; do
cdrdao read-cd --read-raw --session $session --datafile data-$session.bin data-$session.toc
done
Файлы .bin
необходимо преобразовать, чтобы они отображались как файлы ISO
, используя bchunk:
bchunk data.bin data.toc data
Если все идет хорошо, это должно создать data.iso
для соответствующего раздела диска. Он также может создать файл data.ugh
если он не преобразуется, и я, к сожалению, не знаю, как справиться с этим делом.