Linux:将所有消息打印到主控制台*和*辅助控制台(监视器/KVM)?

Ste*_*ski 6 remote-access linux ipmi console fsck

我在各种 Supermicro 和其他白盒服务器上运行 Linux(基于 Red Hat、CentOS、SL、版本 5 和 6)。有些有 IPMI,有些没有。

其中一些系统连接到键盘/显示器 (KVM) 控制台交换机。其他系统连接到远程串行控制台。更新的服务器连接到 IPMI,可通过 KVM-over-LAN 控制台重定向或 Serial over LAN (SOL) 使用。

使用所有这些方法,我们希望在所有串行控制台和 KVM 屏幕上看到一致的输出。例如,我们希望能够与系统进行从启动到关机的交互,我们希望看到整个启动顺序。这包括查看由以下人员打印的任何消息并与之交互:

  1. BIOS(这是由许多现代 BIOS 中的 BIOS 控制台重定向处理的,并且独立于操作系统)
  2. 引导加载程序(在本例中为 Grub 0.97)
  3. 查看内核打印的消息
  4. 查看由 打印的消息fsck,例如在fsck大型文件系统的冗长s期间。在带有串行控制台的系统上,有时fsck会坐在那里什么也不做,等待系统管理员输入密码。但是系统管理员可能看不到这个密码提示,除非我们碰巧记得登录到串行控制台。
  5. 在启动会话期间查看程序打印的消息
    • (例如Starting sshd: [ FAILED ] typo in sshd_config on line 171
  6. login:提示,并允许我登录到系统中。

我尝试了几种方法,但似乎无论我输入什么grub.conf,有些消息都会打印到监视器或串行控制台,但不能同时打印到两者。

是否可以告诉引导加载程序、Linux 内核、操作系统等将所有消息打印到连接的监视器以及串行控制台?

qua*_*nta 4

我尝试了几种方法,但似乎无论我在 grub.conf 中添加什么内容,一些消息都会打印到监视器或串行控制台,但不会同时打印到两者。

理论上,您可以在可能的情况console=下使用多个选项来grub.conf使 Linux 内核输出到所有控制台,如下所示:

title CentOS (2.6.18-194.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb console=tty0 console=ttyS0,9600n8 
    initrd /initrd-2.6.18-194.el5.img
Run Code Online (Sandbox Code Playgroud)

但事实上,根据Serial Console HOWTO,来自 init 和 syslog 的消息仅出现在最后列出的控制台设备上。