Raspberry Pi 3 und Raspbian Jessie - Wie starte ich fsck beim Booten?


12

Wie führe ich fsck beim Booten aus, wenn ich Pi 3 und Raspberry Jessie verwende? Ich habe ein Tutorial gelesen, aber sie unterscheiden sich.

Ich bin gelaufen, sudo touch /forcefsckaber was muss ich noch tun? Ich weiß, dass ich FSCKFIX = yes setzen sollte, aber was ist die richtige Datei? Einige sagen /lib/init/vars.shandere /etc/default/rcS.

Wie kann ich überprüfen, ob meine Einstellungen funktionieren? Ich habe keine Sichtbarkeit zum Bildschirm. Es gibt Stromausfälle, daher besteht ein hohes Risiko, dass das Dateisystem beschädigt wird.

Bearbeiten:

Ich habe zwei unten erwähnte Lösungen ausprobiert.

1) Wenn Sie sudo shutdown -rF now/var/log/boot.log verwenden, heißt es: [^[[32m OK ^[[0m] Started Load/Save Random Seed. [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [ 3.679250] systemd-fsck[219]: fsck.fat 3.0.27 (2014-11-12) [ 3.681320] systemd-fsck[219]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. Mounting /boot... [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. Starting Load/Save RF Kill Switch Status of rfkill0... [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [^[[32m OK ^[[0m] Mounted /boot. [^[[32m OK ^[[0m] Reached target Local File Systems. Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... Starting LSB: Raise network interfaces.... [^[[32m OK ^[[0m] Reached target Remote File Systems. Starting Trigger Flushing of Journal to Persistent Storage... Starting LSB: Prepare console... Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)... [^[[32m OK ^[[0m] Started Tell Plymouth To Write Out Runtime Data.

2) Mit fsck.mode=forceund fsck.repair=yesim /boot/cmdline.txtBootlog heißt es: [^[[32m OK ^[[0m] Started Show Plymouth Boot Screen. [^[[32m OK ^[[0m] Reached target Paths. [^[[32m OK ^[[0m] Created slice system-systemd\x2drfkill.slice. [^[[32m OK ^[[0m] Created slice system-ifup.slice. [ 5.749367] systemd-fsck[112]: Pass 2: Checking directory structure [ 8.673500] systemd-fsck[112]: Pass 3: Checking directory connectivity [ 8.683831] systemd-fsck[112]: Pass 4: Checking reference counts [ 9.318835] systemd-fsck[112]: Pass 5: Checking group summary information [ 9.518754] systemd-fsck[112]: /dev/mmcblk0p2: 131321/956160 files (0.2% non-contiguous$ [^[[32m OK ^[[0m] Started File System Check on Root Device. Starting File System Check on /dev/mmcblk0p1... Starting Remount Root and Kernel File Systems... [^[[32m OK ^[[0m] Started Remount Root and Kernel File Systems. Starting Load/Save RF Kill Switch Status of rfkill0... Starting Load/Save Random Seed... [^[[32m OK ^[[0m] Reached target Local File Systems (Pre). [ 9.639259] systemd-fsck[239]: fsck.fat 3.0.27 (2014-11-12) [^[[32m OK ^[[0m] Started Load/Save RF Kill Switch Status of rfkill0. [ 9.644216] systemd-fsck[239]: /dev/mmcblk0p1: 124 files, 2666/8057 clusters [^[[32m OK ^[[0m] Started File System Check on /dev/mmcblk0p1. [^[[32m OK ^[[0m] Started Load/Save Random Seed. Mounting /boot... [^[[32m OK ^[[0m] Mounted /boot.

Warum ist die Protokolldatei in diesen beiden Fällen völlig unterschiedlich?

Antworten:


22

Ich habe sudo touch / forcefsck ausgeführt, aber was muss ich noch tun?

Das ist etwas, das mehr für Keuchen gilt; jessie kann (oder kann nicht) abwärtskompatibel damit sein, aber Sie können es genauso gut auf die neue Weise tun:

Fügen Sie Folgendes hinzu zu /boot/cmdline.txt:

fsck.mode=force

Stellen Sie sicher, dass die Datei nur eine Zeile enthält. Parameter sollten durch Leerzeichen getrennt werden.

Sie werden wahrscheinlich bemerken, dass fsck.repair=yeses bereits da ist; das ist nicht dasselbe. Von man systemd-fsck(dies sind tatsächlich Parameter, die vom Kernel an init , dh systemd, weitergegeben werden):

fsck.mode =

Eine von "Auto", "Force", "Skip". Steuert die Betriebsart. Die Standardeinstellung ist "auto" und stellt sicher, dass Dateisystemprüfungen durchgeführt werden, wenn die Dateisystemprüfung dies für erforderlich hält. "Erzwingen" führt bedingungslos zu vollständigen Dateisystemprüfungen. "überspringen" überspringt alle Dateisystemprüfungen.

fsck.repair =

Einer von "putzen", "ja", "nein". Steuert die Betriebsart. Der Standardwert ist "putzen" und repariert automatisch Probleme, die sicher behoben werden können. "Ja" beantwortet alle Fragen von fsck mit "Ja" und "Nein" beantwortet alle Fragen mit "Nein".


Wie unterscheidet sich das von sudo shutdown -rF now? Boot.log sieht ganz anders aus.
JPX

3

Das, was ich für eine alte, stabile Version von Jessie verwende, am Ende der Zeile in cmdline.txt: forcefsck

Ich habe auch Folgendes in fstab: /dev/mmcblk0p1 /boot vfat defaults,noatime 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 Beachten Sie das 1und 2am Ende der Zeile

Es überprüft und repariert die Root-Partition (/ dev / mmcblk0p2) bei jedem Start (@JulianKnight not / dev / sda2).

Was im ursprünglichen OP beschrieben ist, funktioniert immer noch für Wheezy auf RPi: sudo touch /forcefsck

@WillianPaixao nach Wheezy wird die -FOption shutdownnicht mehr unterstützt

Das Erzwingen einer Dateisystemprüfung ist (meistens) an die Kernel-Version gebunden. Irgendwann nach Debian 8.0 (in 8.2?) Wurde sie wie in der Antwort von @goldilocks beschrieben geändert.


2

Sie sollten auch in der Lage sein, Folgendes zu tun, was für jedes Linux funktionieren sollte, nicht nur für den Pi (offensichtlich ändert sich das Gerät für verschiedene Plattformen, sda2 sollte für eine Standard-Pi-SD-Karte geeignet sein):

sudo tune2fs -c 1 /dev/sda2

Das sollte bei jedem Neustart eine Überprüfung setzen. Sie können die Nummer beliebig ändern. Verwenden Sie -i anstelle von -c, wenn Sie eine zeitbasierte Überprüfung wünschen. Weitere Informationen finden Sie auf der Manpage.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.