FSCK(8) Systemadministration FSCK(8)

fsck - kontrollera och reparera ett Linux-filsystem

fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [filsystem...] [--] [fs-specific-options]

fsck används för att kontrollera och eventuellt reparera ett eller flera Linux-filsystem. filsystem kan vara ett enhetsnamn (t.ex. /dev/hdc1, /dev/sdb2), en monteringspunkt (t.ex. /, /usr, /home) eller en filsystemetikett eller UUID-angivelse (t.ex. UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd eller LABEL=root). Normalt försöker programmet fsck hantera filsystem på olika fysiska diskenheter parallellt för att minska den totala tidsåtgången för att kontrollera dem alla.

Om inga filsystem anges på kommandoraden och flaggan -A inte anges, kommer fsck som standard att kontrollera filsystem i /etc/fstab seriellt. Detta är likvärdigt med flaggorna -As.

Avslutningsstatusen som returneras av fsck är summan av följande villkor:

0

Inga fel

1

Fel i filsystemet korrigerade

2

Systemet bör startas om

4

Fel i filsystemet lämnas okorrigerade

8

Operativt fel

16

Användnings- eller syntaxfel

32

Kontroll inställd på begäran av användare

128

Fel i delat bibliotek

Den utgångsstatus som returneras när flera filsystem kontrolleras är det bitvisa OR av utgångsstatusen för varje filsystem som kontrolleras.

I själva verket är fsck bara en frontend för de olika filsystemkontrollerna (fsck.fstype) som finns tillgängliga under Linux. Den filsystemspecifika kontrollen söks i miljövariabeln PATH. Om PATH är odefinierad återgår man till /sbin.

Se manualsidorna för de filsystemspecifika kontrollerna för ytterligare information.

-l

Skapa en exklusiv flock(2)-låsfil (/run/fsck/<diskname>.lock) för en enhet med hela disken. Den här flaggan kan endast användas med en enhet (det betyder att -A och -l är ömsesidigt exklusiva). Den här flaggan rekommenderas när flera fsck-instanser körs samtidigt. Flaggan ignoreras när det används för flera enheter eller för icke-roterande diskar. fsck låser inte underliggande enheter när det körs för att kontrollera staplade enheter (t.ex. MD eller DM) - den här funktionen är inte implementerad ännu.

-r [fd]

Rapportera viss statistik för varje fsck när den är klar. Statistiken omfattar avslutningsstatus, maximal storlek på körningsuppsättningen (i kilobyte), tid som förflutit efter alla klockslag och den CPU-tid för användare och system som använts av fsck-körningen. Ett exempel:

/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186

GUI-frontenheter kan ange en fildeskriptor fd, i vilket fall informationen om förloppsindikatorn kommer att skickas till den fildeskriptorn i ett maskinläsbart format. Ett exempel:

/dev/sda1 0 92828 4.002804 2.677592 0.86186

-s

Serialisera fsck-operationer. Detta är en bra idé om du kontrollerar flera filsystem och kontrollerna är i ett interaktivt läge. (Obs: e2fsck(8) körs som standard i ett interaktivt läge. Om du vill att e2fsck(8) ska köras i ett icke-interaktivt läge måste du antingen ange flaggan -p eller -a om du vill att fel ska korrigeras automatiskt, eller flaggan -n om du inte vill det)

-t fslist

Anger vilken eller vilka typer av filsystem som ska kontrolleras. När flaggan -A anges kontrolleras endast filsystem som matchar fslist. Parametern fslist är en kommaseparerad lista med filsystem och flaggspecifikationer. Alla filsystem i den kommaseparerade listan kan föregås av negationsoperatorn "no" eller "!", vilket innebär att endast de filsystem som inte finns med i fslist kontrolleras. Om inget av filsystemen i fslist föregås av en negationsoperator, kommer endast de listade filsystemen att kontrolleras.

Flaggspecifikationer kan ingå i den kommaseparerade fslist. De måste ha formatet opts=fs-option. Om en optionsspecifikation finns med kontrolleras endast filsystem som innehåller fs-option i fältet mount options i /etc/fstab. Om options-angivelsen föregås av en negationsoperator kommer endast de filsystem som inte har fs-option i fältet mount options i /etc/fstab att kontrolleras.

Om till exempel opts=ro finns i fslist kommer endast filsystem som listas i /etc/fstab med flaggan ro att kontrolleras.

För kompatibilitet med Mandrake-distributioner vars startskript är beroende av en obehörig användargränssnittsändring i programmet fsck, om en filsystemtyp av loop hittas i fslist, behandlas den som om opts=loop hade angetts som ett argument till flaggan -t.

Normalt härleds filsystemtypen genom att söka efter filesys i filen /etc/fstab och använda motsvarande post. Om typen inte kan härledas och det bara finns ett enda filsystem som anges som argument till flaggan -t, kommer fsck att använda den angivna filsystemtypen. Om denna typ inte är tillgänglig används standardfilsystemtypen (för närvarande ext2).

-A

Gå igenom filen /etc/fstab och försök att kontrollera alla filsystem i en körning. Den här flaggan används vanligtvis från systeminitialiseringsfilen /etc/rc i stället för flera kommandon för att kontrollera ett enda filsystem.

Rotfilsystemet kontrolleras först om inte flaggan -P har angetts (se nedan). Därefter kontrolleras filsystem i den ordning som anges av fältet fs_passno (det sjätte) i filen /etc/fstab. Filsystem med ett fs_passno-värde på 0 hoppas över och kontrolleras inte alls. Filsystem med ett fs_passno-värde större än noll kontrolleras i tur och ordning, så att filsystem med det lägsta fs_passno-värdet kontrolleras först. Om det finns flera filsystem med samma passnummer kommer fsck att försöka kontrollera dem parallellt, även om det inte kommer att köra flera filsystemkontroller på samma fysiska disk.

fsck kontrollerar inte staplade enheter (RAID, dm-crypt, ...) parallellt med någon annan enhet. Se nedan för inställningen FSCK_FORCE_ALL_PARALLEL. Filsystemet /sys används för att bestämma beroenden mellan enheter.

En mycket vanlig konfiguration i /etc/fstab-filer är därför att ange att rotfilsystemet ska ha ett fs_passno-värde på 1 och att alla andra filsystem ska ha ett fs_passno-värde på 2. Detta gör att fsck automatiskt kan köra filsystemkontroller parallellt om det är fördelaktigt att göra det. Systemadministratörer kan välja att inte använda den här konfigurationen om de av någon anledning behöver undvika att flera filsystemkontroller körs parallellt - till exempel om maskinen i fråga har ont om minne så att överdriven personsökning är ett problem.

fsck kontrollerar normalt inte om enheten faktiskt existerar innan en filsystemspecifik kontroll anropas. Därför kan icke-existerande enheter leda till att systemet går in i reparationsläge för filsystemet under uppstarten om den filsystemspecifika kontrollen returnerar ett allvarligt fel. Monteringsflaggan nofail i /etc/fstab kan användas för att få fsck att hoppa över icke-existerande enheter. fsck hoppar också över icke-existerande enheter som har den speciella filsystemtypen auto.

-C [fd]

Visa avslutnings-/förloppsfält för de filsystemkontroller (för närvarande endast för ext[234]) som stöder dem. fsck kommer att hantera filsystemkontrollerna så att endast en av dem visar en förloppsindikator åt gången. GUI-frontenheter kan ange en filbeskrivare fd, i vilket fall informationen om förloppsindikatorn kommer att skickas till den filbeskrivaren.

-M

Kontrollera inte monterade filsystem och returnera en utgångsstatus på 0 för monterade filsystem.

-N

Utför inte, visa bara vad som skulle göras.

-P

När flaggan -A är aktiverad kontrolleras rotfilsystemet parallellt med de andra filsystemen. Detta är inte det säkraste i världen att göra, eftersom om rotfilsystemet är osäkert kan saker som den körbara filen e2fsck(8) bli skadade! Det här flaggan är främst till för de systemadministratörer som inte vill partitionera om rotfilsystemet för att göra det litet och kompakt (vilket egentligen är den rätta lösningen).

-R

När du kontrollerar alla filsystem med flaggan -A, hoppa över rotfilsystemet. (Detta är användbart om rotfilsystemet redan har monterats som skriv-läs-fil)

-T

Visa inte titeln vid uppstart.

-V

Ge en utförlig utdata, inklusive alla filsystemspecifika kommandon som utförs.

-?, --help

Visa hjälptext och avsluta.

--version

Visa version och avsluta.

Flaggor som inte förstås av fsck skickas till den filsystemspecifika kontrollfunktionen!

Dessa flaggor måste inte ta argument, eftersom det inte finns något sätt för fsck att på ett korrekt sätt gissa vilka flaggor som tar argument och vilka som inte gör det.

Flaggor och argument som följer efter -- behandlas som filsystemspecifika flaggor som ska skickas till den filsystemspecifika kontrollen.

Observera att fsck inte är utformad för att skicka godtyckligt komplicerade flaggor till filsystemspecifika kontrollprogram. Om du gör något komplicerat, kör bara den filsystemspecifika kontrollen direkt. Om du ger fsck några fruktansvärt komplicerade flaggor och argument, och den inte gör vad du förväntar dig, bry dig inte om att rapportera det som ett fel. Du gör nästan säkert något som du inte borde göra med fsck. Flaggor till olika filsystemspecifika fsck:er är inte standardiserade.

Programmet fsck:s beteende påverkas av följande miljövariabler:

FSCK_FORCE_ALL_PARALLEL

Om den här miljövariabeln är inställd kommer fsck att försöka kontrollera alla angivna filsystem parallellt, oavsett om filsystemen verkar finnas på samma enhet eller inte. (Detta är användbart för RAID-system eller avancerade lagringssystem som de som säljs av företag som IBM eller EMC) Observera att värdet fs_passno fortfarande används.

FSCK_MAX_INST

Den här miljövariabeln begränsar det maximala antalet filsystemkontrollanter som kan köras samtidigt. Detta gör att konfigurationer som har ett stort antal diskar kan undvika att fsck startar för många filsystemkontrollanter samtidigt, vilket kan överbelasta CPU- och minnesresurserna i systemet. Om detta värde är noll kan ett obegränsat antal processer startas. Detta är för närvarande standard, men framtida versioner av fsck kan försöka att automatiskt avgöra hur många filsystemkontroller som kan köras baserat på insamling av redovisningsdata från operativsystemet.

PATH

Miljövariabeln PATH används för att hitta filsystemkontrollprogram.

FSTAB_FILE

Med den här miljövariabeln kan systemadministratören åsidosätta standardplatsen för filen /etc/fstab. Den är också användbar för utvecklare som testar fsck.

LIBBLKID_DEBUG=all

aktiverar libblkid felsökningsutdata.

LIBMOUNT_DEBUG=all

aktiverar libmount felsökningsutdata.

/etc/fstab

Under uppstarten anropar systemd inte fsck -A. Istället schemalägger den aktiveringen av mounts individuellt, med hänsyn till beroenden av backingenheter, nätverk och andra faktorer. Följaktligen anropas fsck individuellt för varje enhet.

Theodore Ts’o <tytso@mit.edu>, Karel Zak <kzak@redhat.com>

fstab(5), mkfs(8), fsck.ext2(8) eller fsck.ext3(8) eller e2fsck(8), fsck.cramfs(8), fsck.jfs(8), fsck.nfs(8), fsck.minix(8), fsck.msdos(8), fsck.vfat(8), fsck.xfs(8), reiserfsck(8)

För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.

Kommandot fsck ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1