Comando fsck in Linux: controllare i file system e valutare la riparazione

fsck richiama il programma adatto al tipo di file system per verificarne la coerenza ed eventualmente ripararlo. Prima di eseguirlo identifica il volume e controlla che non sia in uso: riparare un file system montato può danneggiare i dati.

È un front-end, cioè un programma che avvia controllori specifici come fsck.ext4. Le opzioni effettive dipendono dal controllore. Per ext2, ext3 ed ext4 viene usato e2fsck; per XFS la normale chiamata a fsck non esegue la stessa riparazione e occorre seguire la procedura di xfs_repair.

Sintassi e scelta del file system

sudo fsck [options] [file system]

Questa è una sintassi descrittiva: le parentesi e file system sono segnaposto. Il bersaglio può essere un dispositivo, un punto di montaggio o un identificatore supportato, ma va scelto e verificato esplicitamente. Non ometterlo pensando di ottenere soltanto l'aiuto: fsck senza un bersaglio può avviare controlli sui file system elencati in /etc/fstab.

Leggi man fsck e il manuale del controllore installato. Un'opzione non riconosciuta dal front-end può essere passata al programma specifico; una lettera uguale non garantisce un comportamento uguale su tutti i formati. Anche sudo concede privilegi senza verificare la correttezza del volume scelto.

Verificare il bersaglio prima del controllo

Identificare formato e partizione

lsblk -f

Confronta nome, tipo di file system, UUID e punti di montaggio. UUID significa Universally Unique Identifier, un identificatore del file system. Verifica anche la struttura disco-partizione e l'inventario della macchina con lsblk: un nome come /dev/sdb1 è un esempio, non un bersaglio universale.

Controllare i montaggi

findmnt /dev/sdb1

La query cerca il dispositivo indicato. Se mostra un montaggio, pianifica l'arresto delle applicazioni e lo smontaggio; consulta le guide a mount e umount. Per rendere esplicita la ricerca per dispositivo, findmnt supporta anche --source.

Un risultato vuoto non dimostra che il dispositivo sia disponibile: verifica percorso, messaggi e stato d'uscita. Considera anche i volumi costruiti sopra quel dispositivo e gli altri utilizzi, come swap, cifratura o volumi logici. Devi selezionare il livello che contiene il file system, non un suo componente sottostante.

Consultare un ext2, ext3 o ext4 senza approvare modifiche

sudo e2fsck -n /dev/sdb1

Questo esempio richiede un file system della famiglia ext già identificato e smontato. -n apre il file system in sola lettura e risponde no alle domande. Non aggiungere altre opzioni senza verificarne gli effetti e non interpretare questa modalità come un'autorizzazione a controllare un volume in uso.

Il manuale di e2fsck distingue la sicurezza di alcune combinazioni da quella dei risultati: anche quando -n senza -c, -l e -L evita modifiche su un file system montato, i risultati stampati su quel file system non sono validi per valutarne la coerenza. Per una diagnosi utilizzabile lavora sul bersaglio smontato secondo la procedura prevista.

Distinguere controllo e riparazione automatica

La stessa intenzione di controllo senza approvare riparazioni può essere espressa tramite il front-end, dopo aver verificato che il controllore selezionato supporti correttamente -n:

lsblk -f
sudo fsck -n /dev/sdb1

La prima riga identifica il contesto ma non smonta il volume né ne impedisce l'uso. La seconda richiama un controllore: non è una semplice anteprima. Per ext, l'opzione viene interpretata da e2fsck; non estendere questa spiegazione a qualunque tipo di file system.

Il programma può segnalare passaggi di controllo, conteggi, problemi non corretti o che non è necessario un controllo completo, a seconda dello stato del volume. Non esiste un identico output atteso per tutti i dischi. Un errore non corretto con -n non implica che tu debba subito ripetere il comando con approvazione automatica.

Per e2fsck, -y risponde sì alle domande e può modificare metadati o eliminare riferimenti incoerenti. La riparazione della coerenza non garantisce il recupero di tutti i file. Prima di autorizzare scritture conserva il rapporto, verifica backup e stato del supporto e segui la procedura specifica. Se vi sono errori di lettura o sospetti guasti hardware, valuta prima la salvaguardia dei dati e non continuare con tentativi di riparazione alla cieca.

Opzioni del front-end e codici di uscita

Opzione Significato
-t tipo Specifica i tipi da controllare; con -A seleziona quelli corrispondenti. Non converte il file system.
-A Esamina i file system configurati in /etc/fstab secondo le regole dei passaggi di controllo; può coinvolgere più volumi.
-N Mostra ciò che verrebbe eseguito senza avviare i controllori.
-M Salta i file system montati e per quelli saltati restituisce 0.
-V Mostra dettagli, compresi i comandi dei controllori effettivamente eseguiti.

Distingui -N maiuscola da -n minuscola: l'anteprima non effettua una diagnosi, mentre il controllo senza modifiche legge il file system tramite il controllore. -V da solo non impedisce l'esecuzione. Anche un risultato 0 con -M può significare che il volume montato è stato saltato, non che sia stato verificato.

Con -A, le voci di /etc/fstab con il sesto campo fs_passno pari a 0 vengono saltate; i valori positivi determinano l'ordine. Non usare questa opzione come prova limitata al solo disco che stai esaminando. Nella normale attivazione gestita da systemd, i controlli possono invece essere avviati per singolo dispositivo secondo le dipendenze.

Lo stato di uscita di fsck è composto da condizioni rappresentate da bit. I valori principali sono 0 nessun errore, 1 errori corretti, 2 riavvio richiesto, 4 errori non corretti, 8 errore operativo, 16 errore d'uso o sintassi, 32 annullamento e 128 errore di libreria condivisa. Più condizioni possono combinarsi: 3 combina 1 e 2. Per controlli su più volumi viene usato l'OR bit per bit dei risultati. Conserva il codice prima di eseguire un altro comando e confrontalo con il manuale del programma effettivo.

Pianificare una riparazione

Prima di una riparazione verifica un backup recente e ripristinabile su un supporto diverso. Arresta le applicazioni interessate e lavora sul file system smontato. La radice del sistema, normalmente in uso, può richiedere un ambiente di recupero o live: la semplice chiusura di un'applicazione non rende la radice disponibile per una riparazione.

Su RAID, un insieme di dischi presentato come un volume, e su LVM (Logical Volume Manager, gestore dei volumi logici), controlla come il volume è costruito. I livelli di cifratura e storage determinano quale dispositivo contiene realmente il file system. Un SSD, cioè un'unità a stato solido, non cambia la necessità di scegliere il volume e il controllore corretti.

Per XFS, fsck.xfs normalmente termina senza eseguire il controllo richiesto a un riparatore offline. Un suo esito positivo non certifica l'assenza di problemi. Usa la documentazione di xfs_repair e la procedura di recupero del sistema; non copiare opzioni da e2fsck. In particolare, le opzioni che azzerano il registro XFS possono perdere dati e non vanno aggiunte per superare un errore senza una valutazione specifica.

Dopo un intervento conserva log e codice di uscita, verifica i risultati e gli eventuali controlli successivi richiesti dal programma. Prima di riattivare il servizio controlla montaggio e applicazione, non soltanto il messaggio finale del controllore. Non c'è un generico comando di annullamento che sostituisca il backup.

Domande frequenti

Posso eseguire fsck su un file system montato?

Una riparazione sul volume montato può corrompere i dati. In generale verifica il volume smontato o da un ambiente di recupero e segui le istruzioni del formato. Anche e2fsck con -n su un volume montato non fornisce risultati validi per giudicarne la coerenza.

Documentazione di riferimento

Il manuale fsck di util-linux descrive il front-end, le opzioni e gli stati di uscita. Il manuale e2fsck di e2fsprogs chiarisce i controlli ext e i limiti sui volumi montati. Per XFS consulta i manuali di fsck.xfs e xfs_repair.