Wie man ‚fsck‘ verwendet, um Fehler im Linux-Dateisystem zu reparieren

Linux-Dateisysteme sind dafür verantwortlich, wie Daten organisiert und wiederhergestellt werden. Früher oder später kann das Dateisystem beschädigt werden und bestimmte Teile davon sind möglicherweise nicht zugänglich. Wenn Ihr Dateisystem solche Inkonsistenzen aufweist, wird empfohlen, dessen Integrität zu überprüfen.

Dies kann mithilfe eines Systemdienstprogramms namens fsck (Filesystem-Konsistenzprüfung) erfolgen, das das Stammdateisystem automatisch während des Bootvorgangs überprüft oder manuell ausgeführt wird.

In diesem Artikel werden wir das fsck-Kommando und dessen Verwendung zur Reparatur von Linux-Diskfehlern überprüfen.

Wann der fsck-Befehl in Linux verwendet werden sollte

Es gibt verschiedene Szenarien, in denen Sie fsck ausführen möchten. Hier sind ein paar Beispiele:

  • Das System startet nicht.
  • Dateien im System werden beschädigt (oft sehen Sie möglicherweise Ein-/Ausgabefehler).
  • Das angeschlossene Laufwerk (einschließlich USB-Sticks/SD-Karten) funktioniert nicht wie erwartet.

Optionen des fsck-Befehls

Der fsck-Befehl muss mit Superuser-Rechten oder als root ausgeführt werden. Sie können ihn mit verschiedenen Argumenten verwenden. Deren Verwendung hängt von Ihrem spezifischen Fall ab. Im Folgenden finden Sie einige der wichtigeren Optionen:

  • -A – Wird verwendet, um alle Dateisysteme zu überprüfen. Die Liste wird aus /etc/fstab übernommen.
  • -C – Zeigt eine Fortschrittsanzeige an.
  • -l – Sperrt das Gerät, um sicherzustellen, dass kein anderes Programm während der Überprüfung auf die Partition zugreifen wird.
  • -M – Überprüft nicht eingehängte Dateisysteme.
  • -N – Zeigt nur an, was getan werden würde – es werden keine tatsächlichen Änderungen vorgenommen.
  • -P – Wenn Sie Dateisysteme parallel überprüfen möchten, einschließlich des Wurzelsystems.
  • -R – Überprüft das Wurzeldateisystem nicht. Dies ist nur mit „-A“ nützlich.
  • -r – Bietet Statistiken für jedes Gerät, das überprüft wird.
  • -T – Zeigt den Titel nicht an.
  • -t – Gibt die zu überprüfenden Linux-Dateisystemtypen ausschließlich an. Typen können durch Komma getrennte Listen sein.
  • -V – Bietet eine Beschreibung dessen, was getan wird.

Führen Sie den fsck-Befehl aus, um Fehler im Linux-Dateisystem zu reparieren

Um fsck auszuführen, müssen Sie sicherstellen, dass die zu überprüfende Partition nicht eingehängt ist. Für diesen Artikel werde ich mein zweites Laufwerk /dev/sdb verwenden, das in /mnt eingehängt ist.

Hier ist, was passiert, wenn ich versuche, fsck auszuführen, wenn die Partition eingehängt ist.

# fsck /dev/sdb
Run fsck on Mounted Partition

Um dies zu vermeiden, hängen Sie die Partition aus.

# umount /dev/sdb

Dann kann fsck sicher ausgeführt werden.

# fsck /dev/sdb
Run fsck on Linux Partition

Verstehen von fsck-Exit-Codes

Nach dem Ausführen von fsck gibt es einen Exit-Code zurück. Diese Codes können im Handbuch von fsck eingesehen werden, indem Sie Folgendes ausführen:

# 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            

Reparieren des Linux-Dateisystems mit fsck

Manchmal können auf einem Dateisystem mehr als ein Fehler gefunden werden. In solchen Fällen möchten Sie möglicherweise, dass fsck automatisch versucht, die Fehler zu korrigieren. Dies kann mit folgendem Befehl erfolgen:

# fsck -y /dev/sdb

Der -y-Flag, automatisch "ja" auf alle Aufforderungen von fsck zur Fehlerkorrektur.

Ebenso können Sie dasselbe auf allen Dateisystemen ausführen (ohne root):

$ fsck -AR -y 

Wie man fsck auf der Linux-Root-Partition ausführt

In einigen Fällen müssen Sie möglicherweise fsck auf der Root-Partition Ihres Systems ausführen. Da Sie fsck nicht ausführen können, während die Partition gemountet ist, können Sie eine dieser Optionen ausprobieren:

  • Erzwingen Sie fsck beim Systemstart
  • Führen Sie fsck im Rettungsmodus aus

Wir werden beide Situationen überprüfen.

Erzwingen Sie fsck beim Systemstart

Das ist relativ einfach zu erledigen, das Einzige, was du tun musst, ist eine Datei namens forcefsck im Stammverzeichnis deines Systems zu erstellen. Verwende den folgenden Befehl:

# touch /forcefsck

Dann kannst du einfach einen Neustart deines Systems erzwingen oder planen. Während des nächsten Bootvorgangs wird der fsck durchgeführt. Wenn Ausfallzeiten kritisch sind, wird empfohlen, dies sorgfältig zu planen, da fsck bei vielen verwendeten Inodes auf deinem System möglicherweise etwas länger dauert.

Nach dem Start deines Systems überprüfe, ob die Datei noch vorhanden ist:

# ls /forcefsck

Wenn ja, möchtest du sie möglicherweise entfernen, um ein fsck bei jedem Systemstart zu vermeiden.

Führe fsck im Rettungsmodus aus

Das Ausführen von fsck im Rettungsmodus erfordert einige weitere Schritte. Bereite zunächst dein System für einen Neustart vor. Beende alle wichtigen Dienste wie MySQL/MariaDB usw. und gib dann Folgendes ein:

# reboot

Halte während des Bootvorgangs die Umschalt-Taste gedrückt, damit das Grub-Menü angezeigt wird. Wähle „Erweiterte Optionen“.

Grub Advanced Options

Wähle dann „Wiederherstellungsmodus“.

Select Linux Recovery Mode

Wähle im nächsten Menü „fsck“.

Select fsck Utility

Du wirst gefragt, ob du dein /-Dateisystem neu einhängen möchtest. Wähle „ja“.

Confirm Root Filesystem

Du solltest etwas Ähnliches wie dies sehen.

Running fsck Filesystem Check

Du kannst dann den normalen Betrieb fortsetzen, indem du „Fortfahren“ auswählst.

Select Normal Boot
Abschluss

In diesem Tutorial hast du gelernt, wie man fsck verwendet und Konsistenzprüfungen auf verschiedenen Linux-Dateisystemen durchführt. Wenn du Fragen zu fsck hast, zögere bitte nicht, sie im Kommentarbereich unten zu stellen.

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/