显示 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 位)?