%2C%20como%20pular%20blocos%20defeituosos%20no%20meio%3F.png)
Eu tenho um HDD com blocos defeituosos irrecuperáveis. O HDD faz parte do array Raid-0. Se eu acessar blocos defeituosos de qualquer maneira, o HDD trava. Vamos supor que a capacidade total do HDD seja de 500.000.000.000 bytes, os blocos defeituosos estão na faixa de 100.000.000.000 a 100.000.004.096 bytes (8 LBAs). Como usarddouddrescueposso clonar este HDD para outro HDD ou para um arquivo de imagem sem acessar blocos defeituosos? Preciso dos bytes 0 - 99.999.999.999, depois 4.096 bytes de zeros e, a seguir, dos bytes 100.000.004.097 - 500.000.000.000.
Obrigado!
Responder1
Eu fiz isso hoje, espero que funcione para você. Eu estava tendo problemas para duplicar (fazer backup de um disco) com cerca de 30 blocos defeituosos. A primeira coisa que fiz foi fazer backup dos arquivos usando o Filezilla normal para fazer backup de todos os dados válidos. Percebo que um arquivo grande não estava sendo copiado corretamente (parando no meio e reiniciando a transferência). Felizmente tenho um backup anterior do mesmo arquivo. Para duplicar o disco, tive que encontrar os blocos defeituosos no disco usando este procedimento:
Primeiro descubra o disco com problema identificando as informações do HD usandofdisk -l
2º se digamos que seu disco está/dev/sdbentão você precisa executar o comando badblocks -v /dev/sdbele listará todos os seus blocos defeituosos na unidade. Felizmente, haverá alguns. Se nenhum bloco defeituoso for encontrado, então seus blocos de unidade estão OK e precisam descobrir outra coisa. O tamanho do meu bloco é 512, então uso esse número padrão para executar o DD
Terceiro, cada bloco tem tamanho 512, então o que fiz foi definir bs = 512
Cada vez que executei o DD regularmente, como sempre faço, meus dados, após os erros, ficarão corrompidos. Então eu uso os parâmetros conforme explicado na páginahttps://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.htmlpesquise a parte "Para discos com falha".
dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync iflag=fullblock
Demorou um pouco. Cada bloco defeituoso encontrado soa como uma batida na unidade defeituosa. Ele copia bloco por bloco e, através de todos os meus blocos defeituosos, faz o mesmo barulho. A quantidade de vezes que fez barulho foi porque encontrou outro bloco defeituoso e informa sobre a mensagem de erro no display. O que'conv=noerror,sincronização'faz, é preencher leituras ruins com NULs, enquanto'iflag=bloco completo'atende leituras curtas, mas mantém sincronizados seus dados até o final. Nenhuma corrupção, apenas não copia os blocos defeituosos e os preenche com NULs vazios.
Depois que a cópia com DD foi feita, eu apenas substituí aquele arquivo ruim, revertendo o Filezilla de um backup anterior e tudo funcionou bem. Espero que isso seja útil para outras pessoas que tentam fazer backup de unidades defeituosas.
NOTA: Meus blocos ruins estavam bem próximos um do outro. Cerca de 4 blocos por vez juntos em grupos onde foram detectados erros. Se os seus blocos estiverem espalhados por todo o disco, vários arquivos poderão ser afetados. Felizmente, no meu caso, um grande arquivo de banco de dados de 4GB só foi afetado.
Responder2
OK, talvez isso possa ser feito com dd também, mas resolvi meu problema usando WinHex (selecionei dispositivo físico). Ele pode clonar qualquer parte do disco em imagens e concatená-las.