Verifique seu hardware
Eu não tenho uma boa solução, mas normalmente, se os dados são lidos de maneira diferente de um CD-ROM, soa mais a um problema de hardware do que a um problema no CD defeituoso, já que os CDs envolvem ECC, o que significa que o setor pode ser lido ou não e, se puder ser lido, mostrará dados estáveis.
Talvez também use a ddrescue
option -d
para acessar a origem, porque alguns sistemas operacionais podem distribuir dados aleatórios depois que um erro de leitura ocorreu na readahead (que é feito em segundo plano).
Tente usar um computador diferente que não compartilhe qualquer hardware do outro computador e veja se você ainda tem esse resultado intrigante.
Mas observe: É possível executar duas execuções de ddrescue
para criar duas imagens diferentes, porque se houver erros de leitura, talvez partes diferentes da origem tenham sido recuperadas. (Você escreve, não há erros. Talvez as coisas sejam diferentes com a opção -d
.)
Ferramenta para comparar ddrescue
images
Se você pode excluir hardware defeituoso e quiser comparar a imagem com a fonte novamente sem puxar outra imagem, talvez você possa tentar minha ferramenta ddrescue-verify
para diagnosticar as diferenças.
ddrescue-verify
is source only (and probably Linux only), so you need to know how to use a development/compile system
Hoje, ddrescue-verify
não foi projetado para ser uma ferramenta de diagnóstico fácil de usar. Ele foi criado para ser capaz de verificar rapidamente se a imagem foi tirada corretamente em um link de rede lento, portanto, em uma situação em que você definitivamente não pode esperar que a imagem completa seja transferida pela linha lenta mais de uma vez.
Se a documentação existente para ddrescue
e ddrescue-verify
não for suficiente para você, receio não poder ajudá-lo (sem tempo, desculpe). A única coisa que posso oferecer é um trecho do Wiki que se adapta um pouco às suas necessidades:
O comando original para criar a imagem a partir da fonte era algo como seguir, executado no diretório de trabalho atual:
ddrescue -d /dev/source image.img image.log
Agora crie os dados de verificação:
ddrescue-verify image.img image.log > image.verify
Agora, execute o processo de verificação / comparação:
ddrescue-verify -udis0 /dev/source image.verify > image.diff
Isso é rápido, pois ddrescue-verify
tries ignora as partes source
, que estão marcadas como ilegíveis no image.log
(daí a opção -d
).
A saída mostrará as diferenças.
Você também pode pesquisar image.diff
para ver as diferenças. Este arquivo tem o mesmo formato que o arquivo de log ddrescue
com as diferenças marcadas como "não lidas", então você pode analisá-lo com ddrescuelog
.
possivelmente: Puxe as diferenças para a imagem
Para inserir as diferenças, você também pode fazer o seguinte:
# The next 2 commands take a snapshot of your original image
# Probably use lvm or ZFS snapshot to not duplicate all data:
cp image.img image.orig.img
cp image.log image.orig.log
# Now pull in the differences
cp -f image.diff image.log
ddrescue /dev/source image.img image.log
Agora você atualizou as image.img
e image.log
para as alterações encontradas. Isso é rápido, já que isso apenas tenta ler apenas as partes alteradas (a diferença é detectada em cada padrão de 1MB, portanto, copiará um pouco mais).
Observação: essa última etapa foi criada para que você possa repetir todo esse processo quantas vezes precisar.
Esta não é uma solução completa
Sinto muito não poder apresentá-lo com uma solução completa. Mas a recuperação de dados por adivinhação em uma situação pouco clara não é nada, o que pode ser feito imediatamente.
No entanto, usando snapshots (eu recomendo o ZFS ou o BTRFS, já que eles são muito mais rápidos que o LVM) em combinação com uma maneira de comparar e puxar as diferenças, você talvez possa descobrir o que está correto e o que não é.