Come utilizzare ‘fsck’ per riparare gli errori del file system Linux

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.

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
Run fsck on Mounted Partition

Per evitare questo, smonta la partizione usando.

# umount /dev/sdb

Quindi fsck può essere eseguito in modo sicuro.

# fsck /dev/sdb
Run fsck on Linux Partition

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”.

Grub Advanced Options

Quindi scegli “Modalità di ripristino”.

Select Linux Recovery Mode

Nel menu successivo seleziona “fsck”.

Select fsck Utility

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

Confirm Root Filesystem

Dovresti vedere qualcosa di simile a questo.

Running fsck Filesystem Check

Puoi quindi riprendere selezionando “Riprendi”.

Select Normal Boot


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/