Eu pensei que deveria voltar e responder a mim mesmo, agora que sou experiente neste assunto. Duas das idéias que pensei em minha pergunta original, na verdade, funcionam!
Issue some low-level ATA command to disable CRC / force drive into audio CD mode?
Isso é realmente possível em algumas unidades (1 das 2 unidades que testei suportam isso). Você precisa da capacidade de enviar pacotes genéricos para a unidade. Isso pode ser feito em (provavelmente) qualquer distribuição do Linux usando a chamada ioctl CDROM_SEND_PACKET. Primeiro, você precisa emitir um comando MODE_SENSE_10 para a unidade com o código de página 1 (recuperação de erro de leitura e gravação). Usando o valor de controle de página 0 (valores atuais), você poderá ver os comportamentos do drive para setores defeituosos, e com o valor de controle de página 1 (valores alteráveis), veja quais podem ser alterados. Se a sua unidade suportar a alteração da configuração TB (bloco de transferência) dessa página, você deverá definir TB como 1 e enviar as configurações modificadas para a unidade usando o comando MODE_SELECT_10. Et voila - você agora recupera o setor da unidade mesmo se houver erros EDC / ECC / CIRC! A melhor parte é que o drive realiza a separação do setor e qualquer correção de erros que possa, antes de enviar o setor para você. (Não testado: também há uma configuração de DCR que provavelmente desabilita totalmente as tentativas de correção de erros.)
Se você achar isto interessante, pegue um linux livecd e um Mt. Especificação Fuji! As informações acima podem ser encontradas na página 752 do Monte. Fuji spec v.9 revisão 1.00.
Bônus: agora que você pode enviar pacotes genéricos para sua unidade, você deve usar o comando READ CD (0xBE) para obter os setores brutos. Você pode examinar todos os cabeçalhos, dados EDC / ECC e até dados de subcanais, se estiver nesse tipo de coisa. Quando a unidade lhe dá um setor corrupto, você pode usar os dados EDC / ECC para examinar o quão corrupto é o seu setor e, quando você relê, decide qual das duas tentativas manter.
Insert audio CD then swap to the needed data CD without opening tray?
Acredite ou não, isso realmente funciona! (pelo menos em algum drive de cdrom muito antigo que eu usei para testar). Você pode literalmente fazer com que um CD player reproduza seus dados, registre-os e, depois de corrigir qualquer desvio de setor (procurando os cabeçalhos de sincronização dos setores de dados) e descodificando os dados (procure na tabela de consulta de codificação ECMA 130), obtenha seus dados brutos, sem nenhum tipo de correção de erros. Tenho certeza que meu primeiro método acima obsoleta esse método, mas o tempo dirá - ainda estou apenas começando com a recuperação de dados real.
Atualmente estou desenvolvendo alguns softwares para automatizar as coisas que acabei de escrever, e para perfeitamente (ou seja, qualquer cabeçalho de controle e dados de sub-canal) arquivando CDs antigos e corrompidos. Se alguém estiver interessado neste trabalho, por favor me avise. Além disso, por favor me avise, se esse tipo de software já existe - AFAIK isso não acontece.