Sådan bruger du kommandoen fsck?

kommandoen fsck (file system consistency check) er et værktøj til at kontrollere og reparere et filsystem. Moderne filsystemer med journalføring er designet således, at værktøjer som fsck ikke let kræves. I nogle få tilfælde kan fsck dog være den eneste mulighed for at reparere et ‘dårligt’ filsystem.

fsck kan køres på en partition, der blev beskadiget eller uforenelig med resten af filsytet.

årsager til, at fsck kan være påkrævet

  • uren nedlukning – dette er den vigtigste årsag til korruption. På grund af en ‘uren nedlukning’ kan systemet muligvis ikke starte korrekt
  • drevfejl eller korruption

Indholdsfortegnelse

miljøer, hvor du ikke skal bruge fsck

da kommandoen fungerer direkte med sektorerne i filsystemet, er det vigtigt at tage de nødvendige forholdsregler her.

e2fscks man-side siger:

Bemærk, at det generelt ikke er sikkert at køre e2fsck på monterede filsystemer. Den eneste undtagelse er, hvis indstillingen-n er angivet, og-C,- l eller-L er ikke angivet. Selvom det er sikkert at gøre det, er resultaterne, der udskrives af e2fsck, ikke gyldige, hvis filsystemet er monteret. Hvis e2fsck spørger, om du skal kontrollere et filsystem, der er monteret, er det eneste korrekte svar “Nej”.

https://www.man7.org/linux/man-pages/man8/e2fsck.8.html

så du skal gøre fsck på en umonteret partition. Hvis du kan afmontere partitionen ved hjælp af umount, godt og godt. Ellers skal du ændre dit miljø:

1. Gendannelsestilstand

(for Ubuntu – Hold SHIFT under opstart for at gå ind i GRUB, Vælg ‘Avancerede indstillinger for Ubuntu’, vælg derefter indstillingen mærket ‘gendannelsestilstand’, vælg derefter fsck). I genoprettelsesfunktionen er partitionerne monteret.

gendannelsestilstand Fsck
gendannelsestilstand fsck

2. Mens du bruger init=/bin/bash kernel parameter

( Hold SHIFT under opstart for at gå ind i GRUB, tryk på e for at redigere kerneparametrene). Det giver en bash shell hvorfra fsck kunne køres, men også her er partitionerne monteret.

init Kernel Parameter
init Kernel Parameter

Sådan bruger du kommandoen fsck?

med det grundlæggende klart, lad os gå til trinene, hvordan du skal bruge kommandoen fsck i Linuk.

1. Grundlæggende brug af

før du begynder med at bruge kommandoen, skal du sørge for at arbejde på en umonteret partition. For at afmontere en partition og derefter køre fsck på den type :

$ sudo umount /dev/<partition_name>$ fsck /dev/<partition_name>

chancerne er, at du ikke kan afmontere partitionen. I så fald kan du vælge en af følgende metoder.

2. Kører fsck ved hjælp af en live USB

dette er nok den bedste måde at køre fsckpå. Det giver et rigt sæt af velkendte værktøjer som fdisk. Brug denne tutorial til at oprette en live Ubuntu USB. Denne del forudsætter, at du kører fra en Live USB.

for at liste alle partitioner på dit system kan du bruge kommandoen fdisk.

$ sudo fdisk -l
NVMe partitioner
NVMe SSD partitioner
Sata Ssd partitioner
SATA SSD partitioner

Bemærk: partitionerne vist ovenfor (for 2 SSD ‘ er, en NVMe og anden SATA) kan være anderledes end hvad du har på dit system. fdisk udskriver også flere oplysninger om partitionerne. Men med henblik på denne artikel er partitionens navn tilstrækkeligt.

Identificer partition, der forårsager problemer, så bare køre:

$ fsck /dev/<partition_name>

dette skulle løse problemet.

3. Brug af initramfs

en anden måde at bruge kommandoen fsck på er i intramfs-tilstand. At komme ind initramfs

  1. Hold SHIFT – tasten nede, mens du starter for at komme ind i GRUB-menuen.
  2. tryk på e for at redigere opstartsposten
  3. Tilføj kerneparameteren som ‘break ‘som vist på skærmbilledet nedenfor
  4. tryk på Ctrl - X for at gemme og afslutte
indgå i Initramfs
indgå i Initramfs

initramfs giver en’ mindre lokkende ‘ måde at fejlfinding på.

partitionerne er ikke monteret i initramfs, så det ville være sikkert at udføre fsck. Du har også brug for navnet på partitionen. Initramfs giver dog et absolut minimum af forsyningsselskaber. Så fdisk vil ikke være tilgængelig. Du kan liste partitionerne ved hjælp af cat-kommandoen som vist nedenfor:

$ cat /proc/partitions

Identificer partitionen og kør derefter:

$ fsck /dev/<partition_name>
Initramfs Fschk
Initramfs Fsck

Bemærk: fsck, der bruger Live USB, er muligvis ikke altid tilgængelig. I et sådant tilfælde skal du bruge initramfs-metoden.

Sådan kontrolleres, om fsck er planlagt eller ej

du vil måske vide, hvornår din partition blev kontrolleret sidste gang, eller hvornår vil den være i fremtiden. I så fald køre:

$ sudo tune2fs -l /dev/<partition_name> | egrep -i 'check|mount'
tjek for Fsck 1
tjek for Fsck
  • maksimal monteringstælling er antallet af monteringer, hvorefter filsystemet automatisk kontrolleres af fsck.
  • kontrolinterval er tiden mellem to filsystemkontroller.

disse to værdier er nok til at identificere, hvornår fsck-kommandoen sidst blev kørt.

forskel mellem fsck og e2fsck

du kan finde forskellige svar/artikler, der beder dig om at køre e2fsck eller fsck.ekst4 i stedet for fsck. Hvilken forskel gør det, hvis du kører et af disse værktøjer i stedet for fsck?

fsck er bare en frontend for alle de filsystemspecifikke fsck-kommandoer som de to vist ovenfor (en indpakning, hvis du måske siger). Påkaldelse af fsck påkalder automatisk den korrekte filsystemspecifikke fsck. Lad os se, hvilke alle fsck er der på vores system:

$ ls -l /sbin/fsck*
forskellige Fscks
liste over alle fsck

kører fsck på en ekst2 / 3 / 4 partition kører den respektive /sbin/fsck.ext* eksekverbare. Disse eksekverbare er igen hårde links til den eksekverbare e2fsck. Så selvom du kører fsckpå en ekst4-partition, vil den i sidste ende køre e2fsck.

konklusion

i denne tutorial dækkede vi fsck hvilket er et nyttigt værktøj til gendannelse af filsystemer. Hvis du vil vide mere om kommandoen fsck, skal du se på dens man-side.

Leave a Reply