Empêcher la console d'effacer l'écran?


11

Lors du démarrage sous Linux, il y a parfois une ou deux lignes qui sont rapidement effacées. Je pense que certains d'entre eux n'apparaissent même pas dans le dmesg. Si rien d'autre, je veux supprimer le clear avant l'invite "login:". Existe-t-il une commande du noyau ou sysctl que je peux définir pour empêcher cela afin que je puisse les lire sur l'écran de la console après le démarrage?


/Var/log/kern.log n'aide-t-il pas? Ou vous ne l'avez pas?
HUB

Réponses:


13

La plupart des informations que vous souhaitez contiennent /var/log/dmesget /var/log/messagesaprès le démarrage du système, vous devez d'abord vérifier ces fichiers.

Généralement, les machines Linux exécutent mingetty pour les terminaux virtuels. Si vous avez un système d'initialisation sysv traditionnel, ceux-ci sont contrôlés par /etc/inittab. Vous pouvez ajouter l' --noclearoption à mingetty pour éviter d'effacer l'écran. Pour ce faire, modifiez /etc/inittabet modifiez cette ligne:

1:2345:respawn:/sbin/mingetty tty1

à

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

puis redémarrez la machine.

Certaines distributions Linux plus récentes utilisent des remplacements init comme Upstart (par exemple, Ubuntu). Ceux-ci n'utilisent généralement pas / etc / inittab et utilisent à la place d'autres fichiers de configuration. Voici une discussion sur la façon dont appeler mingetty fonctionne sur Ubuntu .


Eh bien, j'ai oublié de mentionner que je me soucie vraiment d'Ubuntu. Le lien ci-dessus pointe vers des informations obsolètes, et ma première tentative (juste éditer /etc/init/tty1.conf n'a pas du tout réussi.
Paul Hoffman

Ils utilisent gettyfrom util-linux, non mingetty, mais cela fonctionne aussi avec Debian. Merci!
mirabilos

10

Avec systemd, les choses sont différentes. Voir l'article Arrêtez de vider la console de Damné . En bref:

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

Vérifiez le résultat avec systemctl cat getty@tty1.service


4

Si rien d'autre n'a aidé, vous pouvez saisir votre ordinateur portable et capturer tous les journaux du noyau via la console série en ajoutant quelque chose comme ceci aux paramètres du noyau:

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

Cela entraînera une sortie sur la console série (dans votre programme de terminal) et sur le terminal standard. Parfois, SOL (Serial Over LAN) est disponible.


3

Après des heures de recherche sur Google, j'ai trouvé la solution dans ce fil et cette question . Cette procédure fonctionne Ubuntu 12.04.1 LTScomme décrit également ici , mais elle ne devrait pas trop différer pour les autres distributions.

Tout d'abord, ajoutez console=tty1à votre GRUB_CMDLINE_LINUX(je suggère également d'ajouter noplymouthà inhiber plymouthet son écran de démarrage inutile).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Cela force l'impression du journal du noyau au tty1lieu de tty7et évite le ttycommutateur avant l'invite de connexion.

Ensuite , il suffit aller dans /etc/initet modifier un ou plusieurs tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.confou console.conf. Je les ai tous modifiés en ajoutant une --noclearoption à la gettycommande. Par exemple, l'édition tty1.conf:

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

vous devrez remplacer:

respawn
exec /sbin/getty -8 38400 tty1

avec:

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

C'est tout, maintenant votre système devrait démarrer en un seul ttysans l'effacer.


1

dmesg ici remonte au tout début du noyau, en commençant par

[    0.000000] Initializing cgroup subsys cpuset

Peut-être s'agit-il d'un message bios ou d'une partie de votre chargeur de démarrage? Quoi qu'il en soit, il y a tellement de choses différentes qui peuvent masquer l'écran, sans savoir où exactement dans le processus, il est difficile de dire quoi faire à ce sujet. La seule chose qui reste sur l'écran "Connexion:"? ou y a-t-il d'autres éléments de démarrage au-dessus? Si c'est juste avant l'invite de connexion et que rien d'autre n'est à l'écran, il y a peut-être /etc/issueune commande de suppression d'écran? Sinon, vous pourriez utiliser une sorte de tampon de trame de console qui commute le mode vidéo. Sur mon ordinateur, l'écran est masqué lorsqu'une police de console est chargée.


TL; DR /etc/issuepeut aussi être un coupable. Bon indice.
Tino
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.