jian0463 发表于 2023-1-15 04:18

[已解决] 微星主板EFI启动项问题

本帖最后由 jian0463 于 2023-1-15 06:45 编辑

最后解决的方法远没有这么复杂,其实只需要在BIOS中调整顺序,而不能在系统中用软件调整
==============================================================================================
主板是PRO Z790-A DDR4,不过其他同期的主板大概也有一样的问题。

由于我平时主要使用Linux,而又需要Windows进行游戏,所以双系统(Fedora 37 + Windows 11)自然就成了最优解。然而实际安装完后发现一个在其他主板上从未遇到过的情况:无论如何设置EFI启动项的优先级,主板都会重置并直接启动Windows,甚至在BIOS选单中也不显示Fedora的启动项,只有按下F11进入启动项选单才能显示两个系统。

网上也有不少人遇到类似问题,找到最简单直接的解决方法是用grub-install生成grub.cfg时添加--removable选项,但偏偏我用的Fedora并不使用grub-install,而是grub2-mkconfig,就无法吃进这个选项了。而手动实现网上这个选项的作用(替换bootx64.efi)则根本没用。

最后索性直接把/boot/EFI/Microsoft/Boot/bootmgfw.efi给替换成fedora的grubx64.efi。当然原始的bootmgfw.efi在启动Windows时依然是需要的,我把他改名为bootmgfw.efi.backup。

很明显,最后还需要在grub中,自动添加"真实"的win11启动项,而且在更新内核重新生成grub.cfg时得以保留。

/etc/grub.d/40_custom:
# use a different ID from the vanilla
menuentry 'Windows 11 Professional' --class windows --class os $menuentry_id_option 'osprober-efi-7C81-CF2A-2' {
      insmod part_gpt
      insmod fat
      search --no-floppy --fs-uuid --set=root 7C81-CF2A
      chainloader /EFI/Microsoft/Boot/bootmgfw.efi.backup # the original bootmgfw.efi created by Windows
}

再重新生成grub.cfg:
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

这个方法的缺陷是如果更新Windows,bootmgfw.efi有可能被覆写需要重新替换一次。不过我已禁用了win11的自动更新,所以影响不大。

ysc3839 发表于 2023-1-15 05:13

grub在主板启动项中是单独的一项吗?
如果是,且设置成默认项后还是会被重置成Windows的话,可能是BIOS里面写了什么强制重置的逻辑?不知道removeable做了什么,但我感觉是绕不过这个强制重置的逻辑的。
如果grub不是单独的一项,而是你选择硬盘那一项进入的话,可以试试添加进去,也许能解决。

jian0463 发表于 2023-1-15 05:28

ysc3839 发表于 2023-1-15 05:13
grub在主板启动项中是单独的一项吗?
如果是,且设置成默认项后还是会被重置成Windows的话,可能是BIOS里面 ...

grub是fedora自带的,在启动项中自然也就是单独显示为FEDORA 37。在BIOS中则直接不显示(当然这个也正常,毕竟BIOS里就做了windows/usb/cd/dvd那几种)。后面我的那些操作只是在处理“从grub正常进入windows”。

--removable刚又仔细查了下,发现他的效果我其实已经手动试过了,也没用(windows启动用的efi),所以可以无视那一段。

jie_chen 发表于 2023-1-15 05:32

你选择 uefi还是legacy模式?

jian0463 发表于 2023-1-15 05:35

本帖最后由 jian0463 于 2023-1-15 05:40 编辑

jie_chen 发表于 2023-1-15 05:32
你选择 uefi还是legacy模式?

自然是UEFI,上面提到的boot loader都是.efi

ysc3839 发表于 2023-1-15 05:49

本帖最后由 ysc3839 于 2023-1-15 05:51 编辑

jian0463 发表于 2023-1-15 05:28
grub是fedora自带的,在启动项中自然也就是单独显示为FEDORA 37。在BIOS中则直接不显示(当然这个也正常 ...
所以说FEDORA 37是显示在GRUB里的,BIOS里没有?那建议试试把grubx64.efi添加到BIOS里面。
可以的话进BIOS的启动项页面截个图看看吧。

jian0463 发表于 2023-1-15 06:24

ysc3839 发表于 2023-1-15 05:49
所以说FEDORA 37是显示在GRUB里的,BIOS里没有?那建议试试把grubx64.efi添加到BIOS里面。
可以的话进BIOS ...

已经解决了,其实就是小学生都会的方法但我把这问题复杂化了一万倍...

只需要去BIOS里调整win/fedora的顺序就行,而在boot priority那里就是不会有单独的系统图标。在系统里用软件调也是无效的(原因未知,但我也懒得深究了)。感谢你的帮助
页: [1]
查看完整版本: [已解决] 微星主板EFI启动项问题