Alle våre viktige data sitter i et filsystem av en type eller en annen, og filsystemproblemer er bundet til å skje. På Linux kan vi bruke
fsck.
[1. 3]
Kommando for å finne og fikse filsystemfeil.
Filsystemer er programvare
Filsystemer er en av de mest kritiske komponentene til en datamaskin. Uten et filsystem kan datamaskinen ikke lagre noen data på en harddisk, om den stasjonen er en spinnende mekanisk tallerken eller en Solid State Drive . Faktisk må et filsystem opprettes før operativsystemet kan installeres på harddisken. Det må være noe for operativsystemfilene som skal lagres i. Så et filsystem opprettes under installasjonsprosessen.
Filsystemer er Laget av programvare , skrevet til av programvare, og lese fra programvare. Som du vet, har all kompleks programvare feil. Våre data er kritisk viktige for oss, så vi legger mye tro på filsystemer og programvaren som skaper og bruker dem. Hvis noe går galt, kan vi miste tilgang til deler av filsystemet eller til og med en hel partisjon.
Moderne Journaling filsystemer er bedre på håndtering av problemer som kan skyldes et plutselig tap av makt eller et systemkrasj. De er robuste, men de er ikke uovervinnelige. Hvis deres Interne tabeller blir kryptert De kan miste oversikten over hvor hver fil ligger på stasjonen, hvilken størrelse den er, hvilket navn det har, og hvilke filtillatelser som er angitt på dem.
De
fsck.
[1. 3]
Kommandoen lar deg kontrollere at filsystemene dine er sunne. Hvis det finner noen problemer, kan det vanligvis fikse dem for deg også.
Gjør preflight sjekker
Ved hjelp av
fsck.
[1. 3]
krever det
sudo privilegier
. Enhver kommando som kan gjøre endringer i et filsystem, må behandles med forsiktighet og begrenset til de som vet hva de gjør.
Piloter hopper ikke inn i et fly, starter det opp, og fly av i den bleke blåen. De gjør preflight sjekker. Det er for mye på spill for å gjøre ellers. Det er en god vane å utvikle seg. Før du bruker
fsck.
[1. 3]
Du må sørge for at du skal bruke den på riktig stasjon. Så før du gjør noe med
fsck.
[1. 3]
, Vi skal gjøre litt rekognosering.
Vi begynner med
fdisk.
[1. 3]
og rør det inn i
mindre
[1. 3]
. Vi ber ikke om informasjon om en bestemt partisjon. Ved å bruke den
-L.
[1. 3]
(Liste) Alternativ
fdisk.
[1. 3]
Viser partisjonstabellene på alle enheter den finner i filen "/ proc / partisjoner" hvis den eksisterer.
sudo fdisk -l | mindre
Vi kan se oppføringene for
/ dev / sda
[1. 3]
og
/ dev / sdb
[1. 3]
. Du kan bla gjennom filen for å se andre oppføringer som kan eksistere på datamaskinen.
Partisjonene på
/ dev / sda
[1. 3]
er oppført AS
/ dev / sda1
[1. 3]
,
/ dev / sda2
[1. 3]
, og
/ dev / sda3
[1. 3]
. Så vi har tre partisjoner på den første stasjonen. Vi kan se litt mer informasjon ved å bruke
skiltet seg
[1. 3]
kommando. Vi bruker den
'skrive ut'
[1. 3]
Mulighet for å vise partisjonstabellene i terminalvinduet.
sudo parted / dev / sda 'print'
Vi får litt ekstra informasjon denne gangen, inkludert typen filsystem på hver partisjon.
Modell: ATA Vbox Harddisk (SCSI) Disk / Dev / SDA: 34.4GB Sektorstørrelse (logisk / fysisk): 512B / 512B Partisjon Tabell: GPT Diskflagger: Nummer Start Slutt Size System Name Flags 1 1049KB 2097KB 1049KB BIOS_GRUB 2 2097KB 540MB 538MB FAT32 EFI SYSTEM Partisjon Boot, ESP 3 540 MB 34,4 GB 33,8 GB EXT4
Det er tre stasjoner i denne testdatamaskinen. Dette er resultatene for de to andre stasjonene
/ dev / sdb
[1. 3]og
/ dev / sdc
[1. 3]
. Vær oppmerksom på at disse filsystemene ikke har "Navn" -felt.
sudo parted / dev / sdb 'print'
Modell: ATA Vbox Harddisk (SCSI) Disk / DEV / SDB: 21.5gb Sektorstørrelse (logisk / fysisk): 512B / 512B Partisjon Tabell: Msdos Diskflagger: Nummer Start End Size Type File System Flags 1 1049KB 21.5gb 21.5gb primær ext4
sudo parted / dev / sdc 'print'
Modell: ATA Vbox Harddisk (SCSI) Disk / Dev / SDC: 21.5gb Sektorstørrelse (logisk / fysisk): 512B / 512B Partisjon Tabell: Msdos Diskflagger: Nummer Start End Size Type File System Flags 1 1049KB 21.5GB 21.5GB PRIMARY EXT3
Det andre og tredje stasjonene er i stand til å være i samme størrelse, og hver har en enkelt partisjon. Men filsystemet på den andre stasjonen er
ext4.
[1. 3]
, og filsystemet på den tredje stasjonen er den eldre
ext3.
[1. 3]
.
Vi sender en partisjonidentifikator til
fsck.
[1. 3]
, og det kontrollerer filsystemet på den partisjonen. Men vi kan ikke løpe
fsck.
[1. 3]
på et montert filsystem. Vi må avmontere stasjonen. For å gjøre det, trenger vi å kjenne fjellpunktet som partisjonen - og derfor filsystemet er montert på.
Vi kan finne det enkelt å bruke
DF.
[1. 3]
kommando.
DF / DEV / SDB1
df / dev / sdc1
Bruke FSCK-kommandoen
Vi har all den informasjonen vi trenger. Det første vi vil gjøre er å avmontere filsystemet vi skal sjekke. Vi skal jobbe på filsystemet på den første og eneste partisjonen av
/ dev / sdb
[1. 3]
, som er
/ dev / sdb1
[1. 3]
. Vi så tidligere at dette er en
ext4.
[1. 3]
Filsystem, og den er montert på "/ Run / Mount / Dave / SATA2."
Vi bruker den
Onsjon
[1. 3]
kommando. MERK Det er ingen "N" i "Onount."
Sudo Umount / Run / Mount / Dave / SATA2
Med
Onsjon
[1. 3]
, ingen nyheter er gode nyheter. Hvis du er returnert stille til kommandoprompten, er vi gode å gå.
sudo fsck / dev / sdb1
Dette filsystemet er rapportert som rent. Det betyr at filsystemet rapporterer at det ikke har noen feil eller problemer. En dypere filsystemkontroll utføres ikke automatisk. Vi kan også se på returkoden som
fsck.
[1. 3]
returnert til skallet.
ekko $?
Returverdien på null indikerer ingen feil. De mulige returkoder er:
- 0. : Ingen feil
- 1 : Filsystemfeil korrigert
- 2. : Systemet skal startes på nytt
- 4. : Filsystemfeil igjen
- 8. : Operasjonell feil
- 16. : Bruk eller syntaksfeil
- 32. : Kontroller avbrutt av brukerforespørsel
- 128. : Delt-bibliotek feil
Til tross for at filsystemet ble rapportert som rent, kan vi tvinge et filsystem sjekk for å finne sted, ved hjelp av
-f.
[1. 3]
(Force) alternativet.
sudo fsck / dev / sdb1 -f
Denne gangen tar sjekken lengre tid å fullføre, men det utfører en grundigere test av filsystemet. Vårt filsystem var faktisk rent, og det rapporteres ingen feil. Hvis problemer er funnet som testene blir gjennomført, blir du bedt om å la
fsck.
[1. 3]
fikse problemet eller ignorere feilen.
Når du er ferdig med å teste, må du remount filsystemet. Den enkleste måten å gjøre dette på er å bruke
Mount.
[1. 3]
med
-en
[1. 3]
(alt) alternativet. Dette sjekker "/ etc / fstab" for listen over filsystemer, og sørger for at de er alle montert akkurat som de ville følge en vanlig oppstart.
sudo mount -a
Merk at vi ikke trenger å fortelle
fsck.
[1. 3]Hvilken type filsystem er på en partisjon; Verktøyet bestemmer det ved å undersøke filsystemet. Det betyr at vi kan tvinge et filsystem på
/ dev / sdc1
[1. 3]
, The.
ext3.
[1. 3]
Filsystem på vår test PC, med nøyaktig samme kommando vi brukte på
/ dev / sdb1
[1. 3]
, som er en
ext4.
[1. 3]
skillevegg.
sudo fsck / dev / sdc1 -f
Du vil kanskje ikke dykke rett inn i å fikse filsystemet. Du foretrekker kanskje å se før du hopper. Du kan spørre
fsck.
[1. 3]
Ikke å tilby å fikse noe og bare rapportere problemer til terminalvinduet. De
-N.
[1. 3]
(Dry Run) alternativet gjør nettopp det:
sudo fsck -n / dev / sdb1
Det motsatte av det er å fortelle
fsck.
[1. 3]
Å ikke bry deg om å spørre om det finner noen feil, og å bare gå videre og fikse dem. For å gjøre dette, bruk
-Jeg
[1. 3]
(ingen meldinger) alternativet.
sudo fsck -y / dev / sdb1
Bruker fsck på roten partisjonen
Du kan ikke bruke
fsck.
[1. 3]
På en montert partisjon, men for å starte datamaskinen må rotpartisjonen monteres. Så hvordan kan vi løpe
fsck.
[1. 3]
på roten partisjonen? Svaret er å forstyrre oppstartsprosessen og kjøre
fsck.
[1. 3]
i gjenopprettingsmodus.
Mens datamaskinen starter, holder du nede en "Shift" -tasten. Hvis du har timet det riktig, vil du ikke starte opp i Linux. Oppstartsprosessen stopper ved en svart-hvitt-menyen. Testmaskinen som brukes til denne artikkelen var å kjøre Ubuntu, men andre distribusjoner har samme type meny, selv om det kan variere i utseende. Hvor det står "Ubuntu" i skjermbildene, vil det få navnet på distribusjonen din.
Flytt høydepunktet med "Pil opp" og "Ned Pil" -tastene slik at menyelementet "Avanserte alternativer for Ubuntu" er valgt. Hit "Enter" for å flytte til neste skjermbilde.
Velg alternativet som slutter med "(gjenopprettingsmodus)." I vårt eksempel er det "Ubuntu, med Linux 5.11.0-20-generisk (gjenopprettingsmodus)." Trykk på "Enter" -tasten.
Du vil se gjenopprettingsmenyen. Velg "FSCK Kontroller alle filsystemer" og trykk på "Tab" -tasten for å flytte høydepunktet til "OK" -knappen. Trykk enter."
Du vil se et varsel om at rotpartisjonen vil bli montert sammen med andre partisjoner som er definert i din "/ Etc / fstab" fil .
Trykk på "Tab" -tasten for å flytte høydepunktet til "Ja" -knappen og trykk "Enter".
Du vil se
fsck.
[1. 3]
Kjør i interaktiv modus. Hvis det er problemer, blir du bedt om å la
fsck.
[1. 3]
fikse dem eller å ignorere dem. Når filsystemene er blitt sjekket, ser du gjenopprettingsmenyen igjen.
Velg alternativet "RESUME", trykk på "Tab" -tasten for å flytte høydepunktet til "OK" -knappen, og trykk "Enter". Oppstartsprosessen vil fortsette, og du starter opp i Linux.
Recovery Mode Boot kan påvirke noen drivere, så det er god praksis å starte på nytt igjen, så snart du starter opp i Linux. Dette sikrer at datamaskinen din opererer i sin standardmote.
Når ting går galt
Sikkerhetsnett er der av en grunn. Bli kjent med
fsck.
[1. 3]
kommando. Hvis behovet oppstår for å bruke det i sinne en dag, vil du være glad du kjenner deg på forhånd.