Verhindern Sie, dass die Konsole den Bildschirm löscht?


11

Beim Booten unter Linux werden manchmal ein oder zwei Zeilen schnell gelöscht. Ich denke, dass einige von ihnen nicht einmal in dmesg erscheinen. Wenn nichts anderes, möchte ich das Löschen vor der Eingabeaufforderung "login:" unterdrücken. Gibt es einen Kernel-Befehl oder ein sysctl, das ich einstellen kann, um dies zu verhindern, damit ich sie nach dem Booten auf dem Konsolenbildschirm lesen kann?


Hilft /var/log/kern.log nicht? Oder hast du es nicht?
HUB

Antworten:


13

Die meisten gewünschten Informationen befinden sich in /var/log/dmesgund /var/log/messagesnach dem Systemstart sollten Sie diese Dateien zuerst überprüfen.

Im Allgemeinen werden Linux-Maschinen für die virtuellen Terminals mingetty ausgeführt . Wenn Sie ein traditionelles Sysv-Init-System haben, werden diese von gesteuert /etc/inittab. Sie können die --noclearOption zu mingetty hinzufügen, um das Löschen des Bildschirms zu verhindern. Bearbeiten /etc/inittabund ändern Sie dazu diese Zeile:

1:2345:respawn:/sbin/mingetty tty1

zu

1:2345:respawn:/sbin/mingetty --noclear tty1

Starten Sie dann den Computer neu.

Einige neuere Linux-Distributionen verwenden Init-Ersetzungen wie Upstart (z. B. Ubuntu). Diese verwenden im Allgemeinen nicht / etc / inittab und verwenden stattdessen einige andere Konfigurationsdateien. Hier ist eine Diskussion darüber, wie das Aufrufen von Mingetty unter Ubuntu funktioniert .


Nun, ich habe vergessen zu erwähnen, dass mir Ubuntu wirklich wichtig ist. Der obige Link verweist auf einige veraltete Informationen, und mein erster Versuch (nur bearbeiten /etc/init/tty1.conf war überhaupt nicht erfolgreich.
Paul Hoffman

Sie verwenden gettyvon util-linux, nicht mingetty, aber dies funktioniert auch mit Debian. Vielen Dank!
Mirabilos

10

Bei systemd sieht es anders aus. Siehe Artikel Stop Clearing My God Damned Console . Zusamenfassend:

mkdir /etc/systemd/system/getty@.service.d
cat >/etc/systemd/system/getty@.service.d/noclear.conf <<EOF
[Service]
TTYVTDisallocate=no
EOF
systemctl daemon-reload

Überprüfen Sie das Ergebnis mit systemctl cat getty@tty1.service


4

Wenn nichts anderes geholfen hat, können Sie sich Ihren Laptop schnappen und das gesamte Kernel-Protokoll über die serielle Konsole erfassen, indem Sie den Kernel-Parametern Folgendes hinzufügen:

console=tty0 console=ttyS0,9600n8 console=tty0

Dadurch wird die Ausgabe auf der seriellen Konsole (in Ihrem Terminalprogramm) und auf der Standard-Tty angezeigt. Manchmal ist SOL (Serial Over LAN) verfügbar.


3

Nach stundenlangem googeln fand ich die Lösung in diesem Thread und dieser Frage . Dieses Verfahren funktioniert für Ubuntu 12.04.1 LTSwie auch beschrieben hier , aber es sollte nicht zu viel unterscheiden sich für andere Distributionen.

Fügen Sie console=tty1zunächst Ihre hinzu GRUB_CMDLINE_LINUX(ich schlage auch vor, zu hinzufügen noplymouth, um zu hemmen plymouthund seinen nutzlosen Begrüßungsbildschirm).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Dies erzwingt das Drucken des Kernel-Protokolls tty1anstelle von tty7und vermeidet den ttyWechsel vor der Anmeldeaufforderung.

Dann gehen Sie einfach in /etc/initund bearbeiten eine oder mehr tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.confoder console.conf. Ich habe sie alle bearbeitet und --nocleardem gettyBefehl eine Option hinzugefügt . Zum Beispiel bearbeiten tty1.conf:

#> sudo vi /etc/init/tty1.conf

Sie müssen ersetzen:

respawn
exec /sbin/getty -8 38400 tty1

mit:

respawn
exec /sbin/getty -8 38400 --noclear tty1

Das ist alles, jetzt sollte Ihr System in einem einzigen starten, ttyohne es zu löschen.


1

dmesg Hier geht es zurück zum Anfang des Kernels, beginnend mit

[    0.000000] Initializing cgroup subsys cpuset

Vielleicht ist dies eine BIOS-Nachricht oder ein Teil Ihres Bootloaders? In beiden Fällen gibt es so viele verschiedene Dinge, die den Bildschirm ausblenden können, ohne zu wissen, wo genau es passiert ist. Es ist schwer zu sagen, was man dagegen tun soll. Ist das einzige, was auf dem Bildschirm "Login:" übrig bleibt? oder gibt es noch andere Boot-Up-Sachen darüber? Wenn es unmittelbar vor der Anmeldeaufforderung ist und nichts anderes auf dem Bildschirm angezeigt wird, enthält es möglicherweise /etc/issueeinen Befehl zum Ausblenden des Bildschirms ? Andernfalls könnten Sie eine Art Konsolenrahmenpuffer verwenden, der den Videomodus wechselt. Auf meinem Computer wird der Bildschirm ausgeblendet, wenn eine Konsolenschrift geladen wird.


TL; DR /etc/issuekann auch ein Schuldiger sein. Guter Hinweis.
Tino
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.