dd não pode gravar os últimos 24 kB de um disco

2

Tenho um disco rígido antigo de 320 GB que estou me preparando para vender (ou doar). Para prepará-lo, estou usando dd para escrever uma passagem de dados aleatórios, depois uma passagem de zeros:

dd if=/dev/urandom of=/dev/sdb
dd if=/dev/zero of=/dev/sdb

Em ambos os casos, chega quase ao fim do disco e falha com:

dd: error writing '/dev/sdb': Input/output error

Usando od /dev/sdb para verificar a gravação zero, vejo:

0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
4520565200000 150636 113232 106346 032136 015617 116562 007414 032774
4520565200020 122317 125101 056551 105476 117454 153132 054340 177042
4520565200040 036343 143567 116241 045303 146340 016110 034246 150020
    ...snip...
4520565257720 100673 143151 002110 144654 065605 120456 070460 106051
4520565257740 032350 125132 022255 032441 074515 142667 117313 127115
4520565257760 035414 166734 072432 032526 061274 137236 117436 156032
4520565260000

... o que indica para mim que o zeramento foi bem-sucedido, mas o último ( 4520565260000 - 4520565200000 = 60000 octal ) 24 kB do disco ainda tem dados diferentes de zero (e provavelmente não aleatórios).

Este disco está conectado por meio de um adaptador externo USB para SATA. Eu tentei no Ubuntu e no Cygwin, e vi o mesmo resultado em ambos os casos.

Existe alguma opção que eu deveria passar para dd que ajudaria, ou isso é o disco apenas fisicamente ruim? Eu nunca tive um problema com ele, e ele nunca mostrou nenhum setor defeituoso quando usado para armazenar um sistema de arquivos NTFS.

    
por smitelli 05.04.2015 / 21:04

1 resposta

0

Ao usar dd, sempre usei o seguinte:

dd if=<source> conv=sync,noerror of=<destination>

Eu acho que você simplesmente precisa adicionar a opção conv = sync, noerror para continuar mesmo que detecte um erro. Ele simplesmente escreve 0 para qualquer lugar que não possa ler.

    
por 06.04.2015 / 06:36