Come cancellare un disco rigido con settori non scrivibili?


21

Quindi ho un disco rigido che non funziona. Voglio cancellare i dati su di esso prima di inviarli per la sostituzione. Sto cercando di utilizzare dd if=/dev/zero of=/dev/sdXX, ma si interrompe al primo errore di scrittura. Come posso sovrascrivere l'unità con zeri, ignorando gli errori di scrittura? conv=noerrorsembra influenzare solo il file di input.


C'è un bug report nel database Debian su questo comportamento, ma sembra che non sia ancora stato implementato.
Bobby,

Fa badblocksanche fermarsi in caso di errori? Forse potresti fare una scrittura distruttiva con quello?
oKtosiTe

Ora ho anche funzionato in modo distruttivo badblocksper essere sicuro di quanti blocchi danneggiati ci sono prima di restituire il disco lunedì. Inoltre ha cancellato con successo il disco, ma ci sono volute quasi 50 ore.
TestUser16418

Risposte:


18

prova ddrescue invece di dd: prova di più con errori


1
ddrescue ha cancellato con successo l'intero disco, ignorando gli errori di scrittura. Grazie mille.
TestUser16418

15

Parametri che ho usato con ddrescue per cancellare l'unità /dev/sdb(piena di zeri da /dev/zero) e registrare l'output nel file log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt

Per cancellare con dati casuali usare: ddrescue --force / dev / urandom / dev / sdX tmp.log
Bastione

Come fai a sapere quando è finito? L'ho fatto e lasciato funzionare per circa 20 minuti ed è rimasto salvato allo 0,00%. È un SSD NVMe con blocchi danneggiati che sto cercando di cancellare ... l'utility Samsung Secure Erase non ha funzionato per me.
user1960364

3

Se stai solo cercando di cancellare l'unità, prova dban

Dal sito:

Darik's Boot and Nuke ("DBAN") è un disco di avvio autonomo che pulisce in modo sicuro i dischi rigidi della maggior parte dei computer. DBAN eliminerà automaticamente e completamente il contenuto di qualsiasi disco rigido che può rilevare, il che lo rende un'utilità appropriata per la distruzione di massa o di dati di emergenza.


Stavo per suggerire questo.
qroberts,

3

Per la cronaca, dd ha anche un'opzione conv=noerrorper saltare gli errori. Se si sono verificati errori in un file di input e, quando non in uso /dev/zero, si desidera utilizzare conv=noerror,notrunco conv=noerror,syncimpedire a dd di troncare il file di output in cui esistono errori nel file di input.

Per la tua query, puoi invece provare questo comando:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

Per accelerare il processo ed evitare potenzialmente che l'unità muoia a metà falcata, potresti anche provare ad aumentare la dimensione dei byte dal 512 predefinito (che rende dd settore per settore, che è lento) a qualcosa di più grande come 4K ( che è otto volte più grande):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

Nota: con una dimensione in byte maggiore, gli errori ignorati possono lasciare sezioni di dati leggibili leggermente inferiori alla dimensione in byte scelta, ma è ancora improbabile che qualcuno sia in grado di ottenere qualsiasi cosa da quelle sezioni dopo che l'intero disco è stato eseguito attraverso processi.

Oltre a ciò, sono sicuro che i produttori di dischi rigidi smaltiscono correttamente i dischi rigidi che vengono restituiti per la sostituzione in garanzia, nel caso in cui l'unità si guasti prima che tu sia in grado di completare completamente il processo di sovrascrittura.


man ddmostra "noerror" significa "continua dopo errori di lettura"
Kevin Smyth,

1

Sicuramente non è una soluzione per utenti esperti, ma se gli errori di scrittura sono rari, potresti voler continuare manualmente dopo il loro verificarsi.

Potresti teoricamente scrivere qualcosa per farlo automaticamente, ma non è così banale, e preferirei scrivere uno strumento per fare il trucco piuttosto che preoccuparmi dello script dd ..

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output

1
... o usa dd-rescue ...
Antti Haapala,

... dd-rescue gestirà correttamente gli errori di scrittura ?
qdot
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.