Un controllo SHA-256 mi ha salvato il backup
Qualche giorno fa ho verificato l’integrità di un backup confrontando i file tramite SHA-256. Durante il controllo, alcuni file risultavano illeggibili e il terminale restituiva diversi errori.
Inizialmente pensavo a un problema avvenuto durante la copia, ma i messaggi del sistema indicavano qualcosa di più serio:
Medium Error
Unrecovered read error
Il problema non riguardava i file originali, ma l’hard disk esterno sul quale avevo salvato il backup.
La scoperta di smartctl
Cercando di capire meglio la situazione, ho scoperto smartctl, un programma incluso nel pacchetto smartmontools che permette di leggere i dati diagnostici SMART dei dischi.
Su Debian si installa con:
sudo apt install smartmontools
Prima di effettuare il controllo è importante identificare con certezza il disco:
lsblk -o NAME,SIZE,MODEL,SERIAL
Nel mio caso il disco esterno corrispondeva a /dev/sda. Essendo collegato tramite USB, ho eseguito:
sudo smartctl -a -d sat /dev/sda
Il risultato generale riportava:
SMART overall-health self-assessment test result: PASSED
Questo dato, però, non era sufficiente per considerare sano il disco. Il valore realmente preoccupante era:
Current_Pending_Sector: 848
Il disco aveva quindi 848 settori instabili, che non riusciva più a leggere correttamente. Considerati anche gli errori comparsi durante il controllo dei file, la conclusione era chiara: l’hard disk non era più affidabile e doveva essere sostituito.
Quali valori controllare
Quando si esegue un controllo SMART su un hard disk tradizionale, conviene prestare particolare attenzione a questi valori:
Reallocated_Sector_Ct: settori difettosi già sostituiti con settori di riserva;Current_Pending_Sector: settori instabili o illeggibili in attesa di essere riallocati;Offline_Uncorrectable: settori che il disco non è riuscito a correggere;UDMA_CRC_Error_Count: possibili errori di comunicazione, talvolta legati al cavo o al collegamento;SMART Error Log: registro degli errori rilevati;- temperatura e ore complessive di funzionamento.
In particolare, i primi tre valori dovrebbero rimanere a zero.
È importante non fidarsi esclusivamente della dicitura PASSED: bisogna leggere anche i singoli attributi e tenere conto degli errori osservati durante l’utilizzo reale del disco.
Controllare un disco NVMe
È possibile usare smartctl anche per controllare un disco NVMe interno:
sudo smartctl -a /dev/nvme0n1
In questo caso, i valori principali da osservare sono:
Critical Warning;Media and Data Integrity Errors;Error Information Log Entries;Available Spare;Percentage Used;- temperatura.
Idealmente Critical Warning, Media and Data Integrity Errors ed Error Information Log Entries dovrebbero essere a zero.
La lezione imparata
Il controllo tramite SHA-256 non mi ha spiegato direttamente perché alcuni file fossero illeggibili, ma ha fatto emergere il problema. smartctl mi ha poi permesso di individuarne la causa.
Da ora in avanti controllerò periodicamente lo stato SMART dei dischi, soprattutto di quelli utilizzati per i backup.
SMART non può prevedere ogni guasto improvviso. La protezione più importante rimane quindi avere più copie dei propri dati, conservate su supporti differenti.