CodeGym /Corsi /Docker SELF /Controllo e riparazione del file system: comandi fsck

Controllo e riparazione del file system: comandi fsck

Docker SELF
Livello 6 , Lezione 2
Disponibile

1. Perché è importante controllare il file system?

Il file system in Linux è in realtà uno dei "lavoratori" più impegnati del sistema operativo. È operativo mentre salvi i file, apri programmi o semplicemente leggi dati. Ora immagina: nel momento più cruciale, questo lavoratore si stanca e decide di svenire (cioè: il sistema si spegne a causa di un'interruzione dell'elettricità). Questo può portare a danni alla tabella dei file, perdita di dati o molte altre problematiche fastidiose.

Ma cosa può andare storto?

  1. Interruzione improvvisa della corrente — il tuo dispositivo si è spento all'improvviso senza completare il salvataggio dei dati.
  2. Errore di archiviazione — il disco rigido o SSD potrebbe avere guasti hardware che danneggiano il file system.
  3. Errori software — non si possono escludere bug nei driver o nelle utility di sistema.

Spesso, dopo eventi del genere, il file system si danneggia e il sistema stesso potrebbe chiederti di controllarne lo stato. Ed è qui che entra in gioco fsck, che sta per File System Check.


2. Cos'è fsck e come funziona?

Idea dello strumento

fsck — è un'utility universale che controlla l'integrità del file system e risolve eventuali errori rilevati. Funziona come un dottore: esegue test, individua il problema e, se possibile, lo "cura". Se il problema è troppo grave, fsck almeno può diagnosticare cosa esattamente è andato storto.

Quando si usa fsck?

  1. In caso di evidenti malfunzionamenti dei file (ad esempio, spariti improvvisamente).
  2. Se il sistema non si avvia e segnala un errore del file system.
  3. Per manutenzione regolare, per assicurarsi che tutto sia a posto.

3. Sintassi principale di fsck

Per usare fsck generalmente si utilizza il seguente comando:

fsck [opzioni] <dispositivo>

Opzioni principali:

  • -y — Confermare automaticamente le correzioni. È comodo se non vuoi stare a premere yes per ogni domanda.
  • -n — Solo controllo, senza correzioni (dry run). Utile per analizzare la situazione se hai paura di fare danni.
  • -t — Specificare il tipo di file system (ad esempio, ext4, xfs).
  • -r — Abilitare la modalità interattiva (confermerai ogni correzione manualmente).

4. Pratica: controllo del file system

Cominciamo con un semplice controllo. Supponiamo di avere un dispositivo /dev/sdb1 che vogliamo controllare.

Step 1: Controllo senza correzioni

Per iniziare, valutiamo lo stato del file system senza apportare modifiche:

fsck -n /dev/sdb1

Dopo aver eseguito il comando, vedrai un elenco di problemi riscontrati, se ce ne sono. Ecco un esempio di output:

Inodes che erano parte di una lista collegata orfana corrotta trovati.
Errori del file system rilevati. Esegui fsck per riparare.

Step 2: Correzione automatica

Ora attiviamo la modalità di correzione degli errori:

fsck -y /dev/sdb1

fsck tenterà di correggere ogni errore rilevato e confermerà automaticamente l'azione. Questo può richiedere un po' di tempo se il dispositivo è grande.


5. Cosa fare se il file system è in uso?

Errore quando si avvia fsck

Se provi ad avviare fsck su una partizione che è già montata, riceverai un avviso:

fsck: cannot check a mounted filesystem.

Questo accade perché il controllo di un file system montato può causare danni ai dati. Ci sono diversi modi per risolvere questo problema.

  1. Monta il dispositivo in modalità sola lettura.
mount -o remount,ro /dev/sdb1
  1. Usa LiveCD o LiveUSB.

Avvia il sistema da un disco di avvio o una chiavetta USB per eseguire il controllo sul dispositivo già smontato.

  1. Usa la modalità di recupero.

Riavvia il sistema in modalità di recupero, che di solito offre un ambiente sicuro per eseguire il controllo.

Caratteristiche del controllo del file system root /

Il file system root è un caso unico poiché è attivamente utilizzato dal sistema. Per avviare fsck su tale partizione, è necessario:

  1. Passare alla modalità utente singolo con il comando:
systemctl isolate rescue.target
  1. Avviare manualmente fsck:
fsck -y /

6. Errori comuni e come risolverli

Inodes danneggiati

Se fsck segnala inodes danneggiati (strutture che memorizzano informazioni sui file), suggerirà di eliminarli. È sicuro, dato che l'inode danneggiato non è più associato a file attuali.

File persi

A volte, dopo aver eseguito fsck, i file persi finiscono nella directory lost+found nella radice del file system. Puoi controllare manualmente questo posto per recuperare dati importanti.

Raccomandazioni importanti

  1. Esegui sempre backup prima del controllo. Sebbene fsck sia generalmente sicuro, le correzioni potrebbero portare alla perdita di dati.

  2. Non eseguire fsck su partizioni montate. Questo potrebbe causare danni ai dati.

  3. Usa il flag -n per un'analisi iniziale. Se non sei sicuro se correggere automaticamente gli errori, inizia con una corsa a secco.


7. Esempio: Simulazione di errore e correzione

  1. Crea un disco virtuale e crea su di esso un file system:
dd if=/dev/zero of=./disk.img bs=1M count=100
mkfs.ext4 ./disk.img
  1. Monta il disco:
sudo mount ./disk.img /mnt/test/
  1. Simula un danneggiamento:
sudo dd if=/dev/zero of=/mnt/test/randomfile bs=512 count=10
  1. Smonta il disco e controllalo:
sudo umount /mnt/test/
fsck ./disk.img

Seguendo i risultati del comando, correggi gli errori.

A questo punto hai una buona comprensione del controllo del file system, sei in grado di correggere correttamente gli errori e prevenire malfunzionamenti. Ci aspettano nuovi strumenti per lavorare con i file system, ma fsck è ora il tuo fedele strumento per la diagnostica e la correzione.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION