[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] Für Dateisysteme mit Journal-Funktionalität wie [:ext:ext4] (der Standard unter Ubuntu], ext3 oder [:Dateisystem:XFS] kann ein Dateisystemcheck durchgeführt werden, um sicherzustellen, dass das Dateisystem keine Fehler enthält. Diese Prozedur ist grob vergleichbar mit dem Systemcheck, den Windows nach einem nicht ordnungsgemäßen Beenden des Systems durchführt. {{{#!vorlage Hinweis Im Folgenden muss das X in `/dev/sda'''X'''` jeweils durch die korrekte Zahl ersetzt werden. Weitere Informationen liefert der Artikel [:Datenträger:]. }}} = Wann wird ein Dateisystemcheck durchgeführt? = Ab Ubuntu 12.04 führt Ubuntu standardmäßig keinen automatischen, periodischen Dateisystemcheck für Partitionen mit ext-Dateisystem durch. Wird beim Herunterfahren / Neustart des Rechners das Dateisystem nicht sauber ausgehängt, wird das "dirty bit" gesetzt, welches eine automatische Überprüfung des Dateisystems beim nächsten Start erzwingt. Sollte die Prüfung laufen, ist es empfehlenswert, diese Durchlaufen zu lassen und nicht zu unterbrechen, um die Konsistenz des Dateisystems sicherzustellen. Will man die Prüfung nichts desto trotz abbrechen, kann man diese mit einem Druck auf [[Vorlage(Tasten, strg+c)]] beenden. = Periodischen Dateisystemcheck für ext einstellen = Die aktuelle Einstellung kann man mit Hilfe des Programms [:ext#tune2fs:tune2fs] abfragen und ändern. Das Programm ist unter Ubuntu standardmäßig installiert. Der Befehl lautet: {{{#!vorlage Befehl sudo tune2fs -l /dev/sdaX | grep -i "mount count" }}} Die Ausgabe sieht wie folgt aus: {{{ Mount count: 259 Maximum mount count: -1 }}} Das Dateisystem wurde bisher 259 mal [:mount:eingehängt]. Die `-1` in der Zeile `Maximum mount count` bedeutet, dass eine automatische Prüfung nach X Einhängevorgängen deaktiviert ist. Um zu prüfen, ob ggf. eine zeitabhängige Prüfung eingerichtet ist, dient der folgenden Befehl: {{{#!vorlage Befehl sudo tune2fs -l /dev/sdaX | grep -i "check" }}} Die Ausgabe sieht so aus: {{{ Last checked: Sun Dec 13 17:56:05 2020 Check interval: 0 () Checksum type: crc32c Checksum: 0x583e7585 }}} Das Dateisystem wurde zuletzt am Sonntag den 13.12.2020 um 17.56 Uhr geprüft. Der Wert `0` in der Zeile `Check interval` bedeutet, dass keine zeitabhängige Prüfung eingerichtet ist. == periodische Prüfung einrichten == Um eine automatische Prüfung bei Systemstart nach X Einhängevorgängen einer Partitionen festzulegen, nutzt man den folgenden Befehl: {{{#!vorlage Befehl sudo tune2fs -c 25 /dev/sdaX }}} Mit der Option `-c` wird der `mount count` festgelegt. Hier würde die Partition `sdaX` also bei bei jedem 25. Einhängevorgang geprüft. Besitzt das System mehrere zu prüfenden Partitionen (z.B. eine Root- und eine Home-Partitionen) kann es gegebenenfalls sinnvoll sein, die Werte für beiden Partitionen so zu wählen, dass die Prüfung möglichst selten gleichzeitig erfolgt. Ein Grund dafür wäre, dass je nach Größe der Partition der Prüfvorgang länger dauern kann und den Systemstart entsprechend verzögert. Hier bieten sich Primzahlen als "mount count" an, um zu vermeiden, dass mehrere Prüfungen beim Systemstart zusammenfallen. Beispiel: Partition sdaX Check nach dem 43. und Partition sdaY nach dem 47. Einhängevorgängen -> gemeinsame, "zeitintensive" Prüfung erst nach 2021 Einhängevorgängen. == zeitabhängige Prüfung einrichten == Um ein Zeitintervall für periodische Prüfungen festzulegen dient der folgenden Befehl: {{{#!vorlage Befehl sudo tune2fs -i 3m /dev/sdaX }}} Damit würde ein Intervall von 3 Monaten festgesetzt. Statt `m` für Monate kann man auch `d` für Tage (d wie "days") oder `w` für Wochen angeben. == periodische Prüfung wieder entfernen == Hat man eine periodische Prüfung in Abhängigkeit von der Anzahl der Einhängevorgänge angegeben, kann man diese Prüfung mit {{{#!vorlage Befehl sudo tune2fs -c -1 /dev/sdaX }}} wieder deaktivieren. Hat meine eine periodische Prüfung in Abhängigkeit eines Zeitintervalls festgelegt, kann man diese Prüfung mit {{{#!vorlage Befehl sudo tune2fs -i 0 /dev/sdaX }}} wieder deaktivieren. = Dateisystemcheck erzwingen = Es gibt mehrere Möglichkeiten, einen Dateisystemcheck zu erzwingen. == Bootparameter == Möchte man den Dateisystemcheck beim Systemstart erzwingen, trägt man die [:Bootoption:] `fsck.mode=force` ein. == mount count ändern == Hat man eine periodische Prüfung in Abhängigkeit von den Einhängevorgängen festgelegt, dann kann man den "mount count" manuell ändern, und zwar auf eine Zahl, die größer ist als die Anzahl der Einhängevorgänge bis zur nächsten Prüfung. Beispiel: Man hat den "mount count" auf 25 festgesetzt. Der Befehl {{{#!vorlage Befehl sudo tune2fs -C 26 /dev/sdaX }}} setzt den "mount count" manuell auf 26, d.h. beim nächsten Systemstart wird ein Dateisystemcheck durchgeführt. == Zeitpunkt der letzten ändern == Hat man eine periodische Prüfung in Form eines Zeitintervalls festgelegt, dann kann man den Zeitpunkt der letzten Prüfung wie folgt ändern: {{{#!vorlage Befehl sudo tune2fs -T JJJJMMTT[HH[MM[SS] now /dev/sdaX }}} `JJJJMMTT` ist dabei durch ein Datum im Format JahrMonatTag anzugeben, also z.B. 20211224 für den 24.12.2021. Optional können noch Stunde (`HH`), Minute(`MM`) und Sekunde (`SS`) angegeben werden. So würde z.B. der Befehl {{{#!vorlage Befehl sudo tune2fs -T 20201224141430 /dev/sdaX }}} den Zeitpunkt der letzten Prüfung auf den 24.12.2020 um 14.15 Uhr und 30 Sekunden setzen. Setzt man den Zeitstempel des letzten Checks auf einen Zeitpunkt vor dem aktuellen Zeitpunkt minus Intervall, wird beim nächsten Start des Systems ein Dateisystemcheck ausgeführt. Möchte man den nächsten Check verzögern, kann `now` als Datum / Zeit angegeben werden, welches die letzte Prüfung auf das aktuelle Datum und die aktuelle Uhrzeit setzt. = Überprüfung immer deaktivieren = {{{#!vorlage Warnung Die Überprüfung des Dateisystems kann zwar nervig sein, schützt aber vor inkonsistenten Dateisystemen und hält damit u.a. auch das System intakt. Es gibt so gut wie keine Szenarien, bei denen das permanente Deaktivieren der Überprüfung zu empfehlen wäre. }}} Es gibt zwei Wege, den Dateisystemcheck immer zu deaktivieren, also auch bei gesetztem "dirty bit". == über systemd == Die unter [:systemd:] zuständig [:systemd/Unit:Unit] für die Dateisystemcheck ist '''systemd-fsck-root.service''' für die Root-Partition bzw. '''systemd-fsck@.service''' für alle anderen Partitionen. Deren Verhalten kann über ein [:Bootoption:] gesteuert werden. Möchte man den Dateisystemcheck immer unterbinden, trägt man die Bootoption `fsck.mode=skip` ein. == in /etc/fstab == Man öffnet die Partitionstabelle in der Datei [:fstab:/etc/fstab] mit einem Editor und Root-Rechten [2]. Die Datei könnte etwa so aussehen: {{{ # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # # / was on /dev/sda7 during installation UUID=2f2f9aed-e4db-4ddf-9078-f18314eaf136 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/sda2 during installation UUID=E04C-B889 /boot/efi vfat umask=0077 0 1 # /home was on /dev/sda9 during installation UUID=a43fb1f2-0d28-4fe3-9bc8-a6ec66f05683 /home ext4 defaults 0 2 # swap was on /dev/sda6 during installation UUID=95096c9c-64ae-4e05-9f9d-f0447efeeabf none swap sw 0 0 }}} Hier sucht man nun die Partition, für die man die Überprüfung abstellen will und ändert die letzte Zahl in der Spalte `` in eine `0` ab. Nun noch speichern und fertig. Ab sofort wird keine Überprüfung mehr durchgeführt. = Manuelle Prüfung = Man kann die Prüfung auch manuell im Terminal anstoßen, sowohl für normale als auch verschlüsselte Partitionen. Für die Prüfung darf die Partition nicht eingehängt sein, d.h. zum Prüfen der Root-Partition muss man von einem [:Live-DVD:Live-System] booten. {{{#!vorlage Warnung fsck darf niemals auf eingehängte und verschlüsselte Partitionen angewandt werden. Verschlüsselte Partitionen müssen entschlüsselt werden ohne sie einzuhängen, anschließend kann fsck auf die zugewiesene Gerätedatei im Device Mapper angewandt werden (siehe [#Dateisystempruefung-einer-LUKS-verschluesselten-Partition Dateisystemprüfung einer LUKS-verschlüsselten Partition]). }}} == normale Partition == Im Terminal [1] kann das Dateisystem einer Partition mit dem folgenden Kommando überprüft werden: {{{#!vorlage Befehl fsck /dev/sdaX }}} `fsck` ermittelt selbstständig das Dateisystem und führt dann das passende Programm wie `fsck.ext4`, `fsck.ext3` oder `fsck.xfs` aus. Für die eigentliche oder auch automatische Reparatur müssen je nach Dateisystemtyp Optionen hinzugefügt werden. Welche dies sind, wird beim Ergebnis der Überprüfung angezeigt. Der Test kann dann mit diesen Optionen wiederholt werden. Eine Übersicht über die Optionen findet man in der jeweiligen [:man:Manpage] zu den Befehlen. == Dateisystemprüfung einer LUKS-verschlüsselten Partition == Für die Prüfung darf die Partition __nicht__ eingehängt sein! Dies kann bei einer externen Festplatte z.B. dadurch erreicht werden, dass die Festplatte angeschlossen wird, dann in der Passwortabfrage aber auf ''"Abbrechen"'' geklickt wird. Mit folgendem Befehl kann die Partition nun entschlüsselt werden, ohne sie einzuhängen: {{{#!vorlage Befehl sudo cryptsetup luksOpen /dev/sdb1 lukstemp }}} Die Passphrase zum Entschlüsseln wird abgefragt. Nun kann man mit {{{#!vorlage Befehl sudo fsck.ext4 -pfv -C0 /dev/mapper/NameDesLogischenVolumes }}} die Überprüfung mit automatischer Reparatur starten. Wurde der Name des logischen Volumens vergessen, können diese mit {{{#!vorlage Befehl sudo lvs }}} angezeigt werden. Mit {{{#!vorlage Befehl sudo cryptsetup close lukstemp }}} wird die entschlüsselte Partition wieder geschlossen. = Links = * [:Dateisystem:] * [:Festplatten_Problembehebung:] * [:LUKS:] # tag: System, Dateisystem