Hur använder man fsck-kommandot i Linux?

kommandot fsck (file system consistency check) är ett verktyg för att kontrollera och reparera ett Linux-filsystem. Moderna filsystem med journalföring är utformade så att verktyg som fsck inte lätt krävs. I några få fall kan fsck dock vara det enda alternativet att reparera ett ‘dåligt’ filsystem.

fsck kan köras på en partition som blev skadad eller inkonsekvent med resten av filesytem.

anledningar till att fsck kan krävas

  • Oren avstängning-detta är den främsta orsaken till korruption. På grund av en ‘oren avstängning’ kan systemet misslyckas med att ens starta ordentligt
  • körfel eller korruption

Innehållsförteckning

miljöer där du inte ska använda fsck

eftersom kommandot fungerar direkt med filsystemets sektorer är det viktigt att vidta nödvändiga försiktighetsåtgärder här.

e2fscks man-sida säger:

Observera att det i allmänhet inte är säkert att köra e2fsck på monterade filsystem. Det enda undantaget är om alternativet-n anges och alternativen-c,- l eller-L inte anges. Men även om det är säkert att göra det, är resultaten som skrivs ut av e2fsck inte giltiga om filsystemet är monterat. Om e2fsck frågar om du ska kontrollera ett filsystem som är monterat, är det enda rätta svaret “nej”.

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

så du måste göra fsck på en omonterad partition. Om du kan avmontera partitionen med umount, bra och bra. Annars behöver du ändra din miljö:

1. Återställningsläge

(för Ubuntu – Håll SHIFT medan du startar för att gå in i GRUB, välj ‘Avancerade alternativ för Ubuntu’, välj sedan alternativet märkt ‘återställningsläge’ och välj sedan fsck). I återställningsläget är partitionerna monterade.

återställningsläge fsck
återställningsläge fsck

2. När du använder init=/bin/bash-kärnparametern

( Håll SHIFT medan du startar för att gå in i GRUB, tryck på e för att redigera kärnparametrarna). Det ger ett bash-skal där fsck kan köras men även här är partitionerna monterade.

init Kernel Parameter
init Kernel Parameter

Hur använder man fsck-kommandot?

med grunderna tydliga, låt oss gå till stegen hur du ska använda fsck-kommandot i Linux.

1. Grundläggande användning av

innan du börjar använda kommandot, se till att du arbetar på en omonterad partition. För att avmontera en partition och sedan köra fsck på den typ :

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

chansen är stor att du inte kan avmontera partitionen. I så fall kan du välja en av följande metoder.

2. Att köra fsck med en live USB

detta är förmodligen det bästa sättet att köra fsck. Det ger en rik uppsättning bekanta verktyg som fdisk. Använd denna handledning för att skapa en Live Ubuntu USB. Den här delen förutsätter att du kör Linux från en Live USB.

för att lista alla partitioner på ditt system kan du använda kommandot fdisk.

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

de partitioner som visas ovan (för 2 SSD, en NVMe och andra SATA) kan vara annorlunda än vad du har på ditt system. fdisk skriver ut mer information om partitionerna också. För syftet med denna artikel är dock partitionens namn tillräckligt.

identifiera partition som orsakar problem, kör sedan helt enkelt:

$ fsck /dev/<partition_name>

detta borde lösa problemet.

3. Använda initramfs

ett annat sätt att använda fsck-kommandot är i intramfs-läget. Att komma in initramfs

  1. Håll SHIFT – tangenten medan du startar för att komma in i GRUB-menyn.
  2. tryck på e för att redigera startposten
  3. Lägg till kärnparametern som ‘break ‘som visas på skärmdumpen nedan
  4. tryck på Ctrl - X för att spara och avsluta
gå in i Initramfs
gå in i Initramfs

initramfs ger ett ‘mindre lockande’ sätt att felsöka.

partitionerna är inte monterade i initramfs, så att utföra fsck skulle vara säkert. Du behöver också namnet på partitionen. Initramfs tillhandahåller dock ett minimum av verktyg. Så fdisk kommer inte att vara tillgänglig. Du kan lista partitionerna med kommandot cat som visas nedan:

$ cat /proc/partitions

identifiera partitionen och kör sedan:

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

Obs: fsck använder Live USB kanske inte alltid tillgänglig. Använd i så fall initramfs-metoden.

hur man kontrollerar om fsck är planerad eller inte

du kanske vill veta när var din partition kontrolleras förra gången eller när kommer det att vara i framtiden. I så fall kör:

$ sudo tune2fs -l /dev/<partition_name> | egrep -i 'check|mount'
kontrollera om Fsck 1
kontrollera om Fsck
  • maximal monteringsantal är antalet fästen varefter filsystemet automatiskt kontrolleras av fsck.
  • kontrollintervall är tiden mellan två filsystemkontroller.

dessa två värden är tillräckliga för att identifiera när fsck-kommandot senast kördes.

skillnad mellan fsck och e2fsck

du kan hitta olika svar/artiklar som ber dig att köra e2fsck eller fsck.ext4 snarare än fsck. Vilken skillnad gör det om du kör något av dessa verktyg istället för fsck?

fsck är bara en frontend för alla filsystemspecifika fsck-kommandon som de två som visas ovan (ett omslag om du kanske säger). Anropa fsckanropar automatiskt rätt filsystemspecifik fsck. Låt oss se vilka alla fsck finns på vårt system:

$ ls -l /sbin/fsck*
olika Fscks
lista alla fsck

Running fsck på en ext2 / 3 / 4-partition kör respektive /sbin/fsck.ext* körbar. Dessa körbara filer är i sin tur hårda länkar till körbara e2fsck. Så även om du kör fsck på en ext4-partition skulle den slutligen köra e2fsck.

slutsats

i denna handledning täckte vi fsck vilket är ett användbart verktyg för återställning av filsystem. Om du vill veta mer om fsck kommando, titta på dess man sida.

Leave a Reply