Come riparare un file system danneggiato su Linux

Come riparare un file system danneggiato su Linux

25/02/2021 0 Di Redazione

Se parlate di manutenzione del file system su un sistema Linux nel 90% dei casi vi sentirete rispondere che non serve assolutamente. È vero, gli sviluppatori Linux continuano a lavorare per rendere il cuore del sistema operativo, quello che lavora sui componenti hardware, sempre più sicuro e potente. Ma purtroppo anche il pilota più in gamba su un’automobile vecchia e malconcia può incorrere in un incidente catastrofico. I dischi fissi, gli HDD, sono componenti elettronici molto sofisticati e delicati e sono sottoposti, continuamente, a migliaia di operazioni di lettura e scrittura per secondo. Il guasto fisico è sempre in agguato con il rischio concreto di perdere irrimediabilmente tutto il nostro lavoro. Il principio base, quindi, è di avere sempre una copia di riserva, il backup, del nostro lavoro. In questo modo, se qualcosa dovesse andare male, avremo la certezza di avere almeno i nostri dati al sicuro. Certo, anche se oggi i dischi fissi costano molto poco, scoprire che bisogna perdere una mezza giornata per sostituire il disco, poi reinstallare il sistema operativo e i software e, infine, ripristinare i nostri dati solo perché si sono danneggiati una decina di settori su un miliardo e mezzo può dare anche fastidio. Ma a tutto c’è rimedio.

Trovare gli errori sul file system Linux

Fortunatamente Linux mette a disposizione degli utenti un comando molto potente, fsck (File System Consistency checK Controllo della coerenza del file system) che riesce a controllare e riparare il file system. Di default il nostro sistema Linux eseguirà fsck ogni “tot” riavvii (su Ubuntu ogni 30) ma come vedremo è possibile forzarne l’esecuzione. Attenzione però: lanciare il comando fsck su una partizione montata può irrimediabilmente danneggiare il file system!

Per scoprire quando è stato eseguito l’ultima volta fsck possiamo usare, da terminale, il comando:

journalctl -b –no-pager | grep systemd-fsck 

che ci darà un risultato compatto o il comando 

sudo cat /run/initramfs/fsck.log che ci fornirà informazioni più dettagliate. (vedi foto)

Nel caso in cui per l’età del disco o per evidenti rallentamenti sospettiamo un danno al disco fisso, possiamo forzare l’esecuzione di fsck ad ogni riavvio creando, semplicemente, un file vuoto nella directory di avvio del nostro disco fisso. Per farlo useremo il comando da terminale sudo touch /forcefsck, e analizzando, dopo il riavvio, i risultati con i comandi visti sopra.

Usare fsck

Ricordiamo, ancora una volta che lanciare il comando fsck su una partizione montata può irrimediabilmente danneggiare il file system! In ogni caso la prima cosa da fare è identificare le partizioni del nostro disco utilizzando, sempre da terminale, il comando sudo fsdisk -l che ci darà un elenco dettagliato delle nostre partizioni. A questo punto potremo smontare la partizione che ci interessa digitando, sempre nel terminale, il comando sudo umount /dev/sdbX (dove X è il numero della partizione) e solo dopo dare il comando sudo fsck /dev/sdbX (dove X è sempre il numero della partizione). Naturalmente non è possibile smontare la partizione attiva per cui, certamente, è preferibile forzare l’esecuzione del controllo del disco al prossimo riavvio come descritto sopra.

Leggi anche: