Cerca questo argomento e Google ti suggerirà « smartctl fix bad sectors ». Quel suggerimento descrive qualcosa che lo strumento non fa, ed è nello scarto tra ciò che le persone si aspettano e ciò che SMART fornisce realmente che i dati vanno persi.
smartctl riporta, non ripara
La documentazione non lascia spazio a interpretazioni: smartctl "non calcola nessuno dei valori degli attributi, delle soglie o dei tipi, si limita a riportarli dai dati SMART presenti sul dispositivo."
È un'utilità di monitoraggio e di reportistica. Non esiste alcuna opzione che ripari un settore, perché riparare non è qualcosa che fa uno strumento diagnostico. Quando un disco rialloca un settore danneggiato, è il firmware a farlo, silenziosamente, usando una riserva presa dal proprio pool di scorta.
Questo ha conseguenze pratiche. Qualsiasi utilità che pubblicizzi di "riparare" i settori danneggiati sta facendo una di due cose: riscriverli, il che distrugge in modo permanente qualunque cosa vi si trovasse, oppure forzare la mano al firmware verso la riallocazione. Nessuna delle due recupera il tuo file. Se i dati contano ancora, scrivere sul disco è l'ultima cosa che vuoi fare.
I cinque attributi che vale la pena leggere
Backblaze gestisce uno dei più ampi set di dati pubblicati sui guasti dei dischi, e monitora cinque attributi SMART per la previsione:
| ID | Attributo |
|---|---|
| 5 | Reallocated Sectors Count |
| 187 | Reported Uncorrectable Errors |
| 188 | Command Timeout |
| 197 | Current Pending Sector Count |
| 198 | Uncorrectable Sector Count |
Il loro confronto pubblicato: il 76,7 % dei dischi guasti aveva almeno uno di questi attributi sopra lo zero, contro il 4,2 % dei dischi in servizio. È questa separazione che li rende degni di essere controllati.
I due più comunemente fraintesi sono il 197 e il 5, e vale la pena capire la differenza tra loro.
197, Current Pending Sector Count, è l'elenco provvisorio. Si tratta di settori che il disco ha faticato a leggere e che ha messo in prova. Non sono ancora condannati. Se una lettura successiva riesce, il conteggio può tornare a scendere.
5, Reallocated Sectors Count, è il registro permanente. Si tratta di settori su cui il disco ha rinunciato e che ha scambiato con quelli di riserva. Questo numero può solo salire.
Quindi un 197 diverso da zero è l'avvertimento più precoce, e quello su cui vale la pena agire, perché dice che il disco sta attualmente faticando a leggere qualcosa. E quel qualcosa potrebbe benissimo essere il tuo file.

Come leggere l'output senza fraintenderlo
Tre comandi coprono il terreno pratico:
smartctl -H /dev/sda # overall health status
smartctl -A /dev/sda # the attribute table
smartctl -l selftest /dev/sda # results of past self-tests
Su -H, il significato documentato di un errore è specifico e urgente: "o che il dispositivo è già guasto, oppure che sta prevedendo il proprio guasto entro le 24 ore successive." Ventiquattro ore non sono una finestra di manutenzione. Significano copiare adesso ciò che conta.
Su -A, ogni attributo porta con sé un valore Raw, un valore Normalized e una Threshold (soglia). La regola documentata è che se il valore normalizzato è minore o uguale alla soglia, l'attributo è in errore. Le persone leggono abitualmente la colonna raw e si spaventano, oppure la leggono e si tranquillizzano, senza confrontarla con la soglia. Il valore raw da solo non ti dice se un attributo è in errore.
Per eseguire i test veri e propri:
smartctl -t short /dev/sda # usually under ten minutes
smartctl -t long /dev/sda # tens of minutes, more thorough
Il test breve verifica le prestazioni elettriche e meccaniche insieme a quelle in lettura. Il test esteso ne è la versione più lunga e più approfondita. In entrambi i casi il comando lancia il test e restituisce il controllo; l'esito lo leggi dopo con -l selftest, che mostra il tipo e lo stato finale di ciascuno degli autotest più recenti.
Il numero che nessuno cita: 23,3 %
Ecco la parte che dovrebbe cambiare il modo in cui reagisci a un rapporto pulito.
Secondo le cifre stesse di Backblaze, se il 76,7 % dei dischi guasti mostrava un avvertimento, allora il 23,3 % dei dischi guasti non ne mostrava proprio nessuno. Quasi un guasto su quattro arriva con SMART che non segnala nulla di anomalo.
SMART è un avvertimento precoce utile che resta però in silenzio circa un quarto delle volte. È la prova di un problema quando parla, e non è la prova di buona salute quando tace. Un controllo superato significa che non è ancora stato rilevato nulla di male. Non significa che il disco stia bene, e non sostituisce l'avere una seconda copia.
Ciò che rende sospetto ogni valore raw
Prima di fidarti di una qualsiasi delle cifre viste sopra, nel manuale stesso di smartctl c'è un'avvertenza che cambia il modo in cui va letta l'intera tabella.
Dalla revisione 4 di ATA/ATAPI-4, il significato di questi campi degli attributi è diventato interamente specifico del produttore. Il manuale attenua subito l'affermazione, notando che la maggior parte dei dischi ATA/ATAPI-5 sembra rispettarne il significato convenzionale, ma lo standard in sé ha smesso di definirli.
La conseguenza ricade proprio sulla colonna che le persone citano di più:
La conversione dal valore raw a una grandezza dotata di unità fisiche non è specificata dallo standard SMART.
Quindi un valore raw è un numero la cui unità è decisa dal produttore. Il manuale fornisce esempi concreti della confusione che ne deriva: alcuni dischi Hitachi riportano le ore di accensione in minuti, e alcuni dischi IBM usano l'attributo della temperatura per tenere traccia di tre temperature diverse anziché di una sola.
Ne seguono due regole pratiche.
Confronta un disco con sé stesso, non con una tabella trovata su internet. Un valore raw di 200 non significa nulla senza conoscere l'unità e il modello. Ciò che significa qualcosa è che il mese scorso era 40.
Leggi la colonna normalizzata quando vuoi un verdetto. VALUE va da 1 a 254 a fronte di una THRESH che va da 0 a 255, e la regola è enunciata con chiarezza: se il valore normalizzato è minore o uguale alla soglia, si dice che l'attributo è in errore. È questo il confronto che il produttore intendeva farti fare.
La colonna WHEN_FAILED ti racconta poi la storia in una parola: FAILING_NOW se in questo momento è pari o inferiore alla soglia, In_the_past se il valore attuale è accettabile ma il peggior valore registrato non lo era, e un trattino se l'attributo adesso sta bene e non è mai stato in errore.
Un'ultima cosa che vale la pena sapere sullo strumento stesso: smartctl non calcola nessuno dei valori degli attributi, delle soglie o dei tipi. Riporta ciò che gli consegna il firmware. Quando un numero sembra assurdo, lo strumento non sbaglia, sta riferendo fedelmente qualcosa che ha detto il disco.
Cosa fare quando i numeri sono cattivi
L'ordine conta, e il primo passo è quello che le persone saltano.
Smetti di scrivere sul disco. Ogni scrittura è un'occasione per sovrascrivere qualcosa di recuperabile e altro lavoro per un meccanismo che è già in difficoltà.
Crea l'immagine prima di indagare. Lavora da una copia a livello di settore, non dal disco difettoso. Tentativi di lettura ripetuti su un disco con settori pending mettono sotto sforzo esattamente il punto già debole, e ogni nuovo tentativo è un'occasione perché un settore marginale diventi illeggibile. Trattiamo il procedimento in clonare un disco difettoso con ddrescue.
Poi recupera dall'immagine. Una volta che hai una copia, puoi riprovare quante volte vuoi senza mettere a rischio l'originale.
Recuperare da un'immagine o da un disco ancora leggibile
Si applica una volta che il disco è abbastanza stabile da essere letto o che ne hai fatto una copia. Non ripara i settori danneggiati e nessun software può farlo, perché la riallocazione è gestita dal firmware del disco.
La versione breve
smartctl ti dice ciò che il disco riporta su sé stesso. Non ripara mai nulla, quindi tratta "fix bad sectors" come la descrizione di qualcos'altro. Leggi l'attributo 197 come l'avvertimento precoce e il 5 come il registro permanente, e confronta i valori normalizzati con le soglie invece di leggere i numeri raw da soli. Un -H in errore ti dà un orizzonte documentato di 24 ore. E un rapporto pulito non è un certificato di buona salute, perché all'incirca un guasto su quattro non è mai comparso in queste statistiche.
Il comportamento dei comandi e la semantica degli attributi sono tratti dalla documentazione di smartctl; le cifre di correlazione con i guasti (76,7 %, 4,2 %, 23,3 %) sono le statistiche pubblicate da Backblaze sulla propria flotta. Le cifre descrivono la loro popolazione di dischi e non sono una previsione per un singolo disco. I link commerciali portano l'attributo rel="sponsored nofollow"; può applicarsi una commissione di affiliazione senza alcun costo aggiuntivo per te.
Recupera i dati del tuo disco fisso → EaseUS
Scansione gratuita · file cancellati, formattati, persi · Windows & Mac



