Löschen der Bootmeldungen deaktivieren

Aus wiki.archlinux.de
Version vom 29. Juni 2017, 19:51 Uhr von Henrikx (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Nach dem Bootvorgang wird der Bildschirm gelöscht und das Login Prompt erscheint, so das man Fehlermeldungen und die Ausgaben der Init-Scripte nicht mehr lesen kann.

Hinweis: Die Kernel-Meldungen können nach dem Booten immer mit dmesg angezeigt werden.

Flow Control

Flow Control ist eine Grundfunktion der meisten Terminal Emulatoren und virtuellen Konsolen (vc):

  • Strg + S hält die Ausgabe an
  • Strg + Q setzt die Ausgabe fort

Permanentere Lösung

Eine permanentere Lösung ist das hinzufügen einer Pause oder warten auf einen Tastendruck während die Meldungen noch sichtbar sind.

  • auf Tastendruck warten bevor der Bildschrim gelöscht wird
read -n1
  • maximal 5 Sekunden warten oder bis Tastendruck
read -t5 -n1

Um die Pause zu erzeugen nachdem der Bootvorgang beendet wurde fügt man eins der beiden ans Ende der Datei /etc/rc.local ein. Um die Pause zu erzeugen, wenn ein Bootscript in /etc/rc.d mit einem expliziten Fehlercode abbricht, an Ende der stat_fail() Funktion in der Datei /etc/rc.d/functions. Das Letztere ist ein Systemscript und die Änderungen können bei einem Update überschrieben werden. Wer nicht weiss was das bedeutet sollte /etc/rc.local verwenden.

Bootmeldungen nicht von tty1 löschen

Normales Verhalten: Bootmeldungen laufen durch, Bildschirm wird gelöscht, Inhalt von /etc/issue wird angezeigt, Login (Konsole oder Login Manager) wird angezeigt

gewünschtes Verhalten: Bootmeldungen laufen durch, Login (Konsole oder Login Manager) wird angezeigt ohne Anzeige auf tty1 zu löschen

Zuerst sollte man wissen, dass der Bildschirm gelöscht werden kann:

  • von getty, agetty oder mingetty
  • durch Steuerzeichen in /etc/issue

Um das gewünschte Verhalten zu erzwingen sollte man einen/alle der obigen Faktoren eliminieren.

Löschen durch getty deaktivieren

In der Datei /etc/inittab fügt man die Option --noclear zur Zeile für die erste virtuelle Konsole (die c1 Zeile) hinzu:

c1:2345:respawn:/sbin/agetty --noclear -8 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
...
...

Löschen in /etc/issue deaktivieren

Anzeige von /etc/issue deaktivieren

Hinzufügen der Option --noissue in /etc/inittab

c1:2345:respawn:/sbin/agetty --noissue -8 38400 tty1 linux

tty1 eine eigene Datei /etc/issue zuweisen

Kopieren der existierenden /etc/issue nach /etc/issue.tty1 (ohne die erste Zeile):

sed ld /etc/issue > /etc/issue.tty1

Diese Zeile in /etc/inittab suchen:

c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux

Und ersetzen mit:

c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux -f /etc/issue.tty1

Datei /etc/issue direkt editieren

Einfach die erste Zeile löschen, so dass die Datei so aussieht

Arch Linux \r (\n) (\l)

Achtung: Bevor die Datei geändert wird, bitte erst weiterlesen, wie diese wiederherstellt werden kann.


Wiederherstellen der Datei /etc/issue

Die Zeichen können nicht einfach wieder eingegeben werden, da es spezielle Zeichen sind, die nicht auf der Tastatur verfügbar sind! Man kann die erste Zeile markieren, in einer neuen Datei einfügen und speichern oder einfach ein Backup/Kopie der kompletten /etc/issue anlegen. Bei Bedarf kann dann entweder die erste Zeile aus der Sicherungsdatei kopiert und wieder in /etc/issue eingefügt, oder die Kopie der kompletten /etc/issue wieder zurückkopiert werden.

Optional, kann man die Zeichen mit speziellen Methoden auch dirket eingeben. Wie das funktioniert hängt vom verwendeten Editor ab:

ESC (exit insert mode)
:r !clear
:x (save and exit)

Das fügt die Zeichen, die dem Shell Befehl clear' entsprechen ein. Man kann die Zeichen auch manuell eingeben:

i (insert)
ctrl-v (insert literal character)
ESC (insert escape character)
c
ESC (exit insert mode)
ZZ (Save and Exit)
C-q ESC (to insert literal escape)