V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
MiketsuSmasher
V2EX  ›  Windows

Windows 和 BIOS 正在合伙劫持我的 UEFI 启动项

  •  
  •   MiketsuSmasher · 130 天前 · 3407 次点击
    这是一个创建于 130 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在使用的是 Matebook 14 ,以下行为的触发条件:ESP 分区的 EFI 目录里面存在 Microsoft 目录

    • 如果把 UEFI 启动项里面的"Windows Boot Manager"删掉,等到下次进入 Windows 后,启动项里面又会多出来一个 Windows Boot Manager ,而且总是排在首位

    • 如果把 Windows Boot Manager 调整到靠后的位置(哪怕是第二位),再次进入 Windows 后,要么多出来一个 Windows Boot Manager ,要么 Windows Boot Manager 被排到首位

    • Windows (或者 BIOS ?)似乎还会判断 Windows Boot Manager 启动项是否被篡改,具体表现是:在你修改了启动项启动的 EFI 文件后,下次进入 Windows ,又会多出来一个排在首位的 Windows Boot Manager

    • 据说在一些机器上会有更恶劣的行为:哪怕进的是 Linux ,如果满足触发条件,启动项首位就会多出来一个 Windows Boot Manager

    以上的 UEFI 启动项变化是使用 booticex64 工具得到的,各位可以自行验证一下(不一定会出现,取决于你的电脑)

    第 1 条附言  ·  130 天前
    补充:没有开启 Secure Boot ,BIOS 设有密码
    25 条回复    2022-01-10 10:59:51 +08:00
    gadfly3173
        1
    gadfly3173  
       130 天前
    看起来像是因为 secure boot 的关系?
    MiketsuSmasher
        2
    MiketsuSmasher  
    OP
       130 天前 via Android
    @gadfly3173 没有 secure boot
    haffner
        3
    haffner  
       130 天前 via iPhone
    用 bcdedit 改,别在 BIOS 设置改。
    yousabuk
        4
    yousabuk  
       130 天前 via iPhone
    那应该是笔记本厂商应 Microsoft 故意而为之

    降低预装正版 Windows 操作系统的成本价,达成的协议?
    ly841000
        5
    ly841000  
       130 天前
    这是 bios 的功能,用于安装操作系统后自动重启进新的系统,而不是再次重启进安装盘
    yangzhaofeng
        6
    yangzhaofeng  
       130 天前
    一般來說如果你用了 secure boot 並且用了 bitlocker 全盤加密且密鑰儲存在 TPM 中就不會發生這樣的事了
    ysc3839
        7
    ysc3839  
       130 天前   ❤️ 1
    我认为是操作系统的行为,因为通过 EFI Variables 就能修改启动项列表,至于能否修改默认启动项我不确定。
    ziseyinzi
        8
    ziseyinzi  
       130 天前
    diy 的台式从没遇到过这种情况,倾向于是笔记本 OEM 和微软有 py 。
    msg7086
        9
    msg7086  
       130 天前
    我只知道有些 UEFI 会自动添加他搜索到的硬盘里 EFI 里面的启动程序。
    比如把一个装有 Windows 的硬盘查到一台船新的电脑上,很大可能 UEFI 开机后扫描到了 ESP 里的启动文件,然后自动添加项目,然后就可以正常启动 Windows 了。

    也有比较「古典」的 UEFT 不会自动添加,需要手动输入名称和分区目录地址的。
    kidonng
        10
    kidonng  
       130 天前 via Android
    就是 Windows 干的
    另外你得搞清楚 BIOS 和 UEFI 是井水不犯河水的
    cccer
        11
    cccer  
       130 天前
    Windows 是有权更新修改 UEFI 的,但某些主板有禁止系统写 UEFI 的选项。
    secretman
        12
    secretman  
       130 天前
    重装系统,不用自带的 OEM 系统,可以考虑用 OC 引导
    kome
        13
    kome  
       130 天前
    个人案例, 联想小新 700 曾经装过 windows 10 和 ubuntu 双系统, 先 windows 再 ubuntu, ubuntu 选择与 windows 共存的安装方式, 启动列表由 ubuntu 安装程序更改. 之后启动首项就是 ubuntu 了, 从未被自动修改过. 个人倾向是电脑厂商的相关软件干的.
    jim9606
        14
    jim9606  
       130 天前   ❤️ 1
    除非 Windows 大版本更新,否则 Windows 正常启动流程不会主动修改 UEFI NVRAM 引导选项。
    有些品牌的 BIOS 会主动检测 Windows Boot Manager 是否存在并主动添加,例如 Acer Insyde 和 Intel VisualBIOS 就有这种行为。有些 BIOS 会有影子 NVRAM 导致 efibootmgr 、bootice 等工具的修改无效,Acer 就有这种设计。
    kkocdko
        15
    kkocdko  
       130 天前 via Android
    大惊小怪,这点事情被你说成“劫持”。
    就如上面有人说的那样,大概率是 BIOS 自动检测并添加了项目。我这边 Fedora 也是一个情况,删了之后自动又添加回来。
    后来我手动把 efi 文件删了之后就不会添加了。如果你真的要删,就去引导分区把对应的文件直接删掉。
    KoMAsS121
        16
    KoMAsS121  
       130 天前
    咱去年双系统(manjaro+win10/arcolinux +win10 ),用 grub 引导时,倒没发现这现象,他没动我的 UEFI,乖乖服 grub 的管,每次不管启动谁,都没填新东西,开机也直接进 grub 让我选。
    (至于为啥今年不用,因为咱 win10 自动更新重启后,忘记手动选进 win10 ,而自动进了 linux,直接把我 win10 系统给更新坏了。当然此前我也更新成功很多次,这是个概率事件,但咱还是不想接着赌了。这时技术菜的,纯根据谷歌内容去操作的,也千万别用 Win 自带的工具去修,直接重装了事吧,咱这菜鸟去修,直接把盘修到返厂走保修了,因为连到电脑上会直接卡住系统,盘咋也读不了)
    KoMAsS121
        17
    KoMAsS121  
       130 天前
    @KoMAsS121 咱说的是关于第四点“更恶劣的行为”的发现,前三点,不知道,我用 grub 后就没动过 uefi 。当然我 uefi 里面也确实存在 windws 的直接启动项,至于顺序不记得了,反正开机必进 grub ,不管上次关机的是啥系统。
    nkcfc
        18
    nkcfc  
       130 天前   ❤️ 1
    以前用过集采的联想一体机,每次启动 windows 就会把自己变成第一启动,而且其他启动项很难加进去。
    防止 windows 自动加入的解决方案如下:
    把 efi 分区中的 windows 启动文件全部删除,在 windows 下利用命令 bcdboot 生成一份 efi 启动文件到 C 盘。这样 efi 分区没有 windows 启动文件了,而 EFI 无法调用 NTFS 分区下的文件(其他机器也许具备读取 ntfs 的 efi 驱动)。
    然后使用 Grub 或者 Refind 引导 windows ,我一般用 refind ,这个可以自动搜素所有 efi 文件。
    qbqbqbqb
        19
    qbqbqbqb  
       130 天前
    你把 Linux 的 efi 启动器拷到 ESP 分区里的 /EFI/boot/bootx64.efi 这个位置试试
    wsy2220
        20
    wsy2220  
       130 天前
    禁止直接加载 windows 的 EFI ,只走 grub 的 chainloading 就可以了
    kwater
        21
    kwater  
       130 天前
    想起 nn 年前 ms dell 在 bios 层面对 linux 不友好的一面
    whenov
        22
    whenov  
       130 天前
    我这边 windows 有较小概率会修改启动项,记得大概一年会碰到一次
    f165af34d4830eeb
        23
    f165af34d4830eeb  
       129 天前
    额,看了这么多楼好像都没说到点子上。。如果我没猜错,windows boot manager 被排到首位应该是 op 在 windows 电源选项中开启了“快速启动”,开启快速启动后 wbm 确实会被 windows 自动放在首位,关掉就好。如果还不行,就用 grub 的 efi 替换掉 windows 的 bootmgfw.efi
    f165af34d4830eeb
        24
    f165af34d4830eeb  
       129 天前
    @MiketsuSmasher #23 中描述的 windows 行为应该是从 win 8.1 开始就有的,开了“快速启动”windows 就会很流氓的把自己启动项锁定在第一个,当时折腾黑苹果做双系统,简单粗暴的用 clover 的 efi 替换了 bootmgfw.efi ,问题暂时解决,但是 windows 更新后又得重新替换。后面机缘巧合下了解到是“快速启动”的锅,关闭后 windows 就不会强行把自己放第一位了。
    hanmo0893
        25
    hanmo0893  
       127 天前
    windows boot manager 里面放的都是启动配置文件,禁止删除
    你开 uefi 快速启动了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1676 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:33 · PVG 01:33 · LAX 10:33 · JFK 13:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.