我现在使用的是 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
gadfly3173 2022-01-07 15:38:59 +08:00
看起来像是因为 secure boot 的关系?
|
2
MiketsuSmasher OP @gadfly3173 没有 secure boot
|
3
haffner 2022-01-07 16:14:57 +08:00 via iPhone
用 bcdedit 改,别在 BIOS 设置改。
|
4
yousabuk 2022-01-07 16:27:34 +08:00 via iPhone
那应该是笔记本厂商应 Microsoft 故意而为之
降低预装正版 Windows 操作系统的成本价,达成的协议? |
5
ly841000 2022-01-07 16:27:42 +08:00
这是 bios 的功能,用于安装操作系统后自动重启进新的系统,而不是再次重启进安装盘
|
6
yangzhaofeng 2022-01-07 16:29:45 +08:00
一般來說如果你用了 secure boot 並且用了 bitlocker 全盤加密且密鑰儲存在 TPM 中就不會發生這樣的事了
|
7
ysc3839 2022-01-07 16:55:33 +08:00 1
我认为是操作系统的行为,因为通过 EFI Variables 就能修改启动项列表,至于能否修改默认启动项我不确定。
|
8
ziseyinzi 2022-01-07 17:18:25 +08:00
diy 的台式从没遇到过这种情况,倾向于是笔记本 OEM 和微软有 py 。
|
9
msg7086 2022-01-07 17:37:24 +08:00
我只知道有些 UEFI 会自动添加他搜索到的硬盘里 EFI 里面的启动程序。
比如把一个装有 Windows 的硬盘查到一台船新的电脑上,很大可能 UEFI 开机后扫描到了 ESP 里的启动文件,然后自动添加项目,然后就可以正常启动 Windows 了。 也有比较「古典」的 UEFT 不会自动添加,需要手动输入名称和分区目录地址的。 |
10
kidonng 2022-01-07 17:59:41 +08:00 via Android
就是 Windows 干的
另外你得搞清楚 BIOS 和 UEFI 是井水不犯河水的 |
11
cccer 2022-01-07 18:36:23 +08:00
Windows 是有权更新修改 UEFI 的,但某些主板有禁止系统写 UEFI 的选项。
|
12
secretman 2022-01-07 18:59:46 +08:00
重装系统,不用自带的 OEM 系统,可以考虑用 OC 引导
|
13
kome 2022-01-07 19:13:44 +08:00
个人案例, 联想小新 700 曾经装过 windows 10 和 ubuntu 双系统, 先 windows 再 ubuntu, ubuntu 选择与 windows 共存的安装方式, 启动列表由 ubuntu 安装程序更改. 之后启动首项就是 ubuntu 了, 从未被自动修改过. 个人倾向是电脑厂商的相关软件干的.
|
14
jim9606 2022-01-07 19:33:56 +08:00 1
除非 Windows 大版本更新,否则 Windows 正常启动流程不会主动修改 UEFI NVRAM 引导选项。
有些品牌的 BIOS 会主动检测 Windows Boot Manager 是否存在并主动添加,例如 Acer Insyde 和 Intel VisualBIOS 就有这种行为。有些 BIOS 会有影子 NVRAM 导致 efibootmgr 、bootice 等工具的修改无效,Acer 就有这种设计。 |
15
kkocdko 2022-01-07 20:04:35 +08:00 via Android
大惊小怪,这点事情被你说成“劫持”。
就如上面有人说的那样,大概率是 BIOS 自动检测并添加了项目。我这边 Fedora 也是一个情况,删了之后自动又添加回来。 后来我手动把 efi 文件删了之后就不会添加了。如果你真的要删,就去引导分区把对应的文件直接删掉。 |
16
KoMAsS121 2022-01-07 20:05:53 +08:00
咱去年双系统(manjaro+win10/arcolinux +win10 ),用 grub 引导时,倒没发现这现象,他没动我的 UEFI,乖乖服 grub 的管,每次不管启动谁,都没填新东西,开机也直接进 grub 让我选。
(至于为啥今年不用,因为咱 win10 自动更新重启后,忘记手动选进 win10 ,而自动进了 linux,直接把我 win10 系统给更新坏了。当然此前我也更新成功很多次,这是个概率事件,但咱还是不想接着赌了。这时技术菜的,纯根据谷歌内容去操作的,也千万别用 Win 自带的工具去修,直接重装了事吧,咱这菜鸟去修,直接把盘修到返厂走保修了,因为连到电脑上会直接卡住系统,盘咋也读不了) |
17
KoMAsS121 2022-01-07 20:09:16 +08:00
@KoMAsS121 咱说的是关于第四点“更恶劣的行为”的发现,前三点,不知道,我用 grub 后就没动过 uefi 。当然我 uefi 里面也确实存在 windws 的直接启动项,至于顺序不记得了,反正开机必进 grub ,不管上次关机的是啥系统。
|
18
nkcfc 2022-01-07 20:50:39 +08:00 1
以前用过集采的联想一体机,每次启动 windows 就会把自己变成第一启动,而且其他启动项很难加进去。
防止 windows 自动加入的解决方案如下: 把 efi 分区中的 windows 启动文件全部删除,在 windows 下利用命令 bcdboot 生成一份 efi 启动文件到 C 盘。这样 efi 分区没有 windows 启动文件了,而 EFI 无法调用 NTFS 分区下的文件(其他机器也许具备读取 ntfs 的 efi 驱动)。 然后使用 Grub 或者 Refind 引导 windows ,我一般用 refind ,这个可以自动搜素所有 efi 文件。 |
19
qbqbqbqb 2022-01-07 20:55:05 +08:00
你把 Linux 的 efi 启动器拷到 ESP 分区里的 /EFI/boot/bootx64.efi 这个位置试试
|
20
wsy2220 2022-01-07 20:58:03 +08:00
禁止直接加载 windows 的 EFI ,只走 grub 的 chainloading 就可以了
|
21
kwater 2022-01-07 21:49:31 +08:00
想起 nn 年前 ms dell 在 bios 层面对 linux 不友好的一面
|
22
whenov 2022-01-07 22:18:16 +08:00
我这边 windows 有较小概率会修改启动项,记得大概一年会碰到一次
|
23
f165af34d4830eeb 2022-01-08 13:57:44 +08:00
额,看了这么多楼好像都没说到点子上。。如果我没猜错,windows boot manager 被排到首位应该是 op 在 windows 电源选项中开启了“快速启动”,开启快速启动后 wbm 确实会被 windows 自动放在首位,关掉就好。如果还不行,就用 grub 的 efi 替换掉 windows 的 bootmgfw.efi
|
24
f165af34d4830eeb 2022-01-08 14:00:44 +08:00
@MiketsuSmasher #23 中描述的 windows 行为应该是从 win 8.1 开始就有的,开了“快速启动”windows 就会很流氓的把自己启动项锁定在第一个,当时折腾黑苹果做双系统,简单粗暴的用 clover 的 efi 替换了 bootmgfw.efi ,问题暂时解决,但是 windows 更新后又得重新替换。后面机缘巧合下了解到是“快速启动”的锅,关闭后 windows 就不会强行把自己放第一位了。
|
25
hanmo0893 2022-01-10 10:59:51 +08:00
windows boot manager 里面放的都是启动配置文件,禁止删除
你开 uefi 快速启动了 |