Ich habe einen kopflosen Ubuntu 12.04-Server in einem 1500 Meilen entfernten Rechenzentrum. Zweimal beim Neustart entschied das System, dass es fsck musste. Leider ließ Ubuntu fsck im interaktiven Modus laufen, so dass ich jemanden in meinem Rechenzentrum bitten musste, zu mir zu gehen, eine Konsole anzuschließen und die Y-Taste zu drücken. Wie richte ich es so ein, dass fsck beim Booten im nicht interaktiven Modus mit der Markierung -y
oder -p
(aka -a
) ausgeführt wird?
Wenn ich Ubuntus Bootprozess richtig verstehe, ruft init mountall auf, was wiederum fsck aufruft. Allerdings sehe ich keine Möglichkeit zu konfigurieren, wie fsck aufgerufen wird. Ist das möglich?
(Um einen Vorschlag abzulehnen: Ich bin mir bewusst, dass ich ihn verwenden kann tune2fs -i 0 -c 0
abzulehnen: regelmäßige fscks verhindern kann. Das kann ein wenig helfen, aber ich muss das System versuchen, wieder hochzufahren, selbst wenn es einen echten Grund für fsck hatte, etwa nach einem Stromausfall .)
Als Antwort auf nachfolgende Fragen finden Sie hier die Details zu meiner / etc / fstab. Ich glaube nicht, dass ich das von dem, was Ubuntu dort veröffentlicht hat, bearbeitet habe.
UUID=3515461e-d425-4525-a07d-da986d2d7e04 / ext4 errors=remount-ro 0 1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot ext4 defaults 0 2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none swap sw 0 0
/etc/default/rcS
sind 2019 nicht wirklich gültig, da Ubuntu 16 und Ubuntu 18 jetzt systemd verwenden. Ich kenne die ganze Geschichte für systemd nicht, aber diefsck.repair
Befehlszeilenoption configuration / kernel scheint relevant zu sein. In den Dokumenten heißt es derzeit "Standard"preen
, was bedeutet-p
. Es kann auch eingestellt werdenyes
für-y
./etc/default/grub
kann der Ort sein, um dies einzustellen. Ich wäre dankbar, wenn jemand, der mehr darüber weiß, eine moderne Systemantwort liefern würde.Antworten:
Die Einstellung ich suche ist in / etc / default / rcS ,
FSCKFIX=yes
. Dies bedeutet "Dateisysteme beim Booten automatisch mit Inkonsistenzen reparieren" und bewirkt, dass fsck mit dem-y
Flag ausgeführt wird. Es wurdeno
in beiden meiner Ubuntu-Systeme eingestellt.Auch wenn auf gesetzt,
no
ist die Startzeit fsck immer noch nicht interaktiv. mountall läuft mit fsck-a
, einem Synonym für-p
, was bedeutet "automatisch alle Dateisystemprobleme beheben, die ohne menschliches Eingreifen sicher behoben werden können". Wechselt anscheinend-p
in den interaktiven Modus, wenn unsichere Korrekturen vorgenommen werden müssen. Um vollautomatisch zu laufen, benötigen Sie-y
oderFSCKFIX=yes
.Hier ist das relevante Codebit aus mountall.c
quelle
fsck.repair=yes
paramGRUB_CMDLINE_LINUX_DEFAULT
in/etc/default/grub
Für Ubuntu 15,16,17+ befindet sich die FSCKFIX-Werteinstellung in lib / init / vars.sh
Kann den Befehl verwenden,
grep -r FSCKFIX * 2>/dev/null
um es zu beenden.quelle
/etc/default/rcS
./lib/init/vars.sh
hatFSCKFIX
aber dann einen default für quellen/etc/default/rcS
die diesen überschreiben können. OTOH, ein neu installiertes Ubuntu 18-System, hatte überhaupt keinercS
Datei.Stellen Sie sicher, dass Sie keine Flags haben, die dies in fstab verursachen könnten, und überprüfen Sie Ihre Init-Skripte. (Versuchen Sie, Ihre Init-Skripte nach 'fsck' zu durchsuchen, um herauszufinden, wo sie verwendet werden.) Auf meinem System wird fsck nicht interaktiv ausgeführt. Hier finden Sie eine Kopie meiner fstab und einen Teil meines Skripts / etc / init / mountall, den Sie vergleichen können
Snippet aus / etc / init / mountall
quelle
grep FSCKFIX /etc/default/rcS
auf Ihrem System steht?