问题:为什么在未连接键盘时 GRUB 无法自动启动?
背景:我已经运行 Debian bullseye 一年多了,GRUB 始终按预期工作 - 启动时,它会显示菜单五秒钟,然后选择默认选项。无论我在启动过程中是否插入键盘,这都有效。我最近插入键盘来本地管理系统,将内核从 更新5.10.0-15
为5.10.0-19
,然后重新启动。正如预期的那样,GRUB 显示超时,然后自动引导到最新的内核。
过了一段时间,我拔掉了键盘。重新启动系统(通过 ssh)后,我注意到系统无法恢复在线状态。我去检查了一下,系统卡在GRUB菜单上。我插入键盘,选择默认选项,然后登录。一切正常。我再次重新启动(插入键盘),然后看着它重新启动,从 5 倒数,然后自动启动回到预期的内核。接下来,我输入sleep 10; sudo reboot
并拔掉键盘,认为这可能是由 ssh 触发的重新启动引起的。但果然,启动后,GRUB 没有显示倒计时,只是停留在菜单屏幕上。
即使没有插入键盘,如何才能恢复到自动启动的预期行为?作为临时解决方法,我只是将未使用的键盘插入其中。完成后,重新启动(甚至通过 ssh 远程启动)仍然允许系统重新上线,而无需本地按键。
额外细节:
$ sudo grub-install --version
grub-install (GRUB) 2.06-3~deb11u2
$ sudo cat /etc/default/grub
...
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
...
最初配置被读取GRUB_DEFAULT=0
并被省略GRUB_SAVEDEFAULT
。上述更改反映了修复问题的失败尝试。