Quantas vezes nos deparamos com esses problemas... aquele CD que falha em determinada parte de uma cópia por erro de leitura. Até aí, se o problema são os arranhões, a solução mais viável seria polir levemente a parte de leitura do CD, até que eles desapareçam gradativamente e com produtos apropriados para esse fim.
Mas existem casos mais graves, como riscos que danificam a área da platina do CD, nesse caso, apenas polir não vai resolver o problema... o mesmo caso se aplica nas mídias de DVD.
Os disquetes, apesar de serem arcaicos, ainda são utilizados, principalmente onde não existem redes interligando os micros... e quando danificados fisicamente, é praticamente uma tarefa impossível recuperar os dados que ali estavam... Os maiores inimigos deles são os fungos que deterioram o material magnético que compõem a superfície do disco flexível.
Verificá-lo com scandisk seria a coisa mais certa a fazer, mas há casos em que ele inutilizaria o disquete completamente.
No Linux temos um utilitário que recupera esses dados, tanto em disquetes, como em CDs e unidades de disco rígidos. É o dd_rescue, que vem em algumas distribuições Linux, mas também pode ser obtido em http://www.garloff.de/kurt/linux/ddrescue gratuitamente.
Mas, o que esse pequeno utilitário faz? Simples, se o arquivo estiver danificado, ele fará uma verificação de erros e copiará os dados bloco a bloco. Se algum erro for encontrado, o dd_rescue irá ignorar o bloco danificado.
O processo é muito semelhante ao do programa Badcopy para Windows, mas o dd_rescue tem a vantagem de ser gratuito.
Agora, vamos tomar alguns exemplos:
Temos um disquete cujo um arquivo está com um erro e o scandisk não conseguiu reparar, por não conseguir ao menos ler os blocos danificados, para usar o dd_rescue é necessário fazê-lo pelo console:
dd_rescue arquivo_problemático arquivo_reparado
Mas, se quiser que o dd_rescue tente recuperar o tamanho original dele, use-o com a opção -A:
dd_rescue –A arquivo_problemático arquivo_reparado
Isso fará com que o dd_rescue preencha os blocos defeituosos com blocos vazios, a fim de preservar o tamanho original do arquivo.
Você pode também recuperar dados de uma partição inteira de um disco rígido, ou de mídias removíveis:
Ex: Quero copiar uma unidade de disco rígido inteira ignorando os blocos defeituosos.
# dd_rescue /dev/hda4 WindowsXP.img
Ou se preferir, pode usar com a opção -A que já vimos anteriormente:
# dd_rescue -A /dev/hda4 WindowsXP.img
Caso queira recuperar dados de CD/DVDs defeituosos, a sintaxe é esta:
dd_rescue /dev/cdrom nome_da_imagem.iso