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.
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.
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
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
- Tenere premuto il tasto
SHIFT
durante l’avvio per entrare nel menu GRUB. - Premere
e
per modificare la voce di avvio - Aggiungere il parametro del kernel come ‘
break
‘, come mostrato nello screenshot qui sotto - Premere
Ctrl - X
per salvare e uscire
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>
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'
- 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*
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