Ricerca nel sito web

Come utilizzare 'fsck' per riparare gli errori del file system in Linux


I file system Linux sono responsabili dell'organizzazione del modo in cui i dati vengono archiviati e recuperati. In un modo o nell'altro, con il tempo, il filesystem potrebbe danneggiarsi e alcune parti di esso potrebbero non essere accessibili. Se il tuo filesystem sviluppa tali incoerenze si consiglia di verificarne l'integrità.

Questo può essere completato tramite un'utilità di sistema chiamata fsck (controllo della coerenza del file system), che controlla automaticamente il file system root durante l'avvio o viene eseguita manualmente.

In questo articolo esamineremo il comando fsck e il suo utilizzo per aiutarti a riparare gli errori del disco Linux.

Quando utilizzare il comando fsck in Linux

Esistono diversi scenari in cui vorrai eseguire fsck. Ecco alcuni esempi:

  • Il sistema non si avvia.
  • I file nel sistema vengono danneggiati (spesso potresti visualizzare errori di input/output).
  • L'unità collegata (incluse le unità flash/schede SD) non funziona come previsto.

Opzioni del comando fsck

Il comando fsck deve essere eseguito con privilegi di superutente o root. Puoi usarlo con diversi argomenti. Il loro utilizzo dipende dal caso specifico. Di seguito vedrai alcune delle opzioni più importanti:

  • -A – Utilizzato 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 tenterà di utilizzare la partizione durante il controllo.
  • -M – Non controlla i filesystem montati.
  • -N – Mostra solo ciò che verrebbe fatto – non vengono apportate modifiche effettive.
  • -P – Se vuoi controllare i filesystem in parallelo, incluso root.
  • -R – Non controlla il filesystem root. Questo è utile solo con ‘-A‘.
  • -r – Fornisce statistiche per ciascun 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 file system Linux

Per eseguire fsck, dovrai assicurarti che la partizione che stai per controllare non sia montata. Ai fini di questo articolo, utilizzerò la mia seconda unità /dev/sdb montata in /mnt.

Ecco cosa succede se provo a eseguire fsck quando la partizione è montata.

fsck /dev/sdb

Per evitare ciò smontare la partizione utilizzando.

umount /dev/sdb

Allora fsck può essere eseguito in tutta sicurezza.

fsck /dev/sdb

Comprensione dei codici di uscita 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            

Fsck Ripara il filesystem Linux

A volte è possibile trovare più di un errore su un filesystem. In questi casi, potresti volere che fsck tenti automaticamente di correggere gli errori. Questo può essere fatto con:

fsck -y /dev/sdb

Il flag -y, automaticamente “yes ” a qualsiasi richiesta di fsck per correggere un errore.

Allo stesso modo, 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 dover eseguire fsck sulla partizione root del tuo sistema. Dato che non puoi eseguire fsck mentre la partizione è montata, puoi provare una di queste opzioni:

  • Forza fsck all'avvio del sistema
  • Esegui fsck in modalità salvataggio

Esamineremo entrambe le situazioni.

Forza 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. Utilizzare il seguente comando:

touch /forcefsck

Quindi puoi semplicemente forzare o pianificare un riavvio del tuo sistema. Durante il prossimo avvio, verrà eseguito fsck. Se i tempi di inattività sono critici, si consiglia di pianificarli attentamente, poiché se ci sono molti inode utilizzati sul tuo sistema, fsck potrebbe richiedere del tempo extra.

Dopo l'avvio del sistema, 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à Rescue

L'esecuzione di fsck in modalità di salvataggio richiede alcuni passaggi aggiuntivi. Innanzitutto, prepara il sistema per il riavvio. Interrompi tutti i servizi critici come MySQL/MariaDB ecc., quindi digita.

reboot

Durante l'avvio, tieni premuto il tasto shift in modo che venga visualizzato il menu di grub. Seleziona "Opzioni avanzate".

Quindi scegli "Modalità di ripristino".

Nel menu successivo seleziona “fsck”.

Ti verrà chiesto se desideri che il tuo filesystem / venga rimontato. Seleziona "sì".

Dovresti vedere qualcosa di simile a questo.

È quindi possibile riprendere l'avvio normale selezionando "Riprendi".

Conclusione

In questo tutorial hai imparato come utilizzare fsck ed eseguire controlli di coerenza su diversi file system Linux. Se hai domande su fsck, non esitare a inviarle nella sezione commenti qui sotto.