Come usare il comando fsck in Linux?

Il comando fsck (file system consistency check) è un’utilità per controllare e riparare un Filesystem Linux. I moderni file system con journaling sono progettati in modo tale che strumenti come fsck non siano prontamente richiesti. Tuttavia, in alcuni casi, fsck potrebbe essere l’unica opzione per riparare un filesystem ‘cattivo’.

fsck può essere eseguito su una partizione danneggiata o incoerente con il resto del filesytem.

Motivi per cui fsck potrebbe essere richiesto

  • Arresto impuro-Questa è la principale causa di corruzione. A causa di un ‘arresto impuro’, il sistema potrebbe non riuscire ad avviarsi correttamente
  • Errore o danneggiamento dell’unità

Indice

Ambienti in cui NON dovresti usare fsck

Poiché il comando funziona direttamente con i settori del file system, è importante prendere le precauzioni necessarie qui.

la pagina man di e2fsck dice:

Si noti che in generale non è sicuro eseguire e2fsck su filesystem montati. L’unica eccezione è se l’opzione-n è specificata e le opzioni-c,- l o-L non sono specificate. Tuttavia, anche se è sicuro farlo, i risultati stampati da e2fsck non sono validi se il filesystem è montato. Se e2fsck chiede se è necessario controllare o meno un filesystem montato, l’unica risposta corretta è “no”.

https://www.man7.org/linux/man-pages/man8/e2fsck.8.html

Quindi, devi fare fsck su una partizione non montata. Se è possibile smontare la partizione utilizzando umount, bene e bene. Altrimenti devi cambiare il tuo ambiente:

1. Modalità di ripristino

(Per Ubuntu – Hold SHIFT durante l’avvio per entrare in GRUB, Selezionare ‘Opzioni avanzate per Ubuntu’, quindi selezionare l’opzione denominata ‘modalità di ripristino’, quindi selezionare fsck). Nella modalità di ripristino, le partizioni sono montate.

Modalità di recupero Fsck
Modalità di recupero fsck

2. Durante l’utilizzo del parametro kernel init=/bin/bash

( tenere premuto SHIFT durante l’avvio per entrare in GRUB, premere e per modificare i parametri del kernel). Fornisce una shell bash da cui è possibile eseguire fsck ma anche qui vengono montate le partizioni.

Parametro del kernel Init
Parametro del kernel Init

Come usare il comando fsck?

Con le basi chiare, passiamo ai passaggi su come utilizzare il comando fsck in Linux.

1. Utilizzo di base di

Prima di iniziare con l’uso del comando, assicurarsi che si sta lavorando su una partizione smontata. Per smontare una partizione e quindi eseguire fsck su di essa digitare :

$ sudo umount /dev/<partition_name>$ fsck /dev/<partition_name>

È probabile che tu non possa smontare la partizione. In tal caso, è possibile scegliere uno dei seguenti metodi.

2. Esecuzione di fsck utilizzando un live USB

Questo è probabilmente il modo migliore per eseguire fsck. Fornisce un ricco set di strumenti familiari come fdisk. Utilizzare questo tutorial per creare un live Ubuntu USB. Questa parte presuppone che si sta eseguendo Linux da un Live USB.

Per elencare tutte le partizioni del sistema, è possibile utilizzare il comando fdisk.

$ sudo fdisk -l
Partizioni Nvme
Partizioni NVMe SSD
Partizioni SSD Sata
Partizioni SSD SATA

Nota: le partizioni mostrate sopra (per 2 SSD, un NVMe e altri SATA) potrebbero essere diverse da quelle presenti sul sistema. fdisk stampa anche ulteriori informazioni sulle partizioni. Tuttavia, ai fini di questo articolo, il nome della partizione è sufficiente.

Identifica la partizione che sta causando problemi, quindi esegui semplicemente:

$ fsck /dev/<partition_name>

Questo dovrebbe risolvere il problema.

3. Utilizzo di initramfs

Un altro modo per utilizzare il comando fsck è in modalità intramfs. Per entrare in initramfs

  1. Tenere premuto il tasto SHIFT durante l’avvio per entrare nel menu GRUB.
  2. Premere e per modificare la voce di avvio
  3. Aggiungere il parametro del kernel come ‘break‘, come mostrato nello screenshot qui sotto
  4. Premere Ctrl - X per salvare e uscire
Entrare In Initramfs
Entrare In Initramfs

initramfs fornisce un ‘meno seducente modo di risoluzione dei problemi.

Le partizioni non sono montate in initramfs, quindi eseguire fsck sarebbe sicuro. Inoltre, è necessario il nome della partizione. Initramfs, tuttavia, fornisce un minimo di utilità. Quindi fdisk non sarà disponibile. È possibile elencare le partizioni con il comando cat, come illustrato di seguito:

$ cat /proc/partitions

Individuare la partizione e quindi eseguire:

$ fsck /dev/<partition_name>
Initramfs Fschk
Initramfs Fsck

Nota: fsck utilizzando la Live USB potrebbero non essere sempre disponibili. In tal caso utilizzare il metodo initramfs.

Come verificare se fsck è programmato o meno

Potresti voler sapere quando è stata controllata l’ultima volta la tua partizione o quando lo sarà in futuro. In tal caso, corri:

$ sudo tune2fs -l /dev/<partition_name> | egrep -i 'check|mount'
Controlla Fsck 1
Controlla Fsck
  • Il numero massimo di mount è il numero di mount dopo il quale il filesystem verrà controllato automaticamente da fsck.
  • Intervallo di controllo è il tempo tra due controlli del filesystem.

Questi due valori sono sufficienti per identificare l’ultima esecuzione del comando fsck.

Differenza tra fsck e e2fsck

Potresti trovare risposte/articoli diversi che ti chiedono di eseguire e2fsck o fsck.ext4 piuttosto che fsck. Che differenza fa se si esegue uno di questi strumenti invece di fsck?

fsck è solo un frontend per tutti i comandi fsck specifici del filesystem come i due mostrati sopra (un wrapper se si potrebbe dire). Invocare fsck richiama automaticamente il file system corretto specifico fsck. Vediamo quali tutti fsck ci sono sul nostro sistema:

$ ls -l /sbin/fsck*
Diversi Fscks
Elenco di tutti i fsck

Eseguendo fsck su una partizione ext2/3/4 viene eseguito il rispettivo eseguibile /sbin/fsck.ext* . Questi eseguibili a loro volta sono collegamenti rigidi all’eseguibile e2fsck. Quindi, anche se si esegue fsck su una partizione ext4, alla fine verrà eseguito e2fsck.

Conclusione

In questo tutorial abbiamo coperto fsck che è uno strumento utile per il recupero di filesystem. Per ulteriori informazioni sul comando fsck, guarda la sua pagina man.

Leave a Reply