Introduzione

fsck (controllo del file system) è un'utilità della riga di comando che consente di eseguire controlli di coerenza e riparazioni interattive su uno o più file system Linux. Utilizza programmi specifici per il tipo di file system che controlla.

È possibile utilizzare il comando fsck per riparare file system danneggiati in situazioni in cui il sistema non si avvia o non è possibile montare una partizione.

In questo articolo, parleremo del comando fsck.

Come usare fsck

Il comando fsck assume la seguente sintassi:

fsck [OPTIONS] [FILESYSTEM]

Solo l'utente root o gli utenti con privilegi sudo possono cancellare il buffer.

Quando non viene fornito nessun FILESYSTEM come argomento, fsck controlla i dispositivi elencati nel file fstab.

Non eseguire mai fsck su partizioni montate in quanto potrebbe danneggiare il file system. Prima di tentare di controllare o riparare i file system, utilizzare sempre prima il comando unmount.

Il comando fsck è un wrapper per i vari correttori di filesystem Linux ( fsck.*) e accetta diverse opzioni a seconda del tipo di file system.

Controllare le pagine del manuale per ulteriori informazioni su un correttore specifico. Ad esempio, per visualizzare le opzioni disponibili per fsck.ext4, digitare:

man fsck.ext4

Riparare il file system danneggiato

Il caso d'uso più semplice del comando fsck è di riparare un file system ext3 o ext4 danneggiato non root.

Se non si conosce il nome del dispositivo, utilizzare fdisk, df o qualsiasi altro strumento per trovarlo.

Smonta il dispositivo:

sudo umount /dev/sdc1

Esegui fsck per riparare il file system:

sudo fsck -p /dev/sdc1

L'opzione -p indica al tool fsck di riparare automaticamente eventuali problemi che possono essere risolti in modo sicuro senza l'intervento dell'utente.

Una volta riparato il file system, montare la partizione:

sudo mount /dev/sdc1

Ripara il file system di root

fsck non può controllare il file system di root su una macchina in esecuzione perché non può essere smontato.

Se si desidera controllare o riparare il file system di root, sono disponibili diverse opzioni. È possibile impostare l'esecuzione di fsck per l'avvio, avviare il sistema in modalità di ripristino o utilizzare un CD live.

Per eseguire fsck in modalità di ripristino:

  1. Accedi al menu di avvio e scegli Opzioni avanzate
  2. Selezionare la modalità di ripristino e quindi "fsck".
  3. Quando viene richiesto di reinstallare il file system di root, scegliere "Sì".
  4. Al termine, riprendere il normale avvio.

Per eseguire fsck da una distribuzione live:

  1. Avvia la distribuzione live.
  2. Utilizzare fdisk o parted per trovare il nome della partizione radice.

Apri il terminale ed esegui:

sudo fsck -p /dev/sda1
  1. Al termine, riavviare la distribuzione live e avviare il sistema.

Controllare i file system all'avvio

Sulla maggior parte delle distribuzioni Linux, fsck viene eseguito all'avvio se un file system è contrassegnato come sporco o dopo un determinato numero di avviamenti o tempi.

Per vedere il conteggio di mount corrente controlla il numero di frequenza, l'intervallo e l'ora dell'ultimo controllo per una partizione specifica, usa lo strumento tune2fs:

sudo tune2fs -l /dev/sdc1 | grep -i 'last checked\|mount count'
Mount count:              193
Maximum mount count:      -1
Last checked:             Tue Jul 21 12:09:13 2018
Check interval:           0 (<none>)
  • Maximum mount count - è il numero di montaggi dopo i quali verrà verificato il filesystem. Il valore 0 o -1 significa che fsck non verrà mai eseguito.
  • Check interval - è il tempo massimo tra due controlli del file system.

Se ad esempio, si desidera eseguire fsck dopo ogni 25 avvii (mounts), digitare:

sudo tune2fs -c 25 /dev/sdc1

È inoltre possibile impostare il tempo massimo tra due controlli. Ad esempio, per impostarlo su un mese dovresti eseguire:

sudo tune2fs -i 1m /dev/sdc1

Per forzare l'esecuzione di fsck all'avvio sulle distribuzioni SystemD, utilizzare i seguenti parametri di avvio del kernel:

fsck.mode=force
fsck.repair=yes

Nelle distribuzioni precedenti fsck verrà eseguito all'avvio se il file /forcefsck  è presente, quindi utilizzare il seguente comando forzare l'avvio di fsck:

Opzioni FSTAB

fstab è un file di configurazione che indica al sistema come e dove montare le partizioni.

Il file /etc/fstab contiene un elenco di voci nel seguente formato:

# [File System] [Mount Point] [File System Type] [Options] [Dump] [PASS]
/dev/sda1       /             ext4               defaults  0      1
/dev/sda2       /home         ext4               defaults  0      2
server:/dir     /media/nfs    nfs                defaults  0      0

L'ultima, sesta colonna ( [PASS]) è l'opzione che controlla l'ordine in cui vengono eseguiti i controlli del file system al momento del riavvio.

  • 0 - Non controllare.
  • 1 - I file system da verificare uno alla volta.
  • 2 - Tutti gli altri file system che vengono controllati in seguito e possibilmente in parallelo.

Il file system di root dovrebbe avere un valore 1 e tutti gli altri file system che si desidera verificare dovrebbero avere un valore di 2.

Conclusione

fsck è uno strumento da riga di comando per il controllo e la riparazione facoltativa dei file system Linux.

Per saperne di più sul comando fsck, digita nel terminale il seguente comando:

man fsck