如何永久更改 Grub 2 默认值?

Col*_*nic 5 fedora boot grub2

Fedora 现在使用 Grub 2。每当它进行内核升级时,它都会丢失我的默认引导选项 (Windows)。我怎样才能解决这个问题?

我因此对 Grub 2 感到不满,因为旧的 Grub 尊重我的选择。

ILM*_*o_7 6

我不确定是否有任何与此问题有关grubby或与之anaconda相关的更改/改进。有没有人尝试遵循 Fedora 的 wiki 页面中的这些准则:

但是,下次使用 anaconda 升级 >system 时,手动更改可能会被 grub2-mkconfig 覆盖。一些自定义设置可以放在 /etc/grubd/40_custom 或 /boot/grub2/custom.cfg 中,并且在运行 grub2-mkconfig 时仍然存在。

否则,有什么具体可以放置在上述文件生存的内核升级和/或运行grub2-mkconfig

这取自Fedora 的 Grub wiki 页面

由于 grub2-mkconfig(和 os-prober),我们无法预测 /boot/grub2/grub.cfg 中条目的顺序,因此我们改为按名称/标题设置默认值。

打开 /etc/default/grub 并确保此行存在:

GRUB_DEFAULT=saved
Run Code Online (Sandbox Code Playgroud)

通过运行将更改应用到 grub.cfg:

grub2-mkconfig -o /boot/grub2/grub.cfg
Run Code Online (Sandbox Code Playgroud)

现在列出所有可能的菜单条目

grep "submenu\|^\smenuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
Run Code Online (Sandbox Code Playgroud)

现在设置所需的默认菜单项

grub2-set-default "<submenu title>><menu entry title>"
Run Code Online (Sandbox Code Playgroud)

验证默认菜单项

grub2-editenv list
Run Code Online (Sandbox Code Playgroud)


Car*_*ito 0

我不使用 Fedora,并且我不能 100% 确定这些更改是否是永久性的(在内核升级之后),但我认为您需要编辑该文件/etc/default/grub。在第 6 行,您将看到:

GRUB_DEFAULT="0"
Run Code Online (Sandbox Code Playgroud)

其中 0 是 grub 列表的第一个条目。按照您想要的方式编辑它。然后,运行sudo update-grub2.