我正在使用Linux表面内核在 Fedora 39 上,我想将其用作 GRUB2 在启动时选择的默认内核。
- 它之前被设置为默认内核并且可以工作,但后来我用
GRUB_TIMEOUT=3
in更改了 GRUB 配置/etc/default/grub
,并使用以下命令让 GRUB 在没有启动屏幕的情况下显示:grub2-editenv - unset menu_auto_hide
- 然后我做了配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
- 这已经按预期工作,但我运行了以下命令,因为我读到在 EFI 上运行时应该执行此操作:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
- 现在我的 linux-surface 内核不再被默认选择。 linux-surface 提供了一个设置默认内核的工具,我再次使用了它:
# linux-surface-default-watchdog.sh /boot/vmlinuz-6.7.2-1.surface.fc39.x86_64 The default is /boot/loader/entries/7c03857f939a498ab1b53ed4b8723e04-6.7.2-1.surface.fc39.x86_64.conf with index 2 and kernel /boot/vmlinuz-6.7.2-1.surface.fc39.x86_64
- 检查是否使用 grubby 设置它会提供以下输出:
但是这个内核仍然没有被选为默认内核,GRUB2 只是在启动时选择第一行。# grubby --default-kernel /boot/vmlinuz-6.7.2-1.surface.fc39.x86_64
我的想法是直接删除,/boot/efi/EFI/fedora/grub.cfg
因为这似乎是以前工作过的问题,但我担心这会在某种程度上破坏 GRUB。
答案1
我设法解决了我的问题Fedora 文档文章。
问题是我用过grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
.引用上面链接的文章:
在 EFI 下,GRUB2 在 中查找其配置
/boot/efi/EFI/fedora/grub.cfg
,但是 的安装后脚本会grub2-common
安装一个小填充程序,该填充程序链接到 中的标准配置/boot/grub2/grub.cfg
。
以下是我恢复默认配置所采取的步骤:
# rm -f /boot/efi/EFI/fedora/grub.cfg
# dnf reinstall grub2-common
这解决了我的问题。如果您想在 EFI (fedora) 系统上更改 grub2 配置,您应该grub2-mkconfig -o /boot/grub2/grub.cfg
使用不是 grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
。