Czy uniemożliwić konsoli wyczyszczenie ekranu?

11

Podczas uruchamiania systemu Linux czasami jedna lub dwie linie są szybko usuwane. Myślę, że niektóre z nich nawet nie pojawiają się w dmesg. Jeśli nic więcej, chcę ukryć opcję wyczyść przed pytaniem „login:”. Czy istnieje polecenie jądra lub sysctl, które można ustawić, aby temu zapobiec, dzięki czemu mogę je odczytać na ekranie konsoli po uruchomieniu?

Paul Hoffman
źródło
Czy /var/log/kern.log nie pomaga? Czy ty tego nie masz?
HUB

Odpowiedzi:

13

Większość potrzebnych informacji będzie, /var/log/dmesga /var/log/messagespo uruchomieniu systemu powinieneś najpierw sprawdzić te pliki.

Generalnie maszyny linux uruchomić mingetty dla wirtualnych terminali. Jeśli masz tradycyjny system inicjujący sysv, są one kontrolowane przez /etc/inittab. Możesz dodać --noclearopcję do nieszczęścia, aby zapobiec czyszczeniu ekranu. Aby to zrobić, edytuj /etc/inittabi zmień ten wiersz:

1:2345:respawn:/sbin/mingetty tty1

do

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

następnie uruchom ponownie komputer.

Niektóre nowsze dystrybucje linuksowe używają zamienników init, takich jak Upstart (na przykład Ubuntu). Zazwyczaj nie używają / etc / inittab i zamiast tego używają innych plików konfiguracyjnych. Oto dyskusja na temat tego, jak wywoływanie mingetty działa na Ubuntu .

Phil Hollenback
źródło
Cóż, zapomniałem wspomnieć, że naprawdę zależy mi na Ubuntu. Powyższy link wskazuje na pewne nieaktualne informacje, a moja pierwsza próba (po prostu edycja /etc/init/tty1.conf nie zakończyła się powodzeniem.
Paul Hoffman, 5'11
Korzystają one gettyz util-linuxnie mingetty, ale to działa z Debianem również. Dzięki!
mirabilos
4

Jeśli nic innego nie pomogło, możesz złapać laptopa i przechwycić cały dziennik jądra poprzez konsolę szeregową, dodając coś takiego do parametrów jądra:

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

Spowoduje to, że dane wyjściowe będą wyświetlane na konsoli szeregowej (w twoim programie terminalowym) i na standardowym tty. Czasami dostępny jest SOL (Serial Over LAN).

CENTRUM
źródło
3

Po wielu godzinach googlingu znalazłem rozwiązanie w tym wątku i tym pytaniu . Ta procedura działa Ubuntu 12.04.1 LTStak, jak tutaj opisano , ale nie powinna zbytnio różnić się w przypadku innych dystrybucji.

Najpierw dodaj console=tty1do swojego GRUB_CMDLINE_LINUX(proponuję również dodać noplymouthdo inhibit plymouthi jego bezużyteczny ekran powitalny).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Wymusza to wydrukowanie dziennika jądra tty1zamiast tty7unikania ttyprzełączania przed monitem o zalogowanie.

Następnie wystarczy wejść /etc/initi edytować jeden lub więcej tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.conflub console.conf. Zredagowałem je wszystkie, dodając --noclearopcję do gettypolecenia. Na przykład edycja tty1.conf:

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

będziesz musiał wymienić:

respawn
exec /sbin/getty -8 38400 tty1

z:

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

To wszystko, teraz twój system powinien uruchomić się w jednym, ttybez czyszczenia.

Avio
źródło
1

dmesg wraca do samego początku jądra, zaczynając od

[    0.000000] Initializing cgroup subsys cpuset

Być może jest to jakiś komunikat bios lub część programu ładującego? Tak czy inaczej, istnieje tak wiele różnych rzeczy, które mogą wygasić ekran, nie wiedząc, gdzie dokładnie się to wydarzyło, trudno powiedzieć, co z tym zrobić. Czy na ekranie pozostało tylko „Login:”? czy jest nad tym jakiś inny boot-up? Jeśli jest to bezpośrednio przed monitem o zalogowanie się i nic więcej nie jest na ekranie, to może /etc/issuema w nim polecenie wygaszania ekranu? W przeciwnym razie możesz użyć bufora ramki konsoli, który przełącza tryb wideo. Na moim komputerze ekran jest wygaszony po załadowaniu czcionki konsoli.

DerfK
źródło
/etc/issueSprawcą może być także TL; DR . Dobra wskazówka.
Tino,