我在 Fedora 39 上使用Linux Surface 内核,我想将其用作 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 设置它会提供以下输出:
# grubby --default-kernel
/boot/vmlinuz-6.7.2-1.surface.fc39.x86_64
但是这个内核仍然没有被选为默认内核,grub2 只是在启动时选择第一行。我的想法是直接删除,/boot/efi/EFI/fedora/grub.cfg
因为这似乎是以前工作过的问题,但我担心这会在某种程度上破坏 grub。感谢您的帮助,提前致谢!
我设法通过Fedora 文档文章解决了我的问题。
问题是我用过
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
. 引用上面链接的文章:以下是我恢复默认配置所采取的步骤:
这解决了我的问题。如果您想在 EFI (fedora) 系统上更改 grub2 配置,您应该使用
grub2-mkconfig -o /boot/grub2/grub.cfg
and 而不是grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
。