File systemi di Linux sono responsabili dell’organizzazione del modo in cui i dati vengono memorizzati e recuperati. In un qualche modo, col tempo, il file system può diventare corrotto e certi suoi settori possono diventare inaccessibili. Se il tuo file system sviluppa una tale inconsistenza, è consigliato verificare la sua integrità.
Ciò può essere completato tramite un’utilità di sistema chiamata fsck (file system consistency check), che controlla il file system radice automaticamente durante il boot o può essere eseguito manualmente.
In questo articolo, faremo un review della comando fsck e del suo utilizzo per aiutarti a riparare errori del disco in Linux.
Tavola dei Contenuti
Quando utilizzare il comando fsck in Linux
Esistono diversi scenari in cui si desidera eseguire fsck. Ecco alcuni esempi:
- Il sistema non riesce ad avviarsi.
- I file sul sistema diventano corrotti (spesso si possono riscontrare errori di input/output).
- Il dispositivo connesso (compresi chiavette USB/schede SD) non funziona come previsto.
Opzioni del comando fsck
Il comando fsck deve essere eseguito con privilegi di superutente o root. Puoi utilizzarlo con diversi argomenti. Il loro utilizzo dipende dal tuo caso specifico. Di seguito vedrai alcune delle opzioni più importanti:
-A
– Usato per controllare tutti i filesystem. L’elenco è preso da/etc/fstab
.-C
– Mostra la barra di avanzamento.-l
– Blocca il dispositivo per garantire che nessun altro programma cerchi di utilizzare la partizione durante il controllo.-M
– Non controllare i filesystem montati.-N
– Mostra solo cosa verrebbe fatto, nessuna modifica effettiva viene apportata.-P
– Se si desidera controllare i filesystem in parallelo, incluso il root.-R
– Non controllare il filesystem radice. Questo è utile solo con ‘-A
‘.-r
– Fornisce statistiche per ogni dispositivo che viene controllato.-T
– Non mostra il titolo.-t
– Specifica esclusivamente i tipi di filesystem Linux da controllare. I tipi possono essere elenchi separati da virgole.-V
– Fornisce una descrizione di ciò che viene fatto.
Esegui il comando fsck per riparare gli errori del filesystem Linux
Per eseguire fsck, è necessario assicurarsi che la partizione che si sta per controllare non sia montata. Per lo scopo di questo articolo, utilizzerò il mio secondo disco /dev/sdb
montato in /mnt
.
Ecco cosa succede se cerco di eseguire fsck quando la partizione è montata.
# fsck /dev/sdb

Per evitare questo, smonta la partizione usando.
# umount /dev/sdb
Quindi fsck può essere eseguito in modo sicuro.
# fsck /dev/sdb

Comprendere i codici di uscita di fsck
Dopo aver eseguito fsck, restituirà un codice di uscita. Questi codici possono essere visualizzati nel manuale di fsck eseguendo:
# man fsck 0 No errors 1 Filesystem errors corrected 2 System should be rebooted 4 Filesystem errors were left uncorrected 8 Operational error 16 Usage or syntax error 32 Checking canceled by user request 128 Shared-library error
Riparazione del filesystem Linux con fsck
A volte possono essere trovati più di un errore su un filesystem. In tali casi, potresti desiderare che fsck cerchi automaticamente di correggere gli errori. Ciò può essere fatto con:
# fsck -y /dev/sdb
Il flag -y
, risponde automaticamente "sì"
a qualsiasi richiesta da fsck per correggere un errore.
In modo simile, puoi eseguire lo stesso su tutti i filesystem (senza root):
$ fsck -AR -y
Come eseguire fsck sulla partizione root di Linux
In alcuni casi, potresti aver bisogno di eseguire fsck sulla partizione root del tuo sistema. Poiché non puoi eseguire fsck mentre la partizione è montata, puoi provare una di queste opzioni:
- Forzare fsck all’avvio del sistema
- Eseguire fsck in modalità di soccorso
Esamineremo entrambe le situazioni.
Forzare fsck all’avvio del sistema
Questo è relativamente facile da completare, l’unica cosa che devi fare è creare un file chiamato `forcefsck` nella partizione root del tuo sistema. Utilizza il seguente comando:
# touch /forcefsck
Poi puoi semplicemente forzare o pianificare un riavvio del tuo sistema. Durante il prossimo avvio, verrà eseguito fsck. Se il tempo di inattività è critico, si consiglia di pianificare attentamente questo, poiché se ci sono molti inode utilizzati nel tuo sistema, fsck potrebbe richiedere del tempo extra.
Dopo che il tuo sistema si avvia, controlla se il file esiste ancora:
# ls /forcefsck
Se lo fa, potresti volerlo rimuovere per evitare fsck ad ogni avvio del sistema.
Esegui fsck in modalità di salvataggio
Eseguire fsck in modalità di salvataggio richiede alcuni passaggi aggiuntivi. Prima, prepara il tuo sistema per il riavvio. Interrompi tutti i servizi critici come MySQL/MariaDB eccetera e poi digita.
# reboot
Durante l’avvio, tieni premuto il tasto `shift` in modo che venga mostrato il menu di grub. Seleziona “Opzioni avanzate”.

Quindi scegli “Modalità di ripristino”.

Nel menu successivo seleziona “fsck”.

Ti verrà chiesto se desideri che il filesystem `/` venga rimontato. Seleziona “sì”.

Dovresti vedere qualcosa di simile a questo.

Puoi quindi riprendere selezionando “Riprendi”.

In questo tutorial, hai imparato come utilizzare fsck e eseguire controlli di coerenza su diversi filesystem Linux. Se hai domande su fsck, non esitare a inviarle nella sezione commenti qui sotto.
Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/