Alle vores vigtige data sidder i et filsystem af en type eller en anden, og filsystemproblemer er bundet til at ske. På Linux kan vi bruge
fsck.
kommando for at finde og fastsætte filsystemfejl.
Filsystemer er software
Filsystemer er en af de mest kritiske komponenter på en computer. Uden et filsystem kan computeren ikke gemme data på en harddisk, om dette drev er en spinning mekanisk plade eller a Solid State Drive . Faktisk skal der oprettes et filsystem, før operativsystemet kan installeres på harddisken. Der skal være noget for de operativsystemfiler, der skal gemmes i. Så der oprettes et filsystem under installationsprocessen.
Filsystemer er oprettet af software , skrevet til efter software og læs fra software. Som du ved, har alle komplekse software bugs. Vores data er kritisk vigtigt for os, så vi sætter meget tro på filsystemer og den software, der skaber og bruger dem. Hvis noget går galt, kan vi miste adgangen til dele af filsystemet eller endda en hel partition.
Moderne Journaling File Systems. er bedre til at håndtere problemer, der kan skyldes et pludseligt tab af magt eller et systemkrasj. De er robuste, men de er ikke uovervindelige. Hvis deres Interne tabeller bliver krypteret De kan miste sporet af, hvor hver fil er bosat på drevet, hvilken størrelse det er, hvilket navn det har, og hvilke filtilladelser der er indstillet på dem.
Det
fsck.
Kommando giver dig mulighed for at kontrollere, at dine filsystemer er sunde. Hvis det finder nogen problemer, kan det normalt rette dem for dig også.
Gør preflight checks
Ved brug af
fsck.
kræver
sudo privilegier
. Enhver kommando, der kan foretage ændringer i et filsystem, skal behandles med forsigtighed og begrænses til dem, der ved, hvad de laver.
Piloter hopper ikke ind i et fly, start det op og flyver ud i den lyseblå yonder. De gør preflight checks. Der er for meget på spil at gøre ellers. Det er en god vane at udvikle sig. Før du bruger
fsck.
Du skal sikre, at du vil bruge den på det rigtige drev. Så før du gør noget med
fsck.
Vi skal gøre en smule rekognoscering.
Vi starter med
fdisk.
og rør det i
mindre
. Vi beder ikke om oplysninger om en bestemt partition. Ved at bruge
-L.
(liste) mulighed
fdisk.
Lister partitionstabellerne på alle enheder, som den finder i filen "/ Proc / Partitions", hvis den eksisterer.
sudo fdisk -l | Mindre
Vi kan se posterne for
/ dev / sda
og
/ dev / sdb
. Du kan rulle gennem filen for at se andre poster, der måtte eksistere på din computer.
Partitionerne på
/ dev / sda
er opført som
/ dev / sda1
Vi
/ dev / sda2
, og.
/ dev / sda3
. Så vi har tre partitioner på den første drev. Vi kan se lidt mere information ved at bruge
delt
kommando. Vi bruger
'Print'
Mulighed for at vise partitionstabellerne i terminalvinduet.
sudo skilt / dev / sda 'print'
Vi får nogle ekstra oplysninger denne gang, herunder typen af filsystem på hver partition.
Model: Ata Vbox harddisk (SCSI) Disk / DEV / SDA: 34.4GB Sektorstørrelse (Logisk / Fysisk): 512B / 512B Partitionstabel: GPT Disk flag: Nummer Start End Size File System Navn Flags 1 1049kb 2097kb 1049kb BIOS_GRUB 2 2097KB 540MB 538MB FAT32 EFI SYSTEM PARTITION BOOT, ESP 3 540 MB 34,4 GB 33,8 GB EXT4
Der er tre drev i denne testcomputer. Dette er resultaterne for de to andre drev
/ dev / sdb
og
/ dev / sdc
. Bemærk, at disse filsystemer ikke har noget "navn" felt.
sudo skilt / dev / sdb 'print'
Model: Ata Vbox harddisk (SCSI) Disk / DEV / SDB: 21,5 GB Sektorstørrelse (Logisk / Fysisk): 512B / 512B Partition Tabel: MSDOS Disk flag: Nummer Start End Size Type File System Flags 1 1049kb 21,5 GB 21,5 GB Primary EXT4
sudo skilt / dev / sdc 'print'
Model: Ata Vbox harddisk (SCSI) Disk / DEV / SDC: 21,5 GB Sektorstørrelse (Logisk / Fysisk): 512B / 512B Partition Tabel: MSDOS Disk flag: Nummer Start End Size Type File System Flags 1 1049kb 21,5 GB 21,5 GB primær ext3
Det andet og tredje drev tilfældigvis er den samme størrelse, og hver har en enkelt partition. Men filsystemet på det andet drev er
ext4.
, og filsystemet på det tredje drev er den ældre
ext3.
.
Vi passerer en partitionidentifikator til
fsck.
, og det kontrollerer filsystemet på den partition. Men vi kan ikke løbe
fsck.
på et monteret filsystem. Vi skal afmontere drevet. For at gøre det skal vi kende Mount Point, som partitionen - og derfor filsystemet - er monteret på.
Vi kan finde ud af det nemt at bruge
DF
kommando.
DF / DEV / SDB1
DF / DEV / SDC1
Brug af FSCK-kommandoen
Vi har alle de oplysninger, vi har brug for. Det første, vi vil gøre, er at afmontere filsystemet, vi skal tjekke. Vi skal arbejde på filsystemet på den første og eneste partition af
/ dev / sdb
, som er
/ dev / sdb1
. Vi så tidligere, at dette er en
ext4.
Filsystem, og det er monteret på "/ Kør / Mount / Dave / SATA2."
Vi bruger
umount.
kommando. Bemærk, at der ikke er nogen "n" i "umount."
SUDO Umount / Run / Mount / Dave / SATA2
Med
umount.
, ingen nyheder er gode nyheder. Hvis du er returneret stille til kommandoprompten, er vi gode til at gå.
sudo fsck / dev / sdb1
Dette filsystem er rapporteret som værende rent. Det betyder, at filsystemet rapporterer, at det ikke har nogen fejl eller problemer. En dybere filsystemkontrol udføres ikke automatisk. Vi kan også se på returkoden, som
fsck.
vendte tilbage til skallen.
ECHO $?
Returværdien af nul angiver ingen fejl. De mulige returkoder er:
- 0. : Ingen fejl
- 1 : Filesystem fejl korrigeret
- 2. : Systemet skal genstartes
- 4. : Filesystemfejl efterladt ukorrekt
- 8. : Operationel fejl
- 16. : Brug eller syntaksfejl
- 32. : Kontrol af annulleret af brugeranmodning
- 128. : Fejl i Shared-Library
På trods af at filsystemet blev rapporteret som rent, kan vi tvinge et filsystem, der skal finde sted, ved hjælp af
-F.
(Force) mulighed.
SUDO FSCK / DEV / SDB1 -F
Denne gang tager checken længere tid at fuldføre, men den udfører en mere grundig test af filsystemet. Vores filsystem var faktisk rent, og der rapporteres ingen fejl. Hvis der findes problemer, da testene udføres, bliver du bedt om at lade
fsck.
løse problemet eller ignorere fejlen.
Når du er færdig med at teste, skal du bestille filsystemet. Den nemmeste måde at gøre dette på er at bruge
Mount.
med
-en
(all) mulighed. Denne checks "/ etc / fstab" for listen over filsystemer, og sørger for, at de alle er monteret, ligesom de ville følge en almindelig boot.
Sudo Mount -A
Bemærk, at vi ikke behøver at fortælle
fsck.
Hvilken type filsystem er på en partition; Værktøjet bestemmer, at ved at undersøge filsystemet. Det betyder, at vi kan tvinge en filsystem check på
/ dev / sdc1
, det
ext3.
Filsystem på vores test pc, ved hjælp af nøjagtigt den samme kommando, vi brugte på
/ dev / sdb1
, som er en
ext4.
skillevæg.
sudo fsck / dev / sdc1 -F
Du vil måske ikke dykke lige til at fastsætte filsystemet. Du foretrækker måske at se, før du springer. Du kan spørge
fsck.
Ikke at tilbyde at rette noget og bare rapportere problemer til terminalvinduet. Det
-N.
(Dry Run) mulighed gør det bare:
sudo fsck -n / dev / sdb1
Det modsatte af det er at fortælle
fsck.
For ikke at genere at spørge, hvis det finder eventuelle fejl, og for bare at gå videre og rette dem. For at gøre dette skal du bruge
-y.
(ingen beskeder) mulighed.
sudo fsck -y / dev / sdb1
Ved hjælp af FSCK på rodpartitionen
Du kan ikke bruge
fsck.
På en monteret partition, men for at starte din computer skal rodpartitionen monteres. Så hvordan kan vi løbe
fsck.
på rodpartitionen? Svaret er at afbryde boot-processen og køre
fsck.
i nyttiggørelsestilstand.
Mens din computer starter, skal du holde en "Shift" -tasten nede. Hvis du har timet det rigtigt, vil du ikke starte i Linux. Boot-processen stopper ved en sort og hvid menu. Testmaskinen, der blev brugt til denne artikel, kørte Ubuntu, men andre distributioner har samme type menu, selv om det kan variere i udseende. Hvor det står "Ubuntu" i screenshots, vil det have navnet på din distribution.
Flyt Highlight-baren med "oppilen" og "pil ned", så menuen "Avancerede indstillinger for Ubuntu" er valgt. HIT "ENTER" for at flytte til næste skærmbillede.
Vælg den indstilling, der slutter med "(Gendannelsestilstand)." I vores eksempel er det "Ubuntu, med Linux 5.11.0-20-Generisk (Recovery Mode)." Tryk på "Enter" -tasten.
Du får se genoprettelsesmenuen. Vælg "FSCK check alle filsystemer" og tryk på "Tab" -tasten for at flytte højdepunktet til "OK" -knappen. Tryk på "ENTER."
Du vil se en meddelelse om, at rodpartitionen vil blive monteret sammen med andre partitioner, der er defineret i din "/ Etc / fstab" fil .
Tryk på "TAB" -tasten for at flytte højdepunktet til knappen "Ja", og tryk på "Enter".
Du vil se
fsck.
Kør i interaktiv tilstand. Hvis der er problemer, bliver du bedt om at lade
fsck.
rette dem eller ignorere dem. Når filsystemerne er blevet kontrolleret, vil du se genoprettelsesmenuen igen.
Vælg "Resume" -indstillingen, tryk på "TAB" -tasten for at flytte højdepunktet til "OK" -knappen, og tryk på "Enter". Boot-processen genoptages, og du vil starte i Linux.
Recovery Mode Boot kan påvirke nogle drivere, så det er god praksis at genstarte igen, så snart du starter i Linux. Dette sikrer, at din computer fungerer på sin standard mode.
Når tingene går galt
Sikkerhedsnet er der af en grund. Lær at kende
fsck.
kommando. Hvis behovet opstår at bruge det i vrede en dag, vil du være glad for at du har kendskab til dig selv på forhånd.