防止控制台清除屏幕?

防止控制台清除屏幕?

启动 Linux 时,有时会有一两行信息被快速清除。我认为其中一些信息甚至不会出现在 dmesg 中。如果没有其他操作,我想在“login:”提示符之前取消清除。是否有内核命令或 sysctl 可以设置来防止这种情况,以便我在启动后可以在控制台屏幕上读取它们?

答案1

您想要的大部分信息都会在系统启动后,您应该先检查那些文件/var/log/dmesg/var/log/messages

一般Linux机器运行明盖蒂用于虚拟终端。如果您有传统的 sysv init 系统,则它们由 控制/etc/inittab。您可以--noclear向 mingetty 添加选项以防止清除屏幕。为此,请编辑/etc/inittab并更改此行:

1:2345:respawn:/sbin/mingetty tty1

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

然后重新启动机器。

一些较新的 Linux 发行版使用 Upstart 等 init 替代品(例如 Ubuntu)。这些发行版通常不使用 /etc/inittab,而是使用其他一些配置文件。下面是讨论如何在 Ubuntu 上调用 mingetty

答案2

使用 systemd 情况就不同了。请参阅文章别再清理我该死的控制台了。 简而言之:

mkdir /etc/systemd/system/[email protected]
cat >/etc/systemd/system/[email protected]/noclear.conf <<EOF
[Service]
TTYVTDisallocate=no
EOF
systemctl daemon-reload

使用以下方法验证结果systemctl cat [email protected]

答案3

如果没有其他帮助,您可以抓住笔记本电脑并通过在内核参数中添加如下内容来通过串行控制台捕获所有内核日志:

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

这将导致输出出现在串行控制台(在您的终端程序中)和标准 tty 上。有时 SOL(局域网串行)可用。

答案4

dmesg这里回到内核的最开始部分,从

[    0.000000] Initializing cgroup subsys cpuset

也许这是某些 BIOS 消息或引导加载程序的一部分?无论如何,有很多不同的事情都可能导致屏幕空白,如果不知道它究竟在过程中发生在哪里,就很难说该怎么做。屏幕上只剩下“登录:”吗?还是上面还有其他启动内容?如果它紧接着登录提示符,并且屏幕上没有其他内容,那么也许/etc/issue其中有一个屏幕空白命令?否则,您可能正在使用某种正在切换视频模式的控制台帧缓冲区。在我的计算机上,加载控制台字体时屏幕会变黑。

相关内容