Vedo quattro risposte realizzabili qui:
Il hdparm
metodo pubblicato da garethTheRed è probabilmente il migliore se sei collegato direttamente al tuo computer. Apparentemente, tuttavia, se lo provi collegato tramite USB, puoi bloccare l'unità. Se lo stai facendo per un disco che stai per smaltire, allora potrebbe essere una buona cosa. Tuttavia, probabilmente si desidera proteggere con sicurezza prima di scartarlo.
La tecnica riportata da imz - Ivan Zakharyaschev funzionerà, ma potrebbe essere molto lenta. Vorrei suggerire se non si desidera che i dati siano recuperabili, utilizzare al /dev/urandom
posto di /dev/zero
; per esempio,
dd iflag=fullblock oflag=direct conv=noerror,notrunc if=/dev/urandom of=/dev/sdX
Vorrei sconsigliare quanto segue. Per qualcosa di più veloce che fa la stessa cosa, usa la tecnica riportata da maxschlepzig (nella domanda):
ddrescue --verbose --force --nosplit /dev/urandom /dev/sdX
Questo sarà più veloce del dd
comando, ma non così veloce come il hdparm
comando. Vedi sotto perché non lo consiglio ...
Anche il badblocks
comando funzionerà, ma non puoi randomizzare i dati in quel modo, e di nuovo sarà molto lento.
Infine, sarei negligente se non indicassi il numero uno dei motivi per cui le persone vogliono cancellare completamente un disco se stanno per smaltirlo. In tal caso, se non lo hai già fatto, potresti provare a ripristinare prima il disco. Se leggi un blocco e restituisce l'errore I / O, la prossima volta che scrivi nello stesso blocco il disco proverà a riallocare un blocco diverso da un elenco di riserva. Una volta che l'elenco di riserva è pieno, verranno visualizzati errori I / O nelle scritture. Questo è quando dovresti davvero scartare l'unità.
Quindi puoi fare qualcosa di semplice come:
dd if=/dev/sdX of=/dev/null conv=noerror
E, quindi, per riscrivere i blocchi danneggiati, solo qualcosa del tipo:
dd if=/dev/zero of=/dev/sdX bs=128k
Se questo comando funziona, se sei coraggioso, puoi riformattare il disco e riutilizzarlo.
In alternativa, è possibile eseguire il badblocks
comando sul disco due volte. La seconda volta non dovrebbe segnalare blocchi danneggiati ...
badblocks -v -s -w -t random /dev/sdX
badblocks -v -s -w -t random /dev/sdX
Questo richiederà più tempo, ma è più affidabile.
Vale anche la pena notare che nessuna delle tecniche esegue una cancellazione sicura, tranne il hdparm
comando. Ricordi tutti quei brutti blocchi? Quelli hanno ancora alcuni dei tuoi dati originali per lo più intatti. Un esperto di recupero dati potrebbe accedervi per vedere una piccola quantità di ciò che era precedentemente sul tuo disco rigido.
Per quanto riguarda ddrescue e perché sconsiglio, ho il seguente antidoto:
Il problema è che ddrescure sarà TROPPO bravo a ignorare gli errori. Ho avuto un disco rigido che coerentemente con dd ha ridotto la velocità di scrittura a circa 102 GB e ho iniziato a produrre errori di scrittura a 238 GB. Sono rimasto piuttosto impressionato dal fatto che ddrescue abbia continuato a sfogliare il disco a velocità costante, anche senza segnalare errori. 17 ore dopo, quando era a 1300 GB, quando mi è capitato di notare che la stessa luce dell'unità ha smesso di lampeggiare. Un rapido controllo ha rivelato che l'intero contenitore USB era offline. Ho estratto il disco dalla base. Ho notato che ddrescue ha appena riferito felicemente che stava ancora copiando senza errori, anche con il disco in mano. Ho collegato il disco a un'altra macchina e ho scoperto che ora era un mattone.
Non do la colpa a ddrescue per aver reso l'unità un mattone. Il disco non funzionava e sarebbe diventato un mattone. Trovo che disturbare ddrescue non dia nemmeno un conteggio degli errori di quanti errori di scrittura sta ignorando. In questo utilizzo, ddrescue ti lascia pensare che abbia avuto completamente successo, indipendentemente da tutti gli errori di scrittura. Il fatto è che non avrebbe dovuto essere in grado di continuare a tutta velocità nella sezione con il rallentamento. Il motivo per cui la sezione era lenta è che molti blocchi sono stati trasferiti dall'unità, causando molte ricerche quando si accede a quella sezione. Quindi questo è probabilmente il punto in cui l'output di ddrescue è diventato fittizio.
dd conv=noerror
potrebbe essere un'estensione GNU, non sono sicuro. In ogni caso, dovrebbe fare il trucco. Tuttavia, vale la pena cercare la risposta SATA che dice all'unità di cancellare se stessa.