Linux:为什么单用户模式可以在串行控制台上运行,而不能在连接的键盘/视频/显示器上运行?

Ste*_*ski 4 linux ipmi keyboard-video-mouse

我有一个 Scientific Linux 6.1 系统,它在支持 IPMI 的 Supermicro 服务器上。它还与 Upstart 一起运行,这会影响串行控制台的工作方式。

我的系统有一个严重的问题,需要我登录到单用户模式来执行一些维护。我站在连接到服务器(VGA 控制台)的 KVM 前面,我可以看到所有 BIOS 和启动消息。启动顺序经过这些动作,然后告诉我文件系统损坏,仅此而已。我从来没有收到登录框的提示,屏幕上也没有任何关于维护模式的信息。

我终于使用串口控制台连接到主机,看到如下提示:

* An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue):
Run Code Online (Sandbox Code Playgroud)
  1. 为什么此单用户模式提示仅出现在串行控制台上?
  2. 更重要的是,我可以让它同时出现在串行控制台和连接的键盘/视频/显示器上吗?

我的内核命令行是这样的:

kernel /boot/vmlinuz-2.6.32-131.17.1.el6.x86_64 ro root=UUID=blah-blah-blah  KEYBOARDTYPE=pc KEYTABLE=us console=tty0 crashkernel=auto console=ttyS2,115200n8r
Run Code Online (Sandbox Code Playgroud)

phe*_*mer 7

因为 init 还没有产生多个 TTY(getty、mgetty 等),所以你只有主要的 TTY。主 TTY 是console=内核命令行上的最后一个参数。所有控制台参数都得到输出,但只有最后一个参数可以作为输入。