Como resgatar um CD multisessão?

Como resgatar um CD multisessão?

Tenho um CD multisessão cujo conteúdo desejo copiar para um disco rígido. O CD tem cerca de 20 anos e possui diversas partes apresentando problemas de leitura, por isso é um potencial candidato para ddrescue.

O problema é que ddrescueparece não reconhecer nenhuma sessão além da primeira do CD, assim como ddacontece. Sua documentação nem menciona CDs multisessão e parece não haver muita informação disponível na internet sobre como fazê-lo.

Então a questão é: como resgatar um CD multi-sessão usando ddrescuealguma ferramenta similar?

Responder1

Receio que você tenha mencionado a infeliz resposta em seu comentário: ddrescuenão sabe como abordar uma sessão individual. Suspeito que esta seja uma escolha deliberada da interface do CD-ROM do kernel Linux: ela mostra apenas qualquer sessão que considere relevante. Para contornar isso, acredito que cdrdaofaça algo especial que possibilita que a ferramenta acesse sessões individuais (por exemplo, com o --sessionsinalizador).

Em meus testes, o seguinte produz um grande arquivo binário ( .bin) e um arquivo de índice ( .toc) descrevendo o disco:

cdrdao read-cd --read-raw --datafile data.bin data.toc

Ele não tenta nem verifica nada, então não é exatamente um resgate. Mas pode ser capaz de resgatar CD-ROMs de modo misto e abordar sessões individuais. Se o procedimento acima não encontrar todas as sessões (você pode verificar quantas sessões estão presentes com cdrdao disk-info), você poderá extrair sessões individuais com:

for session in 1 2 3 [...] ; do
    cdrdao read-cd --read-raw --session $session --datafile data-$session.bin data-$session.toc
done

Os .binarquivos precisam ser convertidos para aparecerem como ISOarquivos, usandopedaço:

bchunk data.bin data.toc data

Se tudo correr bem, isso deverá criar um arquivo data.isopara a seção relevante do disco. Ele também pode criar um data.ugharquivo se a conversão falhar e, infelizmente, não sei como lidar com esse caso.

informação relacionada