Alla våra viktiga data sitter i ett filsystem av en eller annan typ, och filsystem frågor är bundna att hända. På Linux, kan vi använda
fsck
kommandot för att hitta och åtgärda fel i filsystemet.
Filsystemen Software
Filsystem är en av de mest kritiska komponenterna i en dator. Utan ett filsystem, kan datorn inte lagra data på en hårddisk, om denna enhet är en snurrande mekanisk tallrik eller ett SSD . I själva verket har ett filsystem som ska skapas innan operativsystemet kan installeras på hårddisken. Det måste finnas något för filerna operativsystem som skall lagras i. Så ett filsystem skapas under installationsprocessen.
Filsystem är skapad av programvara , Skrivas till av mjukvara och läsas från av programvara. Som ni vet har alla komplex programvara buggar. Våra data är mycket viktigt för oss, så vi lägger en hel del tro på filsystem och mjukvaran som skapar och använder dem. Om något går fel, kan vi förlora tillgång till delar av filsystemet eller ens en hel partition.
Modern journalföring filsystem är bättre på att hantera problem som kan orsakas av en plötslig förlust av makt eller en systemkrasch. De är robusta, men de är inte oövervinnerlig. Om deras interna tabeller blir förvrängd de kan förlora reda på var varje fil finns på enheten, vilken storlek det är, vad name it har och vad filrättigheter ställs på dem.
De
fsck
kommandot kan du kontrollera att dina filsystem är friska. Om den hittar några problem kan oftast fixa dem för dig också.
Gör preflightkontroller
Använder sig av
fsck
kräver
sudo privilegier
. Varje kommando som kan göra ändringar i ett filsystem behöver behandlas med försiktighet och begränsad till dem som vet vad de gör.
Piloter inte hoppa in ett flygplan, starta upp och flyga ut i ljusblå yonder. De gör preflightkontroller. Det finns för mycket som står på spel för att göra något annat. Det är en god vana att utveckla. Innan du använder
fsck
måste du se till att du kommer att använda den på rätt enhet. Så innan du gör något med
fsck
Vi ska göra lite spaning.
Vi börjar med
fdisk
och rör den i
mindre
. Vi ber inte om information om en specifik partition. Med hjälp av
-l
(Lista) alternativet
fdisk
listar partitionstabeller på alla enheter som hittas i ”/ proc / partitioner” filen, om den finns.
sudo fdisk -l | mindre
Vi kan se posterna för
/ Dev / sda
och
/ dev / sdb
. Du kan bläddra igenom filen för att se några andra poster som kan finnas på din dator.
De partitioner på
/ Dev / sda
är listade som
/ Dev / sda1
,
/ Dev / sda2
och
/ Dev / sda3
. Så vi har tre partitioner på den första enheten. Vi kan se en lite mer information med hjälp av
parted
kommando. Vi använder
'skriva ut'
alternativet för att visa partitionstabeller i terminalfönstret.
sudo parted / dev / sda 'skriva ut'
Vi får en del extra information den här gången, bland annat den typ av filsystem på varje partition.
Modell: ATA VBOX Harddisk (SCSI) Disk / dev / sda: 34.4GB Sektorstorlek (logisk / fysisk): 512b / 512b Partition Tabell: gpt Diskflaggor: Nummer Start Slut Storlek File System namn Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538MB fat32 EFI System Partition boot, esp 3 540MB 34.4GB 33.8GB ext4
Det finns tre enheter i denna testdator. Dessa är resultaten för de två andra enheterna
/ dev / sdb
och
/ dev / sdc
. Observera att dessa filsystem inte har något "namn" -fält.
sudo skilde / dev / sdb 'print'
Modell: ATA VBOX Harddisk (SCSI) Disk / dev / sdb: 21.5gb Sektorstorlek (logisk / fysisk): 512b / 512b Partitionstabell: MSDOS Diskflaggor: Nummer Start Slutstorlek Typ Filsystem Flaggor 1 1049KB 21.5GB 21.5GB Primär ext4
sudo skilde / dev / sdc 'utskrift'
Modell: ATA VBOX Harddisk (SCSI) Disk / dev / sdc: 21.5gb Sektorstorlek (logisk / fysisk): 512b / 512b Partitionstabell: MSDOS Diskflaggor: Nummer Start Slutstorlek Typ Filsystem Flaggor 1 1049KB 21.5GB 21.5GB Primär ext3
Den andra och tredje enheterna råkar vara lika stora, och var och en har en enda partition. Men filsystemet på den andra enheten är
ext4
, och filsystemet på den tredje enheten är den äldre
ext3
.
Vi skickar en partitionsidentifierare till
fsck
, och det kontrollerar filsystemet på den partitionen. Men vi kan inte springa
fsck
på ett monterat filsystem. Vi måste avmontera enheten. För att göra det måste vi känna till monteringspunkten att partitionen - och därför är filsystemet monterat på.
Vi kan hitta det enkelt med hjälp av
df
kommando.
df / dev / sdb1
df / dev / sdc1
Använda FSCK-kommandot
Vi har all information vi behöver. Det första vi gör är att avmontera filsystemet vi ska kolla. Vi ska arbeta på filsystemet på den första och enda partitionen av
/ dev / sdb
, vilket är
/ dev / sdb1
. Vi såg tidigare att det här är en
ext4
Filsystem, och det är monterat på "/ Run / Mount / Dave / SATA2."
Vi använder
umount
kommando. Obs! Det finns ingen "n" i "Umount."
Sudo Umount / Run / Mount / Dave / SATA2
Med
umount
, inga nyheter är bra nyheter. Om du returneras tyst till kommandotolken, är vi bra att gå.
sudo fsck / dev / sdb1
Detta filsystem rapporteras som rent. Det betyder att filsystemet rapporterar att det inte har några fel eller problem. En djupare filsystemskontroll utförs inte automatiskt. Vi kan också titta på returkoden som
fsck
återvände till skalet.
Echo $?
Returvärdet på noll indikerar inga fel. De möjliga returkoderna är:
- 0 : Inga fel
- 1 : Filsystemfel korrigerade
- 2 : Systemet bör omstartas
- 4 : Filsystemfel kvar okorrigerade
- 8 : Operativt fel
- 16 : Användning eller syntaxfel
- 32 : Kontroll av annonserad av användarförfrågan
- 128 : Delat biblioteksfel
Trots att filsystemet rapporteras som rent kan vi tvinga ett filsystemkontroll att ske, med hjälp av
-f
(kraft) alternativ.
sudo fsck / dev / sdb1 -f
Den här gången tar checken längre att slutföra, men det utför ett noggrant test av filsystemet. Vårt filsystem var verkligen rent, och inga fel rapporteras. Om problem hittas när testen utförs, blir du uppmanad att låta
fsck
fixa problemet eller ignorera felet.
När du har testat måste du ta bort filsystemet. Det enklaste sättet att göra detta är att använda
montera
med
-a
(hela) alternativet. Detta kontrollerar "/ etc / fstab" för listan över filsystem och ser till att de är alla monterade, precis som de skulle följa en vanlig start.
Sudo Mount-A
Observera att vi inte behöver berätta
fsck
Vilken typ av filsystem är på en partition; Verktyget bestämmer att genom att undersöka filsystemet. Det betyder att vi kan tvinga ett filsystemkontroll på
/ dev / sdc1
, den
ext3
Filsystem på vår testdator, med exakt samma kommando som vi använde på
/ dev / sdb1
, vilket är en
ext4
dela.
sudo fsck / dev / sdc1 -f
Du kanske inte vill dyka rakt in i att fixa filsystemet. Du kanske föredrar att titta innan du hoppar. Du kan fråga
fsck
Att inte erbjuda att fixa något och bara rapportera problem till terminalfönstret. De
-N
(torrt kör) alternativ gör det bara:
sudo fsck -n / dev / sdb1
Motsatsen till det är att berätta
fsck
Att inte störa om det finner några fel, och att bara gå vidare och fixa dem. För att göra detta, använd
en
(Ingen uppmaning) alternativ.
sudo fsck -y / dev / sdb1
Använda FSCK på rotpartitionen
Du kan inte använda
fsck
På en monterad partition, men för att starta datorn måste rotpartitionen monteras. Så hur kan vi springa
fsck
på rotpartitionen? Svaret är att avbryta startprocessen och springa
fsck
i återställningsläge.
Medan datorn startar, håll ner en "Shift" -knapp. Om du har tagit det rätt, kommer du inte att starta i Linux. Startprocessen kommer att stanna vid en svartvitt meny. Testmaskinen som används för den här artikeln körde Ubuntu men andra fördelningar har samma typ av meny, även om det kan variera i utseende. Där det står "Ubuntu" i skärmdumparna kommer det att ha namnet på din distribution.
Flytta markeringsfältet med tangenterna "Upp pil" och "nedåtpil" så att menyalternativet "Avancerade alternativ för Ubuntu" är valt. Hit "Enter" för att flytta till nästa skärm.
Välj det alternativ som slutar med "(återställningsläge)." I vårt exempel är det "Ubuntu, med Linux 5.11.0-20-generisk (återställningsläge)." Tryck på "Enter" -knappen.
Du får se återställningsmenyn. Välj "FSCK Kontrollera alla filsystem" och tryck på "TAB" -knappen för att flytta markeringen till "OK" -knappen. Tryck enter."
Du får se en anmälan om att rotpartitionen kommer att monteras tillsammans med andra partitioner som definieras i din "/ Etc / fstab" -filen .
Tryck på "TAB" -knappen för att flytta markeringen till "Ja" -knappen och tryck på "Enter."
Du kommer se
fsck
Kör i interaktivt läge. Om det finns problem blir du uppmanad att låta
fsck
fixa dem eller att ignorera dem. När filsystemen har kontrollerats ser du återställningsmenyn igen.
Välj alternativet "Resume", tryck på "TAB" -knappen för att flytta markeringen till "OK" -knappen och tryck på "Enter." Startprocessen återupptas, och du startar in i Linux.
Återställningslägesstarten kan påverka vissa drivrutiner, så det är bra att starta om igen, så snart du startar in i Linux. Detta säkerställer att din dator fungerar på sitt vanliga sätt.
När saker går fel
Säkerhetsnät finns av en anledning. Lära känna
fsck
kommando. Om behovet uppstår att använda det i ilska en dag, kommer du att vara glad att du bekantar dig i förväg.