单用户模式输出到控制台 (tty1) 和串行 (ttyS0)

单用户模式输出到控制台 (tty1) 和串行 (ttyS0)

我在 CentOS 7 上使用 grub2。我想知道当我尝试启动到单用户模式时是否可以将输出显示到串行(ttyS0)和控制台(tty1)。最终目标是拥有一个永久的“单用户”grub 菜单项,我可以选择启动该菜单项,并且我可能在串行上,也可能在控制台上。

当系统在“正常”条件下启动时,可以同时向控制台和串行显示输出。意思是,只是 grub2 生成的标准 Linux 内核引导行。我的/etc/default/grub文件如下所示:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="rd_NO_LUKS rd_NO_LVM rd_NO_DM crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_LINUX_LABLE=true

运行后grub2-mkconfig,我的 grub "linux16" 行如下所示:

linux16 /vmlinuz-3.10.0-693.2.2.el7.x86_64 root=UUID=ea3ace60-3b6f-4be1-beaa-fcab95e66bb1 ro rd_NO_LUKS rd_NO_LVM rd_NO_DM crashkernel=auto rhgb quiet console=tty1 console=ttyS0,115200

无需密码即可进入 shell 的内核参数是:(rd.break似乎有很多方法可以启动到单用户模式,所以我选择了这个,但我可以确信使用另一种方法)。

所以,如果我使用启动系统

linux16 /vmlinuz-3.10.0-693.2.2.el7.x86_64 root=UUID=ea3ace60-3b6f-4be1-beaa-fcab95e66bb1 ro rd_NO_LUKS rd_NO_LVM rd_NO_DM crashkernel=auto rhgb quiet console=tty1 console=ttyS0,115200 rd.break

我收到 shell 提示符,但只能通过串行方式。

我已经在 tty1 上显示单用户模式(通过放在console=tty1行尾)而不是串行模式,但我想两者都有。

这可能吗?什么样的内核参数组合才有效?

(如果您有详细解释为什么不可能的文档,我会很乐意查看它们。我只能猜测单用户模式仅启动最低限度,这包括虚拟终端???)

相关内容