Impedire alla console di cancellare lo schermo?


11

Quando si avvia in Linux, a volte ci sono una o due linee che vengono cancellate rapidamente. Penso che alcuni di loro non compaiano nemmeno in Dmesg. Se non altro, desidero eliminare la cancellazione prima del prompt "login:". Esiste un comando del kernel o un sysctl che posso impostare per impedirlo in modo da poterli leggere sullo schermo della console dopo l'avvio?


/Var/log/kern.log non aiuta? O non ce l'hai?
HUB

Risposte:


13

La maggior parte delle informazioni desiderate saranno contenute /var/log/dmesge /var/log/messagesdopo l'avvio del sistema, è necessario controllare prima quei file.

Generalmente le macchine Linux eseguono mingetty per i terminali virtuali. Se si dispone di un sistema init Sysv tradizionale, quelli sono controllati da /etc/inittab. È possibile aggiungere l' --noclearopzione a mingetty per evitare di cancellare lo schermo. Per fare ciò, modifica /etc/inittabe cambia questa riga:

1:2345:respawn:/sbin/mingetty tty1

per

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

quindi riavviare il computer.

Alcune distribuzioni Linux più recenti usano sostituti di init come Upstart (ad esempio Ubuntu). Questi generalmente non usano / etc / inittab e invece usano altri file di configurazione. Ecco una discussione su come chiamare mingetty funziona su Ubuntu .


Bene, ho dimenticato di dire che mi interessa davvero Ubuntu. Il link sopra indica alcune informazioni obsolete e il mio primo tentativo (basta modificare /etc/init/tty1.conf non ha avuto successo.
Paul Hoffman,

Usano gettyda util-linuxno mingetty, ma funziona anche con Debian. Grazie!
mirabilos,

10

Con systemd le cose sono diverse. Vedi l'articolo Smetti di cancellare My God Damned Console . In breve:

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

Verifica il risultato con systemctl cat getty@tty1.service


4

Se nient'altro ha aiutato, puoi prendere il tuo laptop e acquisire tutto il registro del kernel attraverso la console seriale aggiungendo qualcosa di simile ai parametri del kernel:

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

Ciò farà sì che l'output apperar sulla console seriale (nel programma terminale) e su tty standard. A volte è disponibile SOL (Serial Over LAN).


3

Dopo ore di ricerche su Google, ho trovato la soluzione in questa discussione e in questa domanda . Questa procedura funziona Ubuntu 12.04.1 LTScome descritto anche qui , ma non dovrebbe differire troppo per le altre distribuzioni.

Innanzitutto, aggiungi console=tty1al tuo GRUB_CMDLINE_LINUX(suggerisco anche di aggiungere noplymouthper inibire plymouthe la sua inutile schermata iniziale).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Questo forza la stampa del log del kernel tty1invece di tty7ed evita lo ttyswitch prima del prompt di login.

Poi basta andare in /etc/inite modificare uno o più dei tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.confo console.conf. Li ho modificati tutti aggiungendo l' --noclearopzione al gettycomando. Ad esempio, la modifica tty1.conf:

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

dovrai sostituire:

respawn
exec /sbin/getty -8 38400 tty1

con:

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

Questo è tutto, ora il tuo sistema dovrebbe avviarsi in un singolo ttysenza cancellarlo.


1

dmesg qui risale all'inizio del kernel, a cominciare da

[    0.000000] Initializing cgroup subsys cpuset

Forse questo è un messaggio di bios o parte del tuo boot loader? Ad ogni modo, ci sono così tante cose diverse che possono oscurare lo schermo, senza sapere esattamente dove è successo nel processo è difficile dire cosa fare al riguardo. L'unica cosa rimasta sullo schermo è "Login:"? o c'è qualche altra roba di avvio sopra di essa? Se è immediatamente prima della richiesta di accesso e nient'altro è sullo schermo, allora forse /etc/issueha un comando di oscuramento dello schermo? Altrimenti, potresti utilizzare un qualche tipo di buffer del frame della console che sta cambiando la modalità video. Sul mio computer, lo schermo viene oscurato quando viene caricato un font della console.


TL; DR /etc/issuepuò anche essere un colpevole. Buon suggerimento.
Tino
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.