badblocks
legge, scrive e confronta (non necessariamente in quell'ordine).
Successivamente badblocks -v
verranno emessi messaggi come:
Pass completed, n bad blocks found (x/y/z errors)
Ciò significa che ha trovato n
blocchi danneggiati, costituiti da x
errori di lettura, y
errori di scrittura ed z
errori di corruzione. Considera gli errori di lettura e di scrittura man mano che si verificano durante la lettura e la scrittura (come riportato dal kernel). Questi errori possono anche essere causati da problemi di cavo / controller / driver.
Un errore di corruzione è il caso in cui i dati sono stati confrontati e sono risultati diversi dal previsto (ovvero i dati che leggono si sono discostati dai dati precedentemente conosciuti / scritti). In particolare, è badblocks
possibile scrivere vari schemi di dati (specificati da una o più -t pattern
opzioni) e verificare se ciascun motivo è stato scritto correttamente.
È possibile ottenere falsi positivi per errori di corruzione, se un altro programma esegue le proprie scritture mentre badblocks
è in esecuzione. Se un altro programma scrive, il disco si sta comportando correttamente, ma badblocks
non lo saprà, vede solo ciò che considera i dati sbagliati.
Questo è anche il motivo per cui non dovresti mai correre badblocks
su un'unità in uso, su un'unità che ha già un filesystem che potrebbe essere montato automaticamente a tua insaputa, o su unità che già sospetti siano dannose ma desideri comunque recuperare i tuoi dati.
In termini di recupero dei dati, dovresti sempre andare con ddrescue
invece di badblocks
. ddrescue
fa praticamente la stessa cosa badblocks
(modalità lettura), legge l'intero disco e annota i settori che non è in grado di leggere; ma allo stesso tempo produce una copia utile, mentre badblocks
elimina completamente i dati.
È degno di fiducia?
badblocks
è uno strumento come un altro, fa esattamente quello che dice nella manpage: cerca un dispositivo per blocchi danneggiati. Potrebbe essere o meno lo strumento giusto per qualunque cosa tu voglia fare.
Nelle mani sbagliate, potrebbe essere la causa della corruzione dei dati. La cosiddetta non-destructive
modalità è un falso amico e non implica affatto la sicurezza dei tuoi dati.
badblocks
(modalità di scrittura) è utile soprattutto per inserire un'unità nuova e vuota nello strumento di scrittura prima di fidarsi di essa con i dati.
Per un test di sola lettura, di solito è meglio utilizzare i test automatici SMART ( smartctl -t long
o smartctl -t select
). Più sicuro badblocks
e amichevole rispetto ad altri I / O.