如何在启动时使用串行控制台进入 GRUB 菜单?

如何在启动时使用串行控制台进入 GRUB 菜单?

显示 grub 菜单总是很费劲,而且有很多关于此问题的答案。答案似乎是按住 shift,但这在串行控制台(实际上是局域网串行)上不起作用

我曾尝试发送垃圾邮件并逃避,但无济于事。

这是一个需要花费相当长时间来传递 BIOS 的服务器,这使其变得更加困难和耗时。

有没有什么好的解决方案可以可靠地进入grub?

显然,编辑 /etc/default/grub 会有所帮助,但现在为时已晚。

答案1

虽然这不是一个完美的解决方案,但使用实时 USB 编辑配置可以解决问题。

为了避免将来出现此问题,已修复 grub 配置以显示启动菜单。

无论如何,服务器的启动时间都很长,因此当一切不正常时,添加 10 秒的 grub 菜单是值得的。

这是修复的 /etc/default/grub 配置:

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"
# Kernel console on both serial and kvm/local console
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 rootdelay=60"
# Show grub menu on both serial and kvm/local console
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"

答案2

Ubuntu 18.04 桌面最小变化

以下是我需要在 Ubuntu 18.04 桌面映像上进行的最小更改,/etc/default/grub以使其正常运行:

# Show the menu by default. Otherwise, you have to press ESC to see GRUB:
# https://askubuntu.com/questions/16042/how-to-get-to-the-grub-menu-at-boot-time/1091821#1091821
-GRUB_TIMEOUT_STYLE=hidden
+#GRUB_TIMEOUT_STYLE=hidden

# Optional kernel options that you very likely want. Don't affect GRUB itself.
# Remove quiet to show the boot logs on terminal. Otherwise, you see just init onwards.
# Add console=ttyS0, or else kernel does not output anything to terminal.
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
-GRUB_CMDLINE_LINUX=""
+GRUB_CMDLINE_LINUX_DEFAULT=""
+GRUB_CMDLINE_LINUX="console=ttyS0"

# Show grub on both serial and on display.
-#GRUB_TERMINAL=console
+GRUB_TERMINAL="console serial"

进而:

sudo update-grub

使用此 QEMU 设置进行测试:https://askubuntu.com/revisions/1046792/24

首先,我使用 GUI 登录一次,编辑那些配置,然后重新启动 VM。

Ubuntu 18.04 云镜像

请记住,此图像还包含一个文件:

/etc/default/grub.d/50-cloudimg-settings.cfg

它将覆盖 中的设置/etc/default/grub

除了桌面设置之外,您还需要设置:

GRUB_TIMEOUT=10

因为默认设置是这样的0,并且您没有时间访问 GRUB 菜单。

使用此设置进行测试:网上有没有预建的 QEMU Ubuntu 映像(32 位)?

相关内容