将 Fedora 从 29 升级到 30 后,我注意到启动时 grub 一直选择旧的 4.x 内核。没问题。我曾经package-cleanup
删除除最新的两个内核之外的所有内核。但现在 grub 默认使用救援选项。
它应该记住我最后选择的选项并默认为该选项,但事实并非如此。
我怎样才能解决这个问题?
更新
我一直无法解决这个问题。我努力了:
- 设置
dracut_rescue_image="no"
于/usr/lib/dracut/dracut.conf.d/02-rescue.conf
- 删除了 initramfs.. 和 vmlinuz.. 用于救援内核
- 删除了
dracut-config-rescue
包 - 删除
grub.cfg
并/boot/grub2
重建它grub2-mkconfig -o /boot/grub2.cfg
(在完成上述所有操作之后)
我可以确认dracut_rescue_image="no"
,救援内核的 initramfs 和 vmlinux 仍然被删除。救援条目仍然保留在 grub 提示符中。
该条目仍然存在,但系统无法使用该条目引导,并且 grub 报告错误。但它仍然是默认选择...所以现在默认情况下,如果我不选择其他选项,系统将无法启动。
更新
我设法通过删除/boot/loader/entries
路径中的条目来删除救援选项。现在默认使用5.2.9内核,但我不知道下次更新后是否仍会选择最新的内核。因为我不知道最初问题的根源,即使有了这个解决方案,原因仍然是一个谜。
澄清一下,默认条目仍然不是最后选择的选项,这正是我想要的。现在只是默认使用 5.2.9 内核。
答案1
我怀疑你的 grub 配置在某个地方被删除或损坏了。
基本上查看 GRUB_DEFAULT 设置是否正确。这里的 --id 是 example-gnu-linux。
menuentry 'GNU/Linux 发行版示例' --class gnu-linux --id example-gnu-linux { ... }
那么你可以使用以下命令将其设置为默认值:
GRUB_DEFAULT=示例-gnu-linux