So verwenden Sie den fsck-Befehl unter Linux
Veröffentlicht: 2022-01-29 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.
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.
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.
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'
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
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
.
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
Mit umount
sind keine Nachrichten gute Nachrichten. Wenn Sie unbemerkt zur Eingabeaufforderung zurückkehren, können wir loslegen.
sudo fsck /dev/sdb1
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
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
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
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
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.
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.
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."
Sie sehen eine Benachrichtigung, dass die Root-Partition zusammen mit allen anderen Partitionen gemountet wird, die in Ihrer „/etc/fstab“-Datei definiert sind.
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.
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.
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten