Come utilizzare il comando fsck su Linux

Pubblicato: 2022-01-29
Un'unità disco fisso con sopra scritto codice binario.
Pixza Studio/Shutterstock

Tutti i nostri dati importanti si trovano in un file system di un tipo o dell'altro e sono destinati a verificarsi problemi di file system. Su Linux, possiamo usare il comando fsck per trovare e correggere gli errori del file system.

I file system sono software

I file system sono uno dei componenti più critici di un computer. Senza un file system, il computer non può archiviare dati su un disco rigido, sia che si tratti di un piatto meccanico rotante o di un'unità a stato solido. In effetti, è necessario creare un file system prima che il sistema operativo possa essere installato sul disco rigido. Deve esserci qualcosa in cui archiviare i file del sistema operativo. Quindi viene creato un file system durante il processo di installazione.

10 comandi di base di Linux per principianti
CORRELATI 10 comandi Linux di base per principianti

I file system vengono creati dal software, scritti dal software e letti dal software. Come sai, tutti i software complessi hanno dei bug. I nostri dati sono di fondamentale importanza per noi, quindi riponiamo molta fiducia nei file system e nel software che li crea e li utilizza. Se qualcosa va storto, possiamo perdere l'accesso a parti del file system o persino a un'intera partizione.

I moderni file system di journaling sono più efficaci nella gestione dei problemi che possono essere causati da un'improvvisa perdita di alimentazione o da un arresto anomalo del sistema. Sono robusti, ma non sono invincibili. Se le loro tabelle interne vengono codificate, possono perdere traccia di dove risiede ciascun file sull'unità, che dimensione ha, che nome ha e quali autorizzazioni per i file sono impostate su di esse.

Il comando fsck ti consente di verificare che i tuoi file system siano integri. Se trova problemi, di solito può risolverli anche per te.

Fai i controlli preliminari

L'uso di fsck richiede i privilegi sudo. Qualsiasi comando che può apportare modifiche a un file system deve essere trattato con cautela e limitato a coloro che sanno cosa stanno facendo.

Annuncio pubblicitario

I piloti non saltano su un aereo, lo avviano e volano via nell'azzurro pallido laggiù. Fanno controlli pre-volo. C'è troppo in gioco per fare altrimenti. È una buona abitudine da sviluppare. Prima di usare fsck devi assicurarti di usarlo sull'unità corretta. Quindi, prima di fare qualsiasi cosa con fsck , faremo un po' di ricognizione.

Inizieremo con fdisk e lo convogliamo in less . Non stiamo chiedendo informazioni su una partizione specifica. Utilizzando l'opzione -l (list) fdisk elenca le tabelle delle partizioni su tutti i dispositivi che trova nel file "/proc/partitions", se esiste.

 sudo fdisk -l | meno 

Possiamo vedere le voci per /dev/sda e /dev/sdb . Puoi scorrere il file per vedere tutte le altre voci che potrebbero esistere sul tuo computer.

Osservare l'output nella finestra del terminale

Le partizioni su /dev/sda sono elencate come /dev/sda1 , /dev/sda2 e /dev/sda3 . Quindi abbiamo tre partizioni sul primo disco. Possiamo vedere un po' più di informazioni usando il comando parted . Useremo l'opzione 'print' per visualizzare le tabelle delle partizioni nella finestra del terminale.

 sudo parted /dev/sda 'print' 

Ottieni informazioni sulle tabelle delle partizioni

Questa volta otteniamo alcune informazioni extra, incluso il tipo di file system su ciascuna partizione.

 Modello: ATA VBOX HARDDISK (scsi) 
Disco /dev/sda: 34,4 GB 
Dimensione del settore (logico/fisico): 512B/512B 
Tabella delle partizioni: gpt 
Flag del disco:

Numero Inizio Fine Dimensione Nome del file system Flag 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 Avvio partizione di sistema EFI, esp 
3 540 MB 34,4 GB 33,8 GB est4
Annuncio pubblicitario

Ci sono tre unità in questo computer di prova. Questi sono i risultati per le altre due unità /dev/sdb e /dev/sdc . Si noti che questi file system non hanno il campo "Nome".

 sudo parted /dev/sdb 'stampa'
 Modello: ATA VBOX HARDDISK (scsi) 
Disco /dev/sdb: 21,5 GB 
Dimensione del settore (logico/fisico): 512B/512B 
Tabella delle partizioni: msdos 
Flag del disco:

Numero Inizio Fine Dimensione Tipo File system Flag 
1 1049 kB 21,5 GB 21,5 GB primario ext4
 sudo parted /dev/sdc 'stampa'
 Modello: ATA VBOX HARDDISK (scsi) 
Disco /dev/sdc: 21,5 GB 
Dimensione del settore (logico/fisico): 512B/512B 
Tabella delle partizioni: msdos 
Flag del disco:

Numero Inizio Fine Dimensione Tipo File system Flag
1 1049 kB 21,5 GB 21,5 GB primario ext3

La seconda e la terza unità hanno le stesse dimensioni e ciascuna ha una singola partizione. Ma il file system sulla seconda unità è ext4 e il file system sulla terza unità è il vecchio ext3 .

Come montare e smontare i dispositivi di archiviazione dal terminale Linux
CORRELATI Come montare e smontare i dispositivi di archiviazione dal terminale Linux

Passiamo un identificatore di partizione a fsck e controlla il file system su quella partizione. Ma non possiamo eseguire fsck su un file system montato. Dobbiamo smontare l'unità. Per fare ciò abbiamo bisogno di conoscere il punto di montaggio su cui è montata la partizione, e quindi il file system.

Possiamo scoprirlo facilmente usando il comando df .

 df /dev/sdb1
 df /dev/sdc1 

Usando il comando fsck

Abbiamo tutte le informazioni di cui abbiamo bisogno. La prima cosa che faremo è smontare il file system che andremo a controllare. Lavoreremo sul file system sulla prima e unica partizione di /dev/sdb , che è /dev/sdb1 . Abbiamo visto in precedenza che questo è un file system ext4 ed è montato su "/run/mount/dave/sata2".

Useremo il comando umount . Nota che non c'è "n" in "umount".

 sudo smonta /run/mount/dave/sata2 

Utilizzare il comando umount per smontare il filesystem.

Annuncio pubblicitario

Con umount , nessuna notizia è una buona notizia. Se torni silenziosamente al prompt dei comandi, siamo a posto.

 sudo fsck /dev/sdb1 

Utilizzare il comando fsck per controllare lo stato del filesystem.

Questo file system viene segnalato come pulito. Ciò significa che il file system sta segnalando che non ha errori o problemi. Un controllo più approfondito del file system non viene eseguito automaticamente. Possiamo anche guardare il codice di ritorno che fsck ha restituito alla shell.

 eco $? 

Il valore di ritorno di zero indica nessun errore. I possibili codici di reso sono:

  • 0 : Nessun errore
  • 1 : Errori del filesystem corretti
  • 2 : Il sistema dovrebbe essere riavviato
  • 4 : Errori del filesystem non corretti
  • 8 : Errore operativo
  • 16 : Errore di utilizzo o di sintassi
  • 32 : Controllo annullato su richiesta dell'utente
  • 128 : Errore di libreria condivisa

Nonostante il file system venga segnalato come pulito, possiamo forzare l'esecuzione di un controllo del file system, utilizzando l'opzione -f (force).

 sudo fsck /dev/sdb1 -f 

Forza un controllo del filesystem usando l'opzione force in un comando fsck

Questa volta, il completamento del controllo richiede più tempo ma esegue un test più approfondito del file system. Il nostro file system era effettivamente pulito e non vengono segnalati errori. Se vengono rilevati problemi durante lo svolgimento dei test, ti verrà chiesto di consentire a fsck di risolvere il problema o di ignorare l'errore.

Al termine del test, è necessario rimontare il file system. Il modo più semplice per farlo è usare mount con l'opzione -a (all). Questo controlla "/etc/fstab" per l'elenco dei file system e si assicura che siano tutti montati proprio come farebbero dopo un normale avvio.

 sudo mount -a 

Rimontare il file system utilizzando il comando mount

Quale file system Linux dovresti usare?
CORRELATO Quale file system Linux dovresti usare?

Si noti che non è necessario dire a fsck quale tipo di file system si trova su una partizione; l'utilità lo determina esaminando il file system. Ciò significa che possiamo forzare un controllo del file system su /dev/sdc1 , il file system ext3 sul nostro PC di prova, utilizzando esattamente lo stesso comando che abbiamo usato su /dev/sdb1 , che è una partizione ext4 .

 sudo fsck /dev/sdc1 -f 

Utilizzare il comando fsck per forzare un controllo del file system

Annuncio pubblicitario

Potresti non voler tuffarti direttamente nella correzione del file system. Potresti preferire guardare prima di saltare. Puoi chiedere a fsck di non offrire di riparare nulla e di segnalare semplicemente i problemi alla finestra del terminale. L'opzione -N (corsa a secco) fa proprio questo:

 sudo fsck -N /dev/sdb1 

Prima di riparare un file system, eseguire una prova a secco

L'opposto è dire a fsck di non preoccuparsi di chiedere se trova errori e di andare avanti e risolverli. Per fare ciò, usa l'opzione -y (nessun prompt).

 sudo fsck -y /dev/sdb1

Utilizzo di fsck sulla partizione di root

Non puoi usare fsck su una partizione montata, ma per avviare il tuo computer la partizione di root deve essere montata. Quindi, come possiamo eseguire fsck sulla partizione di root? La risposta è interrompere il processo di avvio ed eseguire fsck in modalità di ripristino.

Durante l'avvio del computer, tieni premuto il tasto "Maiusc". Se hai cronometrato correttamente, non ti avvierai in Linux. Il processo di avvio si fermerà in un menu in bianco e nero. La macchina di prova utilizzata per questo articolo eseguiva Ubuntu, ma altre distribuzioni hanno lo stesso tipo di menu, sebbene possa variare nell'aspetto. Dove dice "Ubuntu" negli screenshot avrà il nome della tua distribuzione.

Menu di ripristino con la voce di menu delle opzioni avanzate selezionata

Spostare la barra di evidenziazione con i tasti "Freccia su" e "Freccia giù" in modo che la voce di menu "Opzioni avanzate per Ubuntu" sia selezionata. Premi "Invio" per passare alla schermata successiva.

Menu di ripristino con la voce di menu "modalità di ripristino" selezionata

Annuncio pubblicitario

Seleziona l'opzione che termina con "(modalità di ripristino)". Nel nostro esempio, è "Ubuntu, con Linux 5.11.0-20-generico (modalità di ripristino)". Premi il tasto "Invio".

Vedrai il menu di ripristino. Seleziona "fsck controlla tutti i file system" e premi il tasto "Tab" per spostare l'evidenziazione sul pulsante "OK". Premere Invio."

Menu di ripristino con fsck selezionato

Vedrai una notifica che la partizione di root verrà montata insieme a qualsiasi altra partizione definita nel tuo file "/etc/fstab".

Selezionare yes per avviare fsck in modalità interattiva

Premere il tasto "Tab" per spostare l'evidenziazione sul pulsante "Sì" e premere "Invio".

Vedrai fsck eseguito in modalità interattiva. Se ci sono problemi ti verrà chiesto di lasciare che fsck li risolva o di ignorarli. Quando i file system sono stati controllati, vedrai di nuovo il menu di ripristino.

Seleziona l'opzione "riprendi", premi il tasto "Tab" per spostare l'evidenziazione sul pulsante "Ok" e premi "Invio". Il processo di avvio riprenderà e avvierai Linux.

Annuncio pubblicitario

L'avvio in modalità di ripristino può influire su alcuni driver, quindi è buona norma riavviare ancora una volta, non appena si avvia Linux. Ciò garantisce che il computer funzioni nel modo standard.

Quando le cose vanno male

Le reti di sicurezza sono lì per un motivo. Impara a conoscere il comando fsck . Se un giorno si presenta la necessità di usarlo con rabbia, sarai felice di aver familiarizzato in anticipo.

CORRELATI: I migliori laptop Linux per sviluppatori e appassionati