Tutti i nostri dati importanti risiedono in un file system di un tipo o dell'altro, e sono probabili problemi di file system. En Linux, possiamo usare il fsck
comando 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 filesystem, il computer non può memorizzare alcun dato su un disco rigido, un disco meccanico rotante o un disco a stato solido. In realtà, è necessario creare un file system prima di poter installare il sistema operativo sul disco rigido. Ci deve essere qualcosa per salvare i file del sistema operativo. Perché, un file system viene creato durante la procedura di installazione.
I file system sono creati dal software, scritto dal software e letto dal software. Come sapete, tutto il software complesso ha dei bug. I nostri dati sono di vitale 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 una partizione completa.
I moderni file system 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 invincibile. Se le tue tabelle interne sono codificate, possono perdere traccia di dove risiede ciascun file sull'unità, Che taglia ha, che nome ha e quali permessi di file sono impostati su di essi.
il fsck
Il comando ti consente di verificare che i tuoi file system siano integri. Se trovi qualche problema, regolarmente può anche aggiustarlo per te.
Eseguire i controlli pre-volo
Usando fsck
bisogno dei privilegi sudo. Qualsiasi comando in grado di apportare modifiche a un file system dovrebbe essere trattato con cautela e limitato a coloro che sanno cosa stanno facendo.
I piloti non salgono su un aereo, Lo accendono e volano verso l'azzurro pallido laggiù. Eseguono i controlli pre-volo. La posta in gioco è alta per fare il contrario. È una buona abitudine da sviluppare. Prima di usare fsck
devi assicurarti di usarlo nell'unità corretta. Quindi, prima di fare qualcosa con fsck
, facciamo un po' di accredito.
Inizieremo con fdisk
e incanalalo in less
. Non stiamo richiedendo informazioni su una partizione specifica. Usando il -l
opzione (pronto) fdisk
elenca le tabelle delle partizioni su tutti i dispositivi trovati nel file “/ proc / partizioni”, 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.
Le partizioni in /dev/sda
sono elencati come /dev/sda1
, /dev/sda2
, e /dev/sda3
. Quindi abbiamo tre partizioni sul primo disco. Possiamo vedere un po' più di informazioni usando il parted
comando. Useremo il 'print'
opzione per mostrare le tabelle delle partizioni nella finestra del terminale.
sudo parted /dev/sda 'print'
Questa volta otteniamo ulteriori informazioni, incluso il tipo di file system su ciascuna partizione.
Modello: DISCO RIGIDO ATA VBOX (scsi) Disco /dev/sda: 34.4GB Sector size (logico/fisico): 512B/512B Partition Table: gpt Disk Flags: Numero Inizio Fine Dimensione Nome del file system Flag 1 1049kB 2097 kB 1049 kB bios_grub 2 2097kB 540 MB 538 MB fat32 Avvio della partizione di sistema EFI, spec 3 540MB 34,4 GB 33,8 GB est4
Ci sono tre unità in questo computer di prova. Questi i risultati delle altre due unità. /dev/sdb
e /dev/sdc
. Tieni presente che questi file system non hanno il campo “Nome”.
sudo parted /dev/sdb 'stampa'
Modello: DISCO RIGIDO ATA VBOX (scsi) Disco /dev/sdb: 21.5GB Sector size (logico/fisico): 512B/512B Partition Table: msdos Disk Flags: Numero Inizio Fine Dimensione Tipo File system Flag 1 1049kB 21,5 GB 21,5 GB primario ext4
sudo parted /dev/sdc 'stampa'
Modello: DISCO RIGIDO ATA VBOX (scsi) Disco /dev/sdc: 21.5GB Sector size (logico/fisico): 512B/512B Partition Table: msdos Disk Flags: Numero Inizio Fine Dimensione Tipo File system Flag 1 1049kB 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 della seconda unità è ext4
e il file system della terza unità è il più vecchio ext3
.
Passiamo un identificatore di partizione a fsck
e controlla il file system di quella partizione. Ma non possiamo scappare fsck
su un filesystem montato. Dobbiamo smontare l'unità. Fare quello, dobbiamo conoscere il punto di montaggio in cui è montata la partizione e, perché, il file system.
Possiamo scoprirlo facilmente utilizzando il df
comando.
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 filesystem nel primo (e solo) partizione di /dev/sdb
, quale /dev/sdb1
. Abbiamo visto prima che questo è un ext4
File System, ed è montato “/ correre / montare / dave / sata2”.
Useremo il umount
comando. non è negativo quindici “n” Su “smontare”.
sudo umount /run/mount/dave/sata2
Insieme a umount
, L'assenza di cattive notizie è una buona notizia. Se torni silenziosamente al prompt dei comandi, siamo pronti per iniziare.
sudo fsck /dev/sdb1
Questo file system è segnalato come pulito. Ciò significa che il file system non segnala errori o problemi. Non viene eseguito automaticamente un controllo più approfondito del file system. Possiamo anche guardare il codice di ritorno che fsck
tornato al guscio.
eco $?
Il valore restituito pari a zero indica che non ci sono errori. I possibili codici di ritorno sono:
- 0: Senza errori
- 1: Risolti errori del file system
- 2: Il sistema deve riavviarsi
- 4: Errori del file system che non sono stati corretti
- 8: Errore operativo
- sedici: Errore di utilizzo o di sintassi
- 32: Verifica annullata su richiesta dell'utente
- 128: Errore libreria condivisa
Sebbene il file system sia segnalato come pulito, possiamo forzare l'esecuzione di un controllo del file system, usando il -f
Opzione (forza).
sudo fsck /dev/sdb1 -f
Questa volta, il controllo richiede più tempo per essere completato, ma fai un test più approfondito del filesystem. Il nostro file system era veramente pulito e non sono stati segnalati errori. Se vengono rilevati problemi durante il test, ti verrà chiesto di consentire fsck
risolvere il problema o ignorare l'errore.
Quando hai finito di testare, devi rimontare il filesystem. Il modo più semplice per farlo è usare mount
con il -a
(tutti) opzione. Questo controlla "/ etc / fstab ”l'elenco dei filesystem e si assicura che siano tutti montati come farebbero dopo un normale avvio.
sudo mount -a
Tieni presente che non è necessario che ti venga detto. fsck
che tipo di filesystem c'è su una partizione; l'utilità lo determina esaminando il file system. Ciò significa che possiamo forzare un controllo del filesystem su /dev/sdc1
, il ext3
file system sul nostro PC di prova, usando esattamente lo stesso comando che usiamo in /dev/sdb1
, cos'è un? ext4
Condividere.
sudo fsck /dev/sdc1 -f
Potresti non voler tuffarti direttamente nella riparazione del file system. Forse preferisci guardare prima di saltare. Puoi chiedere fsck
non offrire di risolvere nulla e segnalare i problemi alla finestra del terminale. il -N
L'opzione (funzionamento a secco) fa esattamente questo:
sudo fsck -N /dev/sdb1
Il contrario di questo è contare fsck
quindi non preoccuparti di chiedere se trovi qualche bug, e vai avanti e aggiustalo. Per fare questo, usa el -y
(nessun avviso) opzione.
sudo fsck -y /dev/sdb1
Utilizzo di fsck sulla partizione di root
Non puoi usare fsck
su una partizione montata, ma per avviare il computer, la partizione di root deve essere montata. Quindi, Come possiamo correre?? fsck
sulla partizione di root? La soluzione è interrompere la procedura di avvio ed eseguire fsck
in modalità di ripristino.
Mentre il computer si avvia, torna nella scheda “Spostare”. Se l'hai cronometrato correttamente, non si avvia in Linux. La procedura di avvio si fermerà a un menu in bianco e nero. La macchina di prova utilizzata per questo post stava eseguendo Ubuntu, ma altre distribuzioni hanno lo stesso tipo di menu, anche se può variare nell'aspetto. Dove dice “Ubuntu” negli screenshot, avrà il nome della tua distribuzione.
Spostare la barra evidenziata con i tasti “Freccia su” e “Freccia in giù” per selezionare la voce di menu “Opzioni avanzate per Ubuntu”. premere “accedere” per passare alla schermata successiva.
Seleziona l'opzione che termina con “(modalità di recupero)”. Nel nostro esempio, è “Ubuntu, con Linux 5.11.0-20-generico (modalità di recupero)”. Premi il tasto “accedere”.
Vedrai il menu di ripristino. Si prega di selezionare “fsck controlla tutti i file system” e premere il tasto “tab” per spostare l'evidenziazione sul pulsante “Accettare”. premere “accedere”.
Vedrai una notifica che la partizione di root verrà montata insieme a qualsiasi altra partizione impostata nel tuo file "/ etc / fstab”.
Premi il tasto “tab” per spostare l'evidenziazione sul pulsante “sì” e premi “Per entrare”.
Vedrai fsck
eseguire in modalità interattiva. Se ci sono problemi, ti verrà chiesto di andartene fsck
correggili o ignorali. Quando i file system sono stati verificati, vedrai di nuovo il menu di ripristino.
Selezionare l'opzione “riprendere”, premere il tasto “tab” per spostare l'evidenziazione sul pulsante “Accettare” e premi “Per entrare”. La procedura di avvio riprenderà e si avvierà in Linux.
L'avvio della modalità di ripristino può influire su alcuni driver, quindi è buona norma riavviare un'altra volta, appena avvio linux. Ciò garantisce che il tuo computer funzioni come standard..
Quando le cose vanno male
Le reti di sicurezza esistono per un motivo. Sapere il fsck
comando. Se c'è bisogno di usarlo con rabbia un giorno, sarai felice di averti conosciuto in anticipo.