Zoeken op website

Hoe 'fsck' te gebruiken om bestandssysteemfouten in Linux te herstellen


Linux-bestandssystemen zijn verantwoordelijk voor het organiseren van de manier waarop gegevens worden opgeslagen en hersteld. Op de een of andere manier kan het bestandssysteem na verloop van tijd beschadigd raken en zijn bepaalde delen ervan mogelijk niet toegankelijk. Als uw bestandssysteem een dergelijke inconsistentie ontwikkelt, is het raadzaam de integriteit ervan te verifiëren.

Dit kan worden voltooid via een systeemhulpprogramma genaamd fsck (consistentiecontrole van het bestandssysteem), dat het rootbestandssysteem automatisch controleert tijdens het opstarten of handmatig wordt uitgevoerd.

In dit artikel gaan we de fsck-opdracht en het gebruik ervan bekijken om je te helpen Linux-schijffouten te herstellen.

Wanneer moet u de fsck-opdracht gebruiken in Linux?

Er zijn verschillende scenario's waarin u fsck wilt uitvoeren. Hier zijn een paar voorbeelden:

  • Het systeem start niet op.
  • Bestanden op het systeem raken beschadigd (vaak ziet u een invoer-/uitvoerfout).
  • De aangesloten schijf (inclusief flashdrives/SD-kaarten) werkt niet zoals verwacht.

fsck-opdrachtopties

De fsck-opdracht moet worden uitgevoerd met superuser-rechten of root. Je kunt het met verschillende argumenten gebruiken. Het gebruik ervan hangt af van uw specifieke geval. Hieronder ziet u enkele van de belangrijkste opties:

  • -A – Wordt gebruikt voor het controleren van alle bestandssystemen. De lijst is afkomstig uit /etc/fstab.
  • -C – Toon voortgangsbalk.
  • -l – Vergrendelt het apparaat om te garanderen dat geen enkel ander programma de partitie tijdens de controle zal proberen te gebruiken.
  • -M – Controleer geen aangekoppelde bestandssystemen.
  • -N – Laat alleen zien wat er gedaan zou worden – er worden geen daadwerkelijke wijzigingen aangebracht.
  • -P – Als je bestandssystemen parallel wilt controleren, inclusief root.
  • -R – Controleer het rootbestandssysteem niet. Dit is alleen nuttig met ‘-A’.
  • -r – Geef statistieken op voor elk apparaat dat wordt gecontroleerd.
  • -T – Toont de titel niet.
  • -t – Specificeer exclusief de Linux-bestandssysteemtypen die moeten worden gecontroleerd. Typen kunnen door komma's gescheiden lijsten zijn.
  • -V – Geef een beschrijving van wat er wordt gedaan.

Voer fsck Command uit om Linux-bestandssysteemfouten te herstellen

Om fsck uit te voeren, moet u ervoor zorgen dat de partitie die u gaat controleren niet is aangekoppeld. Voor de doeleinden van dit artikel zal ik mijn tweede schijf /dev/sdb gebruiken, gemount in /mnt.

Dit is wat er gebeurt als ik fsck probeer uit te voeren terwijl de partitie is aangekoppeld.

fsck /dev/sdb

Om dit te voorkomen, ontkoppelt u de partitie met behulp van.

umount /dev/sdb

Dan kan fsck veilig worden uitgevoerd.

fsck /dev/sdb

Fsck-afsluitcodes begrijpen

Na het uitvoeren van fsck zal het een exitcode retourneren. Deze codes zijn te zien in de handleiding van fsck door het volgende uit te voeren:

man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Fsck Reparatie Linux-bestandssysteem

Soms kunnen er meer dan één fout op een bestandssysteem worden gevonden. In zulke gevallen wil je misschien dat fsck automatisch probeert de fouten te corrigeren. Dit kan gedaan worden met:

fsck -y /dev/sdb

De -y vlag, “yes” automatisch op elke prompt van fsck om een fout te corrigeren.

Op dezelfde manier kun je hetzelfde uitvoeren op alle bestandssystemen (zonder root):

fsck -AR -y 

Hoe fsck uit te voeren op een Linux-rootpartitie

In sommige gevallen moet u mogelijk fsck uitvoeren op de root partitie van uw systeem. Omdat je fsck niet kunt uitvoeren terwijl de partitie is aangekoppeld, kun je een van deze opties proberen:

  • Forceer fsck bij het opstarten van het systeem
  • Voer fsck uit in de reddingsmodus

We zullen beide situaties bekijken.

Forceer fsck bij het opstarten van het systeem

Dit is relatief eenvoudig in te vullen; het enige dat u hoeft te doen is een bestand met de naam forcefsck in de hoofdpartitie van uw systeem aan te maken. Gebruik de volgende opdracht:

touch /forcefsck

Vervolgens kunt u eenvoudigweg een herstart van uw systeem forceren of plannen. Tijdens de volgende keer opstarten wordt de fsck uitgevoerd. Als downtime van cruciaal belang is, is het raadzaam dit zorgvuldig te plannen, omdat als er veel gebruikte inodes op uw systeem staan, fsck wat extra tijd kan duren.

Nadat uw systeem is opgestart, controleert u of het bestand nog steeds bestaat:

ls /forcefsck

Als dit het geval is, wilt u het misschien verwijderen om fsck bij elke systeemopstart te voorkomen.

Voer fsck uit in de reddingsmodus

Het uitvoeren van fsck in de reddingsmodus vereist nog een paar stappen. Bereid eerst uw systeem voor op herstarten. Stop alle kritieke services zoals MySQL/MariaDB enz. en typ vervolgens.

reboot

Houd tijdens het opstarten de shift-toets ingedrukt zodat het grub-menu wordt weergegeven. Selecteer “Geavanceerde opties”.

Kies vervolgens “Herstelmodus”.

In het volgende menu selecteert u “fsck”.

U wordt gevraagd of u uw / bestandssysteem opnieuw wilt laten aankoppelen. Selecteer “ja ”.

Je zou iets vergelijkbaars als dit moeten zien.

U kunt vervolgens het normale opstarten hervatten door “Hervatten” te selecteren.

Conclusie

In deze tutorial heb je geleerd hoe je fsck gebruikt en consistentiecontroles uitvoert op verschillende Linux-bestandssystemen. Als u vragen heeft over fsck, aarzel dan niet om deze in de commentaarsectie hieronder te stellen.