Grub2 不使用 grubby 为我提供的内核。 grub.cfg 有问题吗?

Grub2 不使用 grubby 为我提供的内核。 grub.cfg 有问题吗?

我正在使用Linux表面内核在 Fedora 39 上,我想将其用作 GRUB2 在启动时选择的默认内核。

  • 它之前被设置为默认内核并且可以工作,但后来我用GRUB_TIMEOUT=3in更改了 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。

答案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

相关内容