Eu vejo quatro respostas viáveis aqui:
-
O método hdparm
publicado por garethTheRed é provavelmente o melhor se você estiver conectado diretamente ao seu computador. Aparentemente, no entanto, se você tentar conectá-lo via USB, você pode fazer o seu disco funcionar. Se você está fazendo isso para uma unidade que você está prestes a descartar, então isso pode ser uma coisa boa. No entanto, você provavelmente deseja proteger o apagamento antes de descartá-lo.
-
A técnica relatada por imz - Ivan Zakharyaschev funcionará, mas pode seja muito lento. Sugiro que, se você não quiser que os dados sejam recuperáveis, use /dev/urandom
em vez de /dev/zero
; por exemplo,
dd iflag=fullblock oflag=direct conv=noerror,notrunc if=/dev/urandom of=/dev/sdX
-
Eu aconselharia o seguinte. Para algo mais rápido que faz a mesma coisa, use a técnica relatada por maxschlepzig (na pergunta):
ddrescue --verbose --force --nosplit /dev/urandom /dev/sdX
Isso será mais rápido que o comando dd
, mas não tão rápido quanto o comando hdparm
. Veja abaixo porque eu não recomendo isso ...
-
O comando badblocks
também funcionará, mas você não pode randomizar os dados dessa maneira e, novamente, será muito lento.
Por fim, seria negligente se eu não apontasse a razão número um para as pessoas quererem apagar completamente um disco, pois elas estão prestes a descartá-lo. Nesse caso, se você ainda não tiver feito isso, tente primeiro recuperar o disco. Se você ler um bloco e ele retornar o erro de I / O, da próxima vez que você gravar no mesmo bloco, o disco tentará realocar um bloco diferente de uma lista de reserva. Quando a lista de reserva estiver cheia, você receberá erros de E / S nas gravações. É quando você realmente deve descartar a unidade.
Então você pode fazer algo simples como:
dd if=/dev/sdX of=/dev/null conv=noerror
E, então, para reescrever os blocos ruins, apenas algo como:
dd if=/dev/zero of=/dev/sdX bs=128k
Se este comando funcionar, se você for corajoso, poderá reformatar seu disco e usá-lo novamente.
Como alternativa, você pode executar o comando badblocks
no disco duas vezes. A segunda vez que ele não deve reportar nenhum bloco ruim ...
badblocks -v -s -w -t random /dev/sdX
badblocks -v -s -w -t random /dev/sdX
Isso vai demorar mais, mas é mais confiável.
Também é importante notar que nenhuma das técnicas realmente faz um apagamento seguro, exceto o comando hdparm
. Lembre-se de todos esses maus blocos? Aqueles ainda têm alguns dos seus dados originais praticamente intactos. Um especialista em recuperação de dados pode acessá-los para ver uma pequena parte do que estava anteriormente em seu disco rígido.
No que diz respeito a descescue e porque eu aconselho contra isso, eu tenho o seguinte antídoto:
O problema é que o ddrescure será muito bom em ignorar erros. Eu tinha um disco rígido que consistentemente com dd caiu velocidade de gravação em cerca de 102 GB e começou a produzir erros de gravação na marca de 238 GB. Fiquei bastante impressionado com o fato de que o ddrescue continuava a se movimentar pelo disco a uma velocidade constante, mesmo sem relatar nenhum erro. 17 horas depois, quando estava no 1300 GB, quando percebi que a luz da propulsão parou de piscar. Uma verificação rápida revelou que todo o gabinete USB estava offline. Eu puxei o carro para fora do berço. Eu notei que ddrescue apenas felizmente relatou que ainda estava copiando sem erros, mesmo com o disco em minhas mãos. Eu pluguei o disco em outra máquina e descobri que agora era um tijolo.
Eu não culpo o ddrescue por fazer do drive um tijolo. A unidade estava falhando e se tornaria um tijolo. Acabei de encontrar perturbador ddrescue não dá sequer uma contagem de erros de quantos erros de gravação está ignorando. Nesse uso, o ddrescue deixa você pensar que foi completamente bem-sucedido, independentemente de todas as falhas de gravação. O fato é que não deveria ter sido capaz de continuar a toda velocidade na seção com a desaceleração. A razão pela qual a seção foi lenta, é que muitos blocos foram realocados pela unidade, causando muita procura ao acessar essa seção. Então, esse é provavelmente o ponto em que a saída do ddrescue se tornou fictícia.