Mein Desktop-Computer mit Debian Jessie wurde bei jedem Start in eine Notfallmodus-Shell verschoben. Auf dem Bildschirm wird angezeigt, dass verwendet werden soll journalctl -xb
, um den Grund zu ermitteln und systemctl default
das Booten fortzusetzen. Wenn ich ausführe systemctl default
, bootet das System weiter und nach ein paar Wochen mit dem System ist anscheinend nichts mehr falsch.
Wenn man durchschaut journalctl -xb
, ist nichts der Grund, warum man in eine Nothülle fällt. Gibt es eine einfache Möglichkeit, genau den Grund für die Entscheidung zu ermitteln, in den Notfallmodus zu wechseln? Gibt es andere Flags oder Startoptionen, die deutlich machen, wo das Problem liegt?
debian
systemd
systemd-journald
Jordanm
quelle
quelle
journalctl -xb
wann es passiert ist?systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
für Details auf forensischer Ebene ...Antworten:
Der Fehler sollte
[ FAIL ]
auf der Konsole (anstelle von[ OK ]
) rot angezeigt werden , daneben die Beschreibung des Geräts. In der Regel sind die ersten Fehler am wichtigsten. Verwenden Sie Shift + Pageup auf der Konsole, um nach oben zu scrollen und die letzten Bildschirmausgabe der Ausgabe anzuzeigen. Dies funktioniert möglicherweise nicht, wenn zu viel ausgegeben wird.Dies funktioniert auch dann, wenn Sie normalerweise keine
[ OK ]
Nachrichten sehen, z. B. aufgrundquiet
der von Debian verwendeten Kernel-Befehlszeile. Beim ersten Fehler wechselt systemd in den ausführlichen Modus.Ansonsten können Sie verwenden
systemctl
. Ohne Optionen wird eine umfangreiche Liste bekannter Einheiten angezeigt, deren Fehler rot hervorgehoben sind. Verwenden Siesystemctl --state=failed
oder, um nur die fehlgeschlagenen anzuzeigensystemctl --failed
.Wenn Sie die Gerätedateien durchsuchen, gibt es nur sehr wenige Möglichkeiten, auf die der Boot zurückgreifen kann
emergency.target
. Dies ist normalerweise der.mount
Fall, wenn eine Einheit für ein lokales Dateisystem ausfällt undlocal-fs.target
ausfällt. Oder wenn Ihr initramfs das Root-Dateisystem nicht bereitstellen kann, wenn Ihr initramfs systemd verwendet.local-fs.target
hatOnFailure=emergency.target
. Und es schlägt fehl, weil Einheiten für lokale Dateisysteme automatisch zur Liste Erforderlich von local-fs.target hinzugefügt werden (sofern dies nicht der Fall istDefaultDependencies=no
).quelle
Hin und wieder stoße ich auf eine Eingabeaufforderung für den "Wartungsmodus", und ich muss auch nach Fehlern in journald scrollen. Da journalctl weniger als Pager verwendet, sollten Sie in der Lage sein, weniger Verknüpfungen auf Ihre Suche anzuwenden.
Normalerweise würde ich mich auf die Suchfunktion (/) verlassen und nach etwas suchen, das "Fehler", "Warnung" oder "Fehler" entspricht. Und stellen Sie sicher, dass -i die Suche ohne Berücksichtigung der Groß- und Kleinschreibung erzwingt.
Meine Tastenanschläge sehen also normalerweise so aus:
Es ist technisch gesehen keine erschöpfende oder genaue Suche nach dem genauen Problem, aber ich habe noch nie ein Boot-Problem auf diese Weise verpasst.
Einige verwandte weniger Tastaturkürzel unten:
http://www.thegeekstuff.com/2010/02/unix-less-command-10-tips-for-effective-navigation/
quelle
systemd
protokolliert rote Nachrichten für Fehler beim Starten einer Serviceeinheit oder, was noch wichtiger ist, Fehler beim Mounten eines Dateisystems.