badblocks legge, scrive e confronta (non necessariamente in quell'ordine).
Successivamente badblocks -vverranno emessi messaggi come:
Pass completed, n bad blocks found (x/y/z errors)
Ciò significa che ha trovato nblocchi danneggiati, costituiti da xerrori di lettura, yerrori di scrittura ed zerrori 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, è badblockspossibile scrivere vari schemi di dati (specificati da una o più -t patternopzioni) 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 badblocksnon lo saprà, vede solo ciò che considera i dati sbagliati.
Questo è anche il motivo per cui non dovresti mai correre badblockssu 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 ddrescueinvece di badblocks. ddrescuefa 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 badblockselimina 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-destructivemodalità è 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 longo smartctl -t select). Più sicuro badblockse amichevole rispetto ad altri I / O.