So verwenden Sie den fsck-Befehl unter Linux

Veröffentlicht: 2022-01-29
Ein Festplattenlaufwerk mit darauf geschriebenem Binärcode.
Pixza Studio/Shutterstock

Alle unsere wichtigen Daten befinden sich in einem Dateisystem des einen oder anderen Typs, und Dateisystemprobleme sind vorprogrammiert. Unter Linux können wir den Befehl fsck verwenden, um Dateisystemfehler zu finden und zu beheben.

Dateisysteme sind Software

Dateisysteme sind eine der kritischsten Komponenten eines Computers. Ohne ein Dateisystem kann der Computer keine Daten auf einer Festplatte speichern, unabhängig davon, ob es sich bei diesem Laufwerk um eine sich drehende mechanische Platte oder ein Solid-State-Laufwerk handelt. Tatsächlich muss ein Dateisystem erstellt werden, bevor das Betriebssystem auf der Festplatte installiert werden kann. Es muss etwas geben, in dem die Betriebssystemdateien gespeichert werden können. Daher wird während des Installationsvorgangs ein Dateisystem erstellt.

10 grundlegende Linux-Befehle für Anfänger
VERWANDTE 10 grundlegende Linux-Befehle für Anfänger

Dateisysteme werden von Software erstellt, von Software beschrieben und von Software gelesen. Wie Sie wissen, hat jede komplexe Software Fehler. Unsere Daten sind für uns von entscheidender Bedeutung, daher setzen wir großes Vertrauen in Dateisysteme und die Software, die sie erstellt und verwendet. Wenn etwas schief geht, können wir den Zugriff auf Teile des Dateisystems oder sogar auf eine ganze Partition verlieren.

Moderne Journaling-Dateisysteme können besser mit Problemen umgehen, die durch einen plötzlichen Stromausfall oder einen Systemabsturz verursacht werden können. Sie sind robust, aber nicht unbesiegbar. Wenn ihre internen Tabellen verschlüsselt werden, können sie den Überblick darüber verlieren, wo sich jede Datei auf dem Laufwerk befindet, welche Größe sie hat, welchen Namen sie hat und welche Dateiberechtigungen für sie festgelegt sind.

Mit dem Befehl fsck können Sie überprüfen, ob Ihre Dateisysteme fehlerfrei sind. Wenn es Probleme findet, kann es diese normalerweise auch für Sie beheben.

Führen Sie die Preflight-Checks durch

Für die Verwendung von fsck sind sudo-Berechtigungen erforderlich. Jeder Befehl, der Änderungen an einem Dateisystem vornehmen kann, muss mit Vorsicht behandelt und auf diejenigen beschränkt werden, die wissen, was sie tun.

Anzeige

Piloten springen nicht in ein Flugzeug, starten es und fliegen ins Hellblau da drüben. Sie führen Preflight-Checks durch. Es steht zu viel auf dem Spiel, um etwas anderes zu tun. Das ist eine gute Angewohnheit zu entwickeln. Bevor Sie fsck verwenden, müssen Sie sicherstellen, dass Sie es auf dem richtigen Laufwerk verwenden. Bevor wir also irgendetwas mit fsck machen, werden wir ein bisschen aufklären.

Wir beginnen mit fdisk und leiten es an less weiter. Wir fragen nicht nach Informationen zu einer bestimmten Partition. Durch die Verwendung der Option -l (list) listet fdisk die Partitionstabellen auf allen Geräten auf, die es in der Datei „/proc/partitions“ findet, falls diese existiert.

 sudo fdisk -l | weniger 

Wir können die Einträge für /dev/sda und /dev/sdb sehen. Sie können durch die Datei blättern, um andere Einträge anzuzeigen, die möglicherweise auf Ihrem Computer vorhanden sind.

Beobachten Sie die Ausgabe im Terminalfenster

Die Partitionen auf /dev/sda werden als /dev/sda1 , /dev/sda2 und /dev/sda3 . Wir haben also drei Partitionen auf dem ersten Laufwerk. Wir können ein wenig mehr Informationen sehen, indem wir den Befehl parted verwenden. Wir verwenden die Option 'print' , um die Partitionstabellen im Terminalfenster anzuzeigen.

 sudo parted /dev/sda 'print' 

Informieren Sie sich über Partitionstabellen

Diesmal erhalten wir einige zusätzliche Informationen, einschließlich des Dateisystemtyps auf jeder Partition.

 Modell: ATA VBOX FESTPLATTE (scsi) 
Festplatte /dev/sda: 34,4 GB 
Sektorgröße (logisch/physisch): 512B/512B 
Partitionstabelle: gpt 
Disk-Flags:

Nummer Start Ende Größe Dateisystem Name Flags 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 EFI Systempartition booten, insb 
3 540 MB 34,4 GB 33,8 GB ext4
Anzeige

Es gibt drei Laufwerke in diesem Testcomputer. Dies sind die Ergebnisse für die anderen beiden Laufwerke /dev/sdb und /dev/sdc . Beachten Sie, dass diese Dateisysteme kein „Name“-Feld haben.

 sudo parted /dev/sdb 'print'
 Modell: ATA VBOX FESTPLATTE (scsi) 
Festplatte /dev/sdb: 21,5 GB 
Sektorgröße (logisch/physisch): 512B/512B 
Partitionstabelle: msdos 
Disk-Flags:

Nummer Start Ende Größe Typ Dateisystem Flags 
1 1049 KB 21,5 GB 21,5 GB primäre ext4
 sudo parted /dev/sdc 'drucken'
 Modell: ATA VBOX FESTPLATTE (scsi) 
Festplatte /dev/sdc: 21,5 GB 
Sektorgröße (logisch/physisch): 512B/512B 
Partitionstabelle: msdos 
Disk-Flags:

Nummer Start Ende Größe Typ Dateisystem Flags
1 1049 KB 21,5 GB 21,5 GB primäre ext3

Das zweite und dritte Laufwerk sind zufällig gleich groß und haben jeweils eine einzelne Partition. Aber das Dateisystem auf dem zweiten Laufwerk ist ext4 und das Dateisystem auf dem dritten Laufwerk ist das ältere ext3 .

So mounten und unmounten Sie Speichergeräte vom Linux-Terminal
VERWANDT So mounten und unmounten Sie Speichergeräte vom Linux-Terminal

Wir übergeben eine Partitionskennung an fsck und es überprüft das Dateisystem auf dieser Partition. Aber wir können fsck nicht auf einem gemounteten Dateisystem ausführen. Wir müssen das Laufwerk aushängen. Dazu müssen wir den Einhängepunkt kennen, an dem die Partition – und damit das Dateisystem – eingehängt ist.

Das können wir ganz einfach mit dem df Befehl herausfinden.

 df /dev/sdb1
 df /dev/sdc1 

Verwenden des fsck-Befehls

Wir haben alle Informationen, die wir brauchen. Als erstes werden wir das zu überprüfende Dateisystem aushängen. Wir werden am Dateisystem auf der ersten – und einzigen – Partition von /dev/sdb arbeiten, die /dev/sdb1 ist. Wir haben zuvor gesehen, dass dies ein ext4 -Dateisystem ist und unter „/run/mount/dave/sata2“ gemountet ist.

Wir verwenden den umount Befehl. Beachten Sie, dass „umount“ kein „n“ enthält.

 sudo umount /run/mount/dave/sata2 

Verwenden Sie den Befehl umount, um das Dateisystem auszuhängen.

Anzeige

Mit umount sind keine Nachrichten gute Nachrichten. Wenn Sie unbemerkt zur Eingabeaufforderung zurückkehren, können wir loslegen.

 sudo fsck /dev/sdb1 

Verwenden Sie den Befehl fsck, um den Status des Dateisystems zu überprüfen.

Dieses Dateisystem wird als sauber gemeldet. Das bedeutet, dass das Dateisystem meldet, dass es keine Fehler oder Probleme hat. Eine tiefergehende Dateisystemprüfung wird nicht automatisch durchgeführt. Wir können uns auch den Rückgabecode ansehen, den fsck an die Shell zurückgegeben hat.

 Echo $? 

Der Rückgabewert Null zeigt keine Fehler an. Die möglichen Rückgabecodes sind:

  • 0 : Keine Fehler
  • 1 : Dateisystemfehler behoben
  • 2 : Das System sollte neu gestartet werden
  • 4 : Dateisystemfehler wurden nicht korrigiert
  • 8 : Betriebsfehler
  • 16 : Verwendungs- oder Syntaxfehler
  • 32 : Überprüfung durch Benutzeranforderung abgebrochen
  • 128 : Shared-Library-Fehler

Obwohl das Dateisystem als sauber gemeldet wird, können wir mit der Option -f (force) eine Überprüfung des Dateisystems erzwingen.

 sudo fsck /dev/sdb1 -f 

Erzwingen Sie eine Dateisystemprüfung mit der Option force in einem fsck-Befehl

Diesmal dauert die Prüfung länger, führt aber einen gründlicheren Test des Dateisystems durch. Unser Dateisystem war tatsächlich sauber und es wurden keine Fehler gemeldet. Wenn während der Tests Probleme gefunden werden, werden Sie aufgefordert, das Problem von fsck beheben zu lassen oder den Fehler zu ignorieren.

Wenn Sie mit dem Testen fertig sind, müssen Sie das Dateisystem erneut einhängen. Der einfachste Weg, dies zu tun, ist die Verwendung von mount mit der Option -a (all). Dies überprüft „/etc/fstab“ auf die Liste der Dateisysteme und stellt sicher, dass sie alle so gemountet sind, wie sie es nach einem normalen Start tun würden.

 sudo mount -a 

Hängen Sie das Dateisystem mit dem Befehl mount erneut ein

Welches Linux-Dateisystem sollten Sie verwenden?
VERWANDT Welches Linux-Dateisystem sollten Sie verwenden?

Beachten Sie, dass wir fsck nicht mitteilen müssen, welche Art von Dateisystem sich auf einer Partition befindet; Das Dienstprogramm stellt dies fest, indem es das Dateisystem untersucht. Das bedeutet, dass wir eine Dateisystemprüfung auf /dev/sdc1 , dem ext3 -Dateisystem auf unserem Test-PC, erzwingen können, indem wir genau denselben Befehl verwenden, den wir auf /dev/sdb1 , einer ext4 -Partition, verwendet haben.

 sudo fsck /dev/sdc1 -f 

Verwenden Sie den Befehl fsck, um eine Dateisystemprüfung zu erzwingen

Anzeige

Vielleicht möchten Sie nicht direkt in die Reparatur des Dateisystems eintauchen. Vielleicht ziehen Sie es vor, zu schauen, bevor Sie springen. Sie können fsck bitten, keine Reparatur anzubieten und nur Probleme im Terminalfenster zu melden. Die Option -N (Trockenlauf) macht genau das:

 sudo fsck -N /dev/sdb1 

Führen Sie vor der Reparatur eines Dateisystems einen Probelauf durch

Das Gegenteil davon ist, fsck , sich nicht die Mühe zu machen, nach Fehlern zu fragen, und sie einfach zu beheben. Verwenden Sie dazu die Option -y (keine Eingabeaufforderungen).

 sudo fsck -y /dev/sdb1

Verwenden von fsck auf der Root-Partition

Sie können fsck nicht auf einer gemounteten Partition verwenden, aber um Ihren Computer zu booten, muss die Root-Partition gemountet sein. Wie können wir also fsck auf der Root-Partition ausführen? Die Antwort ist, den Startvorgang zu unterbrechen und fsck im Wiederherstellungsmodus auszuführen.

Während Ihr Computer hochfährt, halten Sie eine „Shift“-Taste gedrückt. Wenn Sie es richtig getimt haben, werden Sie nicht in Linux booten. Der Startvorgang stoppt bei einem Schwarz-Weiß-Menü. Auf dem für diesen Artikel verwendeten Testcomputer wurde Ubuntu ausgeführt, aber andere Distributionen haben die gleiche Art von Menü, obwohl es im Aussehen variieren kann. Wo in den Screenshots „Ubuntu“ steht, steht dort der Name Ihrer Distribution.

Wiederherstellungsmenü mit ausgewähltem Menüpunkt „Erweiterte Optionen“.

Bewegen Sie den Markierungsbalken mit den Tasten „Pfeil nach oben“ und „Pfeil nach unten“, sodass der Menüpunkt „Erweiterte Optionen für Ubuntu“ ausgewählt ist. Drücken Sie „Enter“, um zum nächsten Bildschirm zu gelangen.

Wiederherstellungsmenü mit ausgewähltem Menüpunkt "Wiederherstellungsmodus".

Anzeige

Wählen Sie die Option, die mit „(Wiederherstellungsmodus)“ endet. In unserem Beispiel ist es „Ubuntu, mit Linux 5.11.0-20-generisch (Wiederherstellungsmodus)“. Drücken Sie die „Enter“-Taste.

Sie sehen das Wiederherstellungsmenü. Wählen Sie „fsck check all file systems“ und drücken Sie die „Tab“-Taste, um die Markierung auf die Schaltfläche „OK“ zu verschieben. Drücken Sie Enter."

Wiederherstellungsmenü mit ausgewähltem fsck

Sie sehen eine Benachrichtigung, dass die Root-Partition zusammen mit allen anderen Partitionen gemountet wird, die in Ihrer „/etc/fstab“-Datei definiert sind.

Wählen Sie yes, um fsck im interaktiven Modus zu starten

Drücken Sie die Taste „Tab“, um die Markierung auf die Schaltfläche „Ja“ zu verschieben, und drücken Sie „Enter“.

fsck wird im interaktiven Modus ausgeführt. Wenn es Probleme gibt, werden Sie aufgefordert, diese von fsck beheben zu lassen oder zu ignorieren. Wenn die Dateisysteme überprüft wurden, sehen Sie wieder das Wiederherstellungsmenü.

Wählen Sie die Option „Fortsetzen“, drücken Sie die Taste „Tab“, um die Markierung auf die Schaltfläche „Ok“ zu verschieben, und drücken Sie „Enter“. Der Startvorgang wird fortgesetzt und Sie booten in Linux.

Anzeige

Das Booten im Wiederherstellungsmodus kann sich auf einige Treiber auswirken, daher empfiehlt es sich, noch einmal neu zu starten, sobald Sie Linux booten. Dadurch wird sichergestellt, dass Ihr Computer normal funktioniert.

Wenn Dinge schief laufen

Sicherheitsnetze gibt es aus einem bestimmten Grund. Lernen Sie den Befehl fsck kennen. Wenn Sie es eines Tages im Zorn verwenden müssen, werden Sie froh sein, dass Sie sich im Voraus damit vertraut gemacht haben.

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten