quinta-feira, 13 de dezembro de 2012

Disco com defeito? Use Myrescue

Se você está tendo problemas ao tentar ler um disco, pode ser que o disco esteja com defeito (badblock). Discos rígidos, pendrives, cd, dvd e qualquer tipo de midia pode sofrer problemas de corrosão, falhas magnéticas, riscos, etc. Todas essas falhas podem ser testadas, e quando possível corrigidas, com o comando badblocks, como expliquei em um artigo há alguns dias.

Mas, e se mesmo após o badblocks e o fsck serem usados o disco continuar inacessível? Neste caso, tente usar o Myrescue.

O Myrescue lê todo o disco tentando várias vezes os setores com defeito e gera uma imagem do disco. Essa imagem pode ser montada via loopback.

Para exemplificar seu uso, eu estava com um cd do Ubuntu que não conseguia ler. Usei o Myrescue para tentar criar uma imagem deste cd.

# myrescue /dev/sr0 ubuntu.iso
block 000173028 (000000000-000179057)   ok 000173028   bad 000000000   src read failed: Input/output error
block 000173085 (000000000-000179057)   ok 000173084   bad 000000001   src read failed: Input/output error
block 000174281 (000000000-000179057)   ok 000174279   bad 000000002   src read failed: Input/output error
block 000174292 (000000000-000179057)   ok 000174289   bad 000000003   src read failed: Input/output error
block 000174303 (000000000-000179057)   ok 000174299   bad 000000004   src read failed: Input/output error
block 000174304 (000000000-000179057)   ok 000174299   bad 000000005   src read failed: Input/output error
block 000174305 (000000000-000179057)   ok 000174299   bad 000000006   src read failed: Input/output error
block 000174306 (000000000-000179057)   ok 000174299   bad 000000007   src read failed: Input/output error
block 000174307 (000000000-000179057)   ok 000174299   bad 000000008   src read failed: Input/output error
block 000174308 (000000000-000179057)   ok 000174299   bad 000000009   src read failed: Input/output error
block 000174309 (000000000-000179057)   ok 000174299   bad 000000010   src read failed: Input/output error
block 000174310 (000000000-000179057)   ok 000174299   bad 000000011   src read failed: Input/output error
...

A saída acima está resumida.

O Myrescue leu o cd e gerou um arquivo chamado ubuntun.iso. Esse arquivo eu pude montá-lo pelo comando mount.

# mount -o loop ubuntu.iso /media/cdrom
# ls /media/cdrom
autorun.inf  dists    isolinux  pics preseed    ubuntu
casper     install  md5sum.txt  pool README.diskdefines  wubi.exe
#

Isso não tornou o meu cd bootável, mas já foi possível ler alguns arquivos. Se esse cd contivesse arquivos realmente importantes eu conseguiria recuperá-los, pelo menos a maioria deles.

O uso do Myrescue não elimina outras opções de reparação profisisonais, mas já é uma grande ajuda. Tenha em mente também que você precisa ter espaço livre no disco suficiente para caber todo o drive/midia testada. Ou seja, para você recuperar um disco de 1Tb você precisará ter pelo menos 1Tb de espaço disponível.