@Shiraira2 年前
2024年6月21日更新:此方法已失效
主要原理
- Steamdeck的UEFI在检测到文件 \EFI\Microsoft\Boot\bootmgfw.efi 存在,就会自动创建 Windows 启动管理器(Windows Boot Manager) 启动项并且将其强制设置为首位(原因未知)
- 自动创建的启动项可以被隐藏,但不能被删除或是排序
- 但如果隐藏了该启动项,Windows将没有入口来启动,所以需要采取一些曲线救国的方法
- 因为 Windows 的 bootmgfw.efi 有一个特性,即bootmgfw可以被更名为其他名称,并且放到 \EFI\Boot 文件夹下(正常安装的Windows, EFI\Boot\bootx64.efi 与 bootmgfw.efi 为同一文件;暂未验证放到 \EFI\Boot 以外的文件夹下能否正常启动)参考资料:关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
有以上要条件,可以得知要解决这些问题,就要将BCD中的 Windows Boot Manager 的 Appliocation Path 修改到其他文件夹,这样SteamDeck的UEFI就不会再进行这种令人头疼的自动化操作
操作方法
-
使用DiskGenius等工具
将\EFI\Microsoft\Boot\bootmgfw.efi复制并改名为bootx64win.efi,放在\EFI\Boot\目录下 -
使用管理员权限运行CMD
执行bcdedit /set {bootmgr} path \EFI\Boot\bootx64win.efi
-
打开 DiskGenius 工具-设置UEFI启动项
此时应该能够看到一条或多条名为 Windows Boot Manager 的启动项,最上面的一条的启动文件应该为\EFI\Microsoft\Boot\bootmgfw.efi,并修改这一条启动项的属性取消勾选有效并勾选隐藏
⬛有效 ☑️隐藏点击保存当前启动项设置,然后让它留在第一位,不要再去修改它的内容或是顺序
然后新建一条启动项,文件选择
,同样名为 Windows Boot Manager,设备类型、启动磁盘、启动分区都应与第一条保持相同,属性勾选有效,保存即可\EFI\Boot\bootx64win.efi
-
这时你可以自由排序除第一条修改 Windows Boot Manager 以外的所有启动项,完成后重启,查看效果