Hoe de fsck-opdracht op Linux te gebruiken

Een harde schijf met binaire code eroverheen geschreven.
Pixza Studio/Shutterstock

Al onze belangrijke gegevens bevinden zich in een of ander bestandssysteem en er zullen ongetwijfeld problemen met het bestandssysteem optreden. Op Linux kunnen we de fsck commando om bestandssysteemfouten te vinden en op te lossen.

Bestandssystemen zijn software

Bestandssystemen zijn een van de meest kritische componenten van een computer. Zonder bestandssysteem kan de computer geen gegevens opslaan op een harde schijf, of die schijf nu een draaiende mechanische schotel is of een solid-state schijf. In feite moet er een bestandssysteem worden aangemaakt voordat het besturingssysteem op de harde schijf kan worden geïnstalleerd. Er moet iets zijn om de bestanden van het besturingssysteem in op te slaan. Er wordt dus een bestandssysteem gemaakt tijdens het installatieproces.

Bestandssystemen worden gemaakt door software, geschreven door software en gelezen door software. Zoals u weet, heeft alle complexe software bugs. Onze gegevens zijn van cruciaal belang voor ons, dus we hebben veel vertrouwen in bestandssystemen en de software die ze maakt en gebruikt. Als er iets misgaat, kunnen we de toegang tot delen van het bestandssysteem of zelfs een hele partitie verliezen.

Moderne bestandssystemen voor journaling zijn beter in het omgaan met problemen die kunnen worden veroorzaakt door een plotselinge stroomuitval of een systeemcrash. Ze zijn robuust, maar niet onoverwinnelijk. Als hun interne tabellen vervormd raken, kunnen ze uit het oog verliezen waar elk bestand zich op de schijf bevindt, hoe groot het is, welke naam het heeft en welke bestandsrechten erop zijn ingesteld.

De fsck opdracht kunt u controleren of uw bestandssystemen in orde zijn. Als het problemen vindt, kan het deze meestal ook voor u oplossen.

Doe de preflightcontroles

Gebruik makend van fsck vereist sudo-rechten. Elk commando dat wijzigingen in een bestandssysteem kan aanbrengen, moet met de nodige voorzichtigheid worden behandeld en beperkt worden tot degenen die weten wat ze doen.

Advertentie

Piloten springen niet in een vliegtuig, starten het niet op en vliegen niet in het lichtblauwe daarginds. Ze doen preflight-controles. Er staat te veel op het spel om het anders te doen. Dat is een goede gewoonte om te ontwikkelen. Voor gebruik fsck u moet ervoor zorgen dat u het op de juiste schijf gaat gebruiken. Dus voordat je iets doet met fsck, we gaan een beetje op verkenning.

We beginnen met fdisk en pijp het in less. We vragen niet om informatie over een specifieke partitie. Door gebruik te maken van de -l (lijst) optie fdisk geeft de partitietabellen weer op alle apparaten die het vindt in het bestand “/proc/partitions”, als het bestaat.

sudo fdisk -l | less

We kunnen de inzendingen zien voor /dev/sda en /dev/sdb. U kunt door het bestand bladeren om eventuele andere vermeldingen op uw computer te zien.

Bekijk de uitvoer in het terminalvenster

De partities aan /dev/sda worden vermeld als /dev/sda1, /dev/sda2, en /dev/sda3 . We hebben dus drie partities op de eerste schijf. We kunnen wat meer informatie zien door de . te gebruiken parted opdracht. We gebruiken de 'print' optie om de partitietabellen in het terminalvenster weer te geven.

sudo parted /dev/sda 'print'

Informatie krijgen over partitietabellen

We krijgen deze keer wat extra informatie, waaronder het type bestandssysteem op elke partitie.

Model: ATA VBOX HARDDISK (scsi) 
Disk /dev/sda: 34.4GB 
Sector size (logical/physical): 512B/512B 
Partition Table: gpt 
Disk Flags:

Number Start  End    Size    File system   Name                 Flags 
1      1049kB 2097kB 1049kB                                     bios_grub 
2      2097kB 540MB  538MB   fat32         EFI System Partition boot, esp 
3      540MB 34.4GB  33.8GB  ext4
Advertentie

Er zitten drie schijven in deze testcomputer. Dit zijn de resultaten voor de andere twee schijven /dev/sdb en /dev/sdc. Merk op dat deze bestandssystemen geen veld “Naam” hebben.

sudo parted /dev/sdb 'print'
Model: ATA VBOX HARDDISK (scsi) 
Disk /dev/sdb: 21.5GB 
Sector size (logical/physical): 512B/512B 
Partition Table: msdos 
Disk Flags:

Number Start  End    Size   Type     File system Flags 
1      1049kB 21.5GB 21.5GB primary  ext4
sudo parted /dev/sdc 'print'
Model: ATA VBOX HARDDISK (scsi) 
Disk /dev/sdc: 21.5GB 
Sector size (logical/physical): 512B/512B 
Partition Table: msdos 
Disk Flags:

Number Start  End    Size   Type     File system Flags
1      1049kB 21.5GB 21.5GB primary  ext3

De tweede en derde schijf zijn toevallig even groot en hebben elk een enkele partitie. Maar het bestandssysteem op de tweede schijf is: ext4, en het bestandssysteem op de derde schijf is de oudste ext3.

Opslagapparaten koppelen en ontkoppelen vanaf de Linux Terminal

VERWANTOpslagapparaten koppelen en ontkoppelen vanaf de Linux Terminal

We geven een partitie-ID door aan: fsck, en het controleert het bestandssysteem op die partitie. Maar we kunnen niet rennen fsck op een gekoppeld bestandssysteem. We moeten de schijf ontkoppelen. Om dat te doen, moeten we het koppelpunt weten waarop de partitie – en dus het bestandssysteem – is aangekoppeld.

We kunnen dat gemakkelijk achterhalen met behulp van de df opdracht.

df /dev/sdb1
df /dev/sdc1

Het fsck-commando gebruiken

We hebben alle informatie die we nodig hebben. Het eerste dat we zullen doen, is het bestandssysteem ontkoppelen dat we gaan controleren. We gaan werken aan het bestandssysteem op de eerste en enige partitie van /dev/sdb, dat is /dev/sdb1 . We zagen eerder dat dit een ext4 bestandssysteem, en het is gemount op “/run/mount/dave/sata2.”

We gebruiken de umount opdracht. Merk op dat er geen “n” is in “umount”.

sudo umount /run/mount/dave/sata2

Gebruik de opdracht umount om het bestandssysteem te ontkoppelen.

Advertentie

Met umount, geen nieuws is goed nieuws. Als u stil terugkeert naar de opdrachtprompt, zijn we klaar om te gaan.

sudo fsck /dev/sdb1

Gebruik het fsck-commando om de status van het bestandssysteem te controleren.

Dit bestandssysteem wordt gerapporteerd als schoon. Dat betekent dat het bestandssysteem meldt dat het geen fouten of problemen heeft. Een diepere controle van het bestandssysteem wordt niet automatisch uitgevoerd. We kunnen ook kijken naar de retourcode die: fsck terug naar de schelp.

echo $?

De retourwaarde nul geeft geen fouten aan. De mogelijke retourcodes zijn:

  • 0: Geen fouten
  • 1: Bestandssysteemfouten gecorrigeerd
  • 2: Systeem moet opnieuw worden opgestart
  • 4: Bestandssysteemfouten niet gecorrigeerd
  • 8: Operationele fout
  • 16: Gebruiks- of syntaxisfout
  • 32: Controle geannuleerd op verzoek van de gebruiker
  • 128: Fout in gedeelde bibliotheek

Ondanks dat het bestandssysteem als schoon wordt gerapporteerd, kunnen we een controle van het bestandssysteem forceren, met behulp van de -f (kracht) optie.

sudo fsck /dev/sdb1 -f

Forceer een bestandssysteemcontrole met behulp van de force-optie in een fsck-opdracht

Deze keer duurt de controle langer, maar wordt het bestandssysteem grondiger getest. Ons bestandssysteem was inderdaad schoon en er worden geen fouten gemeld. Als er problemen worden gevonden terwijl de tests worden uitgevoerd, wordt u gevraagd om te laten fsck los het probleem op of negeer de fout.

Wanneer u klaar bent met testen, moet u het bestandssysteem opnieuw koppelen. De gemakkelijkste manier om dit te doen is door gebruik te maken van mount met de -a (alle) optie. Dit controleert “/etc/fstab” voor de lijst met bestandssystemen en zorgt ervoor dat ze allemaal worden gemount, net zoals ze een normale opstart zouden volgen.

sudo mount -a

Koppel het bestandssysteem opnieuw met de opdracht mount

Welk Linux-bestandssysteem moet u gebruiken?

VERWANTWelk Linux-bestandssysteem moet u gebruiken?

Merk op dat we het niet hoeven te vertellen fsck welk type bestandssysteem zich op een partitie bevindt; het hulpprogramma bepaalt dat door het bestandssysteem te onderzoeken. Dat betekent dat we een bestandssysteemcontrole kunnen forceren /dev/sdc1, de ext3 bestandssysteem op onze test-pc, met exact dezelfde opdracht die we gebruikten op /dev/sdb1, dat is een ext4 partitie.

sudo fsck /dev/sdc1 -f

Gebruik het fsck-commando om een ​​bestandssysteemcontrole te forceren

Advertentie

Misschien wilt u niet meteen beginnen met het repareren van het bestandssysteem. Misschien kijk je liever voordat je springt. Je kunt vragen fsck niet aanbieden om iets te repareren en alleen problemen melden aan het terminalvenster. De -N (dry run) optie doet precies dat:

sudo fsck -N /dev/sdb1

Voer een test uit voordat u een bestandssysteem repareert

Het tegenovergestelde daarvan is om te vertellen fsck om niet de moeite te nemen om te vragen of er fouten worden gevonden, en om ze gewoon op te lossen. Gebruik hiervoor de -y (geen prompts) optie.

sudo fsck -y /dev/sdb1

fsck gebruiken op de rootpartitie

U kunt niet gebruiken fsck op een aangekoppelde partitie, maar om uw computer op te starten moet de rootpartitie worden aangekoppeld. Dus hoe kunnen we rennen? fsck op de rootpartitie? Het antwoord is om het opstartproces te onderbreken en uit te voeren fsck in herstelmodus.

Terwijl uw computer opstart, houdt u een “Shift” -toets ingedrukt. Als je het goed hebt getimed, start je niet op in Linux. Het opstartproces stopt bij een zwart-wit menu. De testmachine die voor dit artikel werd gebruikt, draaide op Ubuntu, maar andere distributies hebben hetzelfde type menu, hoewel dit er anders uitziet. Waar het zegt “Ubuntu” in de schermafbeeldingen, heeft het de naam van uw distributie.

Herstelmenu met het menu-item geavanceerde opties geselecteerd

Verplaats de markeringsbalk met de toetsen “Pijl omhoog” en “Pijl omlaag” zodat het menu-item “Geavanceerde opties voor Ubuntu” is geselecteerd. Druk op “Enter” om naar het volgende scherm te gaan.

Herstelmenu met menu-item "herstelmodus" geselecteerd

Advertentie

Selecteer de optie die eindigt op “(herstelmodus)”. In ons voorbeeld is dit “Ubuntu, met Linux 5.11.0-20-generiek (herstelmodus).” Druk op de “Enter” -toets.

U ziet het herstelmenu. Selecteer “fsck check alle bestandssystemen” en druk op de “Tab”-toets om de markering naar de knop “OK” te verplaatsen. Druk op Enter.”

Herstelmenu met fsck geselecteerd

Je zult een melding zien dat de rootpartitie zal worden gemount samen met alle andere partities die zijn gedefinieerd in je “/etc/fstab”-bestand.

Selecteer ja om fsck in interactieve modus te starten

Druk op de “Tab”-toets om de markering naar de “Ja”-knop te verplaatsen en druk op “Enter”.

Je zult het zien fsck draaien in interactieve modus. Als er problemen zijn, wordt u gevraagd om te laten fsck repareren of negeren. Wanneer de bestandssystemen zijn gecontroleerd, ziet u het herstelmenu weer.

Selecteer de optie “hervatten”, druk op de “Tab”-toets om de markering naar de knop “Ok” te verplaatsen en druk op “Enter”. Het opstartproces wordt hervat en u start op in Linux.

Advertentie

Het opstarten van de herstelmodus kan van invloed zijn op sommige stuurprogramma’s, dus het is een goede gewoonte om opnieuw op te starten zodra u Linux opstart. Dit zorgt ervoor dat uw computer op de standaard manier werkt.

Wanneer dingen fout gaan

Vangnetten zijn er niet voor niets. Maak kennis met de fsck opdracht. Als de noodzaak zich voordoet om het op een dag in woede te gebruiken, zult u blij zijn dat u zich van tevoren vertrouwd hebt gemaakt.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in