
У меня есть многосессионный CD, содержимое которого я хочу скопировать на жесткий диск. CD примерно 20-летней давности, и на нем есть несколько частей, представляющих проблемы с чтением, поэтому он является потенциальным кандидатом для ddrescue
.
Проблема в том, что он, ddrescue
похоже, не распознает никаких сессий, кроме первой на CD, как и dd
делает. В его документации даже не упоминаются многосессионные CD, и в Интернете, похоже, не так много информации о том, как это сделать.
Итак, вопрос: как спасти многосессионный CD с помощью ddrescue
или любого другого подобного инструмента?
решение1
Боюсь, вы упомянули неудачный ответ в своем комментарии: ddrescue
не знает, как обращаться к отдельным сессиям. Я подозреваю, что это преднамеренный выбор интерфейса CD-ROM ядра Linux: он показывает только те сессии, которые считает релевантными. Чтобы обойти это, я полагаю, cdrdao
делается что-то специальное, что позволяет инструменту получать доступ к отдельным сессиям (например, с помощью --session
флага ).
В моих тестах следующий код выдает один большой двоичный файл ( .bin
) и файл таблицы содержания ( .toc
), описывающий диск:
cdrdao read-cd --read-raw --datafile data.bin data.toc
Он ничего не повторяет и не проверяет, так что это не совсем спасение. Но он может спасти смешанные CD-ROM и обратиться к отдельным сессиям. Если вышеприведенный способ не находит все сессии (вы можете проверить, сколько сессий присутствует, с помощью 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 data.bin data.toc data
Если все пойдет хорошо, это должно создать data.iso
для соответствующего раздела диска. Это также может создать data.ugh
файл, если не удастся преобразовать, и я, к сожалению, не знаю, как справиться с этим случаем.