Gegen Ende der "Startsequenz" 1 sehe ich eine lange Reihe von Diagnosemeldungen, die sehr schnell vorbeifliegen, kurz bevor ich die Anmeldeaufforderung 2 sehe .
AFAICT, die meisten, wenn nicht alle Zeilen, aus denen diese kurzlebige Ausgabe besteht, beginnen mit einer der unten gezeigten Zeichenfolgen
[ OK ]
[FAILED]
... wo das OK
in grün ist und das FAILED
in rot ist 3 .
Diese Nachrichten blinken zu kurz, als dass ich sie lesen könnte.
Meine Frage ist:
Gibt es eine Möglichkeit, diese Nachrichten leichter lesbar zu machen?
Mögliche Lösungen, die mir in den Sinn kommen, sind (in der Reihenfolge ihrer Präferenz):
- Abschlagen (oder einfach Umleiten) dieser Nachrichten wörtlich 4 in eine persistente Protokolldatei;
- Aktivieren eines Paging-Mechanismus (
Press any key to continue...
); - Einfügen einer Pause (konfigurierbarer Länge) nach dem Drucken dieser Nachrichten;
- Aktivieren einer Taste (oder Tastenkombination), um die Ausgabe auf dem Bildschirm anzuhalten 5 .
EDIT: Aufgrund der Kommentare, die ich bisher erhalten habe, muss ich zu dem Schluss kommen, dass das Wort wörtlich in (1) oben entweder nicht verstanden oder nicht ernst genommen wird, obwohl ich so viel wie möglich betont habe. Ich würde es blinken lassen, wenn ich könnte ...
EDIT2: Der Vorschlag, den meuh in den Kommentaren gemacht hat, scheint mir vielversprechend, aber ich konnte ihn noch nicht zum Laufen bringen. Folgendes habe ich getan:
Zuerst habe ich am Ende Folgendes hinzugefügt /etc/rsyslog.conf
:
# Save boot messages also to boot.log
local7.* /var/log/boot.log
... und neu gestartet. Ich sah die üblichen Diagnosemeldungen vorbeifliegen, aber es wurde keine /var/log/boot.log
Datei erstellt.
Dann habe ich in dem (zugegebenermaßen unwahrscheinlichen) Fall, dass das /var/log/boot.log
bereits existieren muss, rsyslog
darauf schreiben kann (als root):
touch /var/log/boot.log
chgrp adm /var/log/boot.log
chmod 640 /var/log/boot.log
... wo die Befehle chgrp
und chmod
dazu gedacht waren, dass der Besitz und die Berechtigungen von /var/log/boot.log
denen aller anderen Protokolldateien unter übereinstimmen /var/log
. Dann habe ich neu gestartet, die Nachrichten gesehen usw. Die Datei /var/log/boot.log
blieb nach diesem Neustart leer.
(Ich habe das gleiche Nicht-Ergebnis erhalten, als ich die Berechtigungen von /var/log/boot.log
auf geändert habe 666
.)
Ich habe grep
die Ausgabe journalctl --boot
und die Dateien unter /var/log
für alles, was mir einfällt, bearbeitet rsyslog
, was auf etwas Falsches bei mir hinweisen könnte , aber nichts gefunden. (Ich bin überhaupt nicht vertraut rsyslog
, daher bin ich mir sicher, dass meine Suche ziemlich unpassend war.)
Es ist klar, dass das, was ich bisher getan habe, nicht ausreicht, um die gewünschte Protokollierung zu ermöglichen. Ich suche jetzt nach dem, was mir fehlt. Ich konnte jedoch nicht viele relevante Unterlagen finden. Zum Beispiel weder zu erklären rsyslog.conf(5)
noch rsyslogd(8)
zu erklären, was local7
ist ( rsyslog.conf(5)
ist zumindest so freundlich, es einmal zu erwähnen, ohne weitere Informationen zu geben).
EDIT3
Informationen zur Distribution:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.3 (jessie)
Release: 8.3
Codename: jessie
$ uname -a
Linux myhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
EDIT4
Zusätzliche potenziell relevante Informationen:
$ cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/
[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=syslog.service
$ cat /proc/$(pgrep rsyslogd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 128529 128529 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 128529 128529 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ sudo ls /proc/$(pgrep rsyslogd)/fd | wc -l
10
1 Das heißt, was passiert, wenn ich meinen Computer (neu) starte.
2 FWIW multi-user.target
ist meine Standardeinstellung.
3 Der verbleibende Text ist ganz in Weiß über einem schwarzen Hintergrund. Dies gilt für die nachfolgende Anmeldeaufforderung.
4 Ich finde eine Lösung völlig inakzeptabel , bei der ich den genauen Text dieser Nachrichten nicht sehen kann, wie sie während der Startsequenz angezeigt wurden. Da ich ausnahmslos nicht genau weiß, worauf sich eine dieser Diagnosemeldungen bezieht, kann ich nicht alle Arten erkennen, in denen die zugrunde liegenden Informationen, die von der ursprünglichen Nachricht übermittelt werden, umschrieben und auf mehrere andere Nachrichten verteilt werden können , nur in anderen Nachrichten usw. zusammengefasst. (Nur wenn ich online nach dem genauen Wortlaut der ursprünglichen Nachricht suche, habe ich Hoffnung, eine Lösung für das Problem zu finden.) Alles, was ich bisher versucht habe, einschließlich journalctl -b
und dmesg
fehlgeschlagen, es mir zu geben die ursprünglichen Nachrichten wörtlich. Wenn ich zum Beispiel Startup starte, sehe ich nur ein rotes FAILED
, aber es journalctl --boot | grep FAILED | wc -l
kehrt zurück 0
und journalctl --boot | grep -i FAILED | wc -l
kehrt zurück 1086
. Beides ist nicht das, wonach ich suche.
5 In meinem System hätte ich weniger als eine Sekunde Zeit, um eine solche Taste oder Tastenkombination zu drücken, und es gibt keine Warnung, wann dieses kurze Intervall beginnt. Sofern man nicht in der Lage ist, die Dauer des Intervalls zu konfigurieren, in dem ein solcher Tastendruck erfolgen muss, sind auf Tastendruck basierende Lösungen zu unpraktisch, um mehr als ein Manöver der letzten Instanz zu sein. Außerdem, FWIW, habe ich versucht, entweder die Taste oder die Taste zu drücken, als die Nachrichten blitzten, aber keiner machte einen Unterschied.Scroll
LockPause/
Break
journalctl -b
Ihnen (als root) nicht genau das, dh sehen Sie den genauen Text dieser Nachrichten, wie sie während der Startsequenz erschienen sind ?/var/log/boot.log
systemd
, und ich bin dabei, mich ihren Reihen anzuschließen ... Ich habe meine Fn 4 bearbeitet, um (noch mehr) darzulegenjournalctl --boot | grep -i fail
, warum zum Beispiel nicht was ist Ich suche.journal
ist das Vorhandensein von[OK]
/[FAILED]
. Die Nachrichten sind ansonsten identisch. Der richtige Weg, um ausgefallene Geräte zu diagnostizieren / zu beheben , ist jedoch übersystemctl
, nur damit Sie es wissen. Ich weiß nicht, ob Sie den Startvorgang über eine Tastenkombination anhalten können (sie sagen, STRG + S / STRG + Q sollte funktionieren, aber nicht, zumindest nicht auf i915 / KMS). Sie können jedoch das Löschen von Startnachrichten deaktivieren und mit Umschalt + PgUp / Ab durch diese Nachrichten auf TTY1 scrollen.Antworten:
Sie können ein Kernel-Befehlszeilenargument (so etwas wie
console=tty0 console=ttyS0,115200n8
) festlegen , um diese stattdessen an eine serielle Konsole zu senden. Das Gerät, das die serielle Schnittstelle überwacht, kann sie dann einfach protokollieren, da es sich nur um einen Textstrom handelt.Und systemd ist ziemlich dumm, wenn es dieses Zeug sowieso nicht protokolliert. Openrc macht es in /var/log/rc.log. Auch wenn es nicht systemd wäre, könnten Sie wahrscheinlich inittab so ändern, dass dort kein getty / Xorg auf tty1 platziert wird, und verhindern, dass etwas (wie Xorg) an einen anderen Ort wechselt, und der alte Text bleibt möglicherweise erhalten (genau wie bei alt) pre-systemd openSUSE). Oder kopieren Sie es in ein anderes tty (was meiner Meinung nach eher Syslog als inittab ist ... und Sie sehen möglicherweise viele Linux-Installer, die dies auf tty9 + tun). Wenn es weg und zurück wechselt, wird es einfach nicht zurückblättern (Shift + Pgup) ), wird aber wahrscheinlich eine Ausgabeseite haben. Vielleicht kennt jemand, der mehr über systemd weiß, das neue Äquivalent zu inittab, und Sie können das ändern.
quelle
systemd
dieses Zeug protokolliert wird.