@Shiraira1 年前

03/25
17:44
技术杂谈

阻止双系统下SteamDeck自动将Windows Boot Manager设为默认启动项

主要原理

  1. Steamdeck的UEFI在检测到文件 \EFI\Microsoft\Boot\bootmgfw.efi 存在,就会自动创建 Windows 启动管理器(Windows Boot Manager) 启动项并且将其强制设置为首位(原因未知)
  2. 自动创建的启动项可以被隐藏,但不能被删除或是排序
  3. 但如果隐藏了该启动项,Windows将没有入口来启动,所以需要采取一些曲线救国的方法
  4. 因为 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就不会再进行这种令人头疼的自动化操作

操作方法

  1. 使用DiskGenius等工具
    将\EFI\Microsoft\Boot\bootmgfw.efi复制并改名为bootx64win.efi,放在\EFI\Boot\目录下

  2. 使用管理员权限运行CMD
    执行bcdedit /set {bootmgr} path \EFI\Boot\bootx64win.efi

  3. 打开 DiskGenius 工具-设置UEFI启动项
    此时应该能够看到一条或多条名为 Windows Boot Manager 的启动项,最上面的一条的启动文件应该为\EFI\Microsoft\Boot\bootmgfw.efi,并修改这一条启动项的属性

    取消勾选有效并勾选隐藏
    有效 ☑️隐藏

    点击保存当前启动项设置,然后让它留在第一位,不要再去修改它的内容或是顺序
    然后新建一条启动项,文件选择 \EFI\Boot\bootx64win.efi,同样名为 Windows Boot Manager,设备类型、启动磁盘、启动分区都应与第一条保持相同,属性勾选有效,保存即可

  4. 这时你可以自由排序除第一条修改 Windows Boot Manager 以外的所有启动项,完成后重启,查看效果

阻止双系统下SteamDeck自动将Windows Boot Manager设为默认启动项