Запобігти консолі очищати екран?


11

Під час завантаження в Linux, іноді є один або два рядки, які швидко очищаються. Я думаю, що деякі з них навіть не відображаються в dmesg. Якщо нічого іншого, я хочу придушити поле перед запитом "login:". Чи є команда ядра або sysctl, яку я можу встановити для запобігання цьому, щоб я міг прочитати їх на екрані консолі після завантаження?


Чи не допомагає /var/log/kern.log? Або у вас його немає?
HUB

Відповіді:


13

Більшість потрібної інформації буде знаходитися в системі /var/log/dmesgта /var/log/messagesпісля її завантаження, слід спочатку перевірити ці файли.

В основному машини Linux виконують mingetty для віртуальних терміналів. Якщо у вас є традиційна система sysv init, вони контролюються /etc/inittab. Ви можете додати --noclearпараметр mingetty, щоб запобігти очищенню екрана. Для цього відредагуйте /etc/inittabта змініть цей рядок:

1:2345:respawn:/sbin/mingetty tty1

до

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

потім перезавантажте машину.

Деякі новіші Linux-дистрибутори використовують заміни init, такі як Upstart (наприклад, Ubuntu). Зазвичай вони не використовують / etc / inittab, а замість цього використовують деякі інші конфігураційні файли. Ось дискусія про те, як виклик mingetty працює на Ubuntu .


Ну, я забув згадати, що мені дуже цікаво Ubuntu. Посилання вище вказує на деяку застарілу інформацію, і моя перша спроба (просто редагувати /etc/init/tty1.conf зовсім не вдалася.
Пол Гофман

Вони використовують gettyз util-linux, ні mingetty, але це працює і з Debian. Дякую!
mirabilos

10

З систематизованими справами буває інакше. Дивіться статтю " Зупинити очищення проклятої консолі бога мого" . Коротко:

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

Перевірте результат за допомогою systemctl cat getty@tty1.service


4

Якщо нічого іншого не допомогло, ви можете захопити ваш ноутбук і захопити весь журнал ядра через послідовну консоль, додавши щось подібне до параметрів ядра:

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

Це призведе до виводу на зразок на послідовній консолі (у вашій термінальній програмі) та на стандартній tty. Іноді доступний SOL (Serial Over LAN).


3

Після годин гуглінгу я знайшов рішення в цій темі і в цьому питанні . Ця процедура працює Ubuntu 12.04.1 LTSяк описано тут , але вона не повинна занадто сильно відрізнятися для інших дистрибутивів.

По-перше, додайте console=tty1до свого GRUB_CMDLINE_LINUX(я також пропоную додати noplymouthдля гальмування plymouthта його марну бризку екрана).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Це змушує ядро балки надрукованих на tty1замість tty7і під уникнути ttyперемикача перед прігашеніем.

Тоді просто зайдіть в /etc/initі редагувати один або кілька tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.confабо console.conf. Я відредагував їх усі --noclearваріанти додавання до gettyкоманди. Наприклад, редагування tty1.conf:

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

вам доведеться замінити:

respawn
exec /sbin/getty -8 38400 tty1

з:

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

Ось і все, тепер ваша система повинна завантажуватися в єдину, ttyне очищаючи її.


1

dmesg тут повертається до самого початку ядра, починаючи з

[    0.000000] Initializing cgroup subsys cpuset

Можливо, це якесь повідомлення з біосу або частина вашого завантажувача? Так чи інакше, існує стільки різних речей, які можуть зачистити екран, не знаючи, де саме в процесі цього трапилося, що важко сказати, що з цим робити. Єдине, що залишилося на екрані "Логін:"? чи є над цим інші речі для завантаження? Якщо це безпосередньо перед запитом для входу, і більше нічого не з’являється на екрані, то, можливо, в /etc/issueньому є команда, що блокує екран? В іншому випадку ви можете використовувати якийсь буфер кадру консолі, який перемикає режим відео. На моєму комп’ютері екран вимикається під час завантаження шрифту консолі.


TL; DR також /etc/issueможе бути винуватцем. Хороший натяк.
Тіно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.