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

2022-01-07 15:00:54 +08:00
 MiketsuSmasher

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

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

5513 次点击
所在节点    Windows
25 条回复
gadfly3173
2022-01-07 15:38:59 +08:00
看起来像是因为 secure boot 的关系?
MiketsuSmasher
2022-01-07 15:47:41 +08:00
@gadfly3173 没有 secure boot
haffner
2022-01-07 16:14:57 +08:00
用 bcdedit 改,别在 BIOS 设置改。
yousabuk
2022-01-07 16:27:34 +08:00
那应该是笔记本厂商应 Microsoft 故意而为之

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

也有比较「古典」的 UEFT 不会自动添加,需要手动输入名称和分区目录地址的。
kidonng
2022-01-07 17:59:41 +08:00
就是 Windows 干的
另外你得搞清楚 BIOS 和 UEFI 是井水不犯河水的
cccer
2022-01-07 18:36:23 +08:00
Windows 是有权更新修改 UEFI 的,但某些主板有禁止系统写 UEFI 的选项。
secretman
2022-01-07 18:59:46 +08:00
重装系统,不用自带的 OEM 系统,可以考虑用 OC 引导
kome
2022-01-07 19:13:44 +08:00
个人案例, 联想小新 700 曾经装过 windows 10 和 ubuntu 双系统, 先 windows 再 ubuntu, ubuntu 选择与 windows 共存的安装方式, 启动列表由 ubuntu 安装程序更改. 之后启动首项就是 ubuntu 了, 从未被自动修改过. 个人倾向是电脑厂商的相关软件干的.
jim9606
2022-01-07 19:33:56 +08:00
除非 Windows 大版本更新,否则 Windows 正常启动流程不会主动修改 UEFI NVRAM 引导选项。
有些品牌的 BIOS 会主动检测 Windows Boot Manager 是否存在并主动添加,例如 Acer Insyde 和 Intel VisualBIOS 就有这种行为。有些 BIOS 会有影子 NVRAM 导致 efibootmgr 、bootice 等工具的修改无效,Acer 就有这种设计。
kkocdko
2022-01-07 20:04:35 +08:00
大惊小怪,这点事情被你说成“劫持”。
就如上面有人说的那样,大概率是 BIOS 自动检测并添加了项目。我这边 Fedora 也是一个情况,删了之后自动又添加回来。
后来我手动把 efi 文件删了之后就不会添加了。如果你真的要删,就去引导分区把对应的文件直接删掉。
KoMAsS121
2022-01-07 20:05:53 +08:00
咱去年双系统(manjaro+win10/arcolinux +win10 ),用 grub 引导时,倒没发现这现象,他没动我的 UEFI,乖乖服 grub 的管,每次不管启动谁,都没填新东西,开机也直接进 grub 让我选。
(至于为啥今年不用,因为咱 win10 自动更新重启后,忘记手动选进 win10 ,而自动进了 linux,直接把我 win10 系统给更新坏了。当然此前我也更新成功很多次,这是个概率事件,但咱还是不想接着赌了。这时技术菜的,纯根据谷歌内容去操作的,也千万别用 Win 自带的工具去修,直接重装了事吧,咱这菜鸟去修,直接把盘修到返厂走保修了,因为连到电脑上会直接卡住系统,盘咋也读不了)
KoMAsS121
2022-01-07 20:09:16 +08:00
@KoMAsS121 咱说的是关于第四点“更恶劣的行为”的发现,前三点,不知道,我用 grub 后就没动过 uefi 。当然我 uefi 里面也确实存在 windws 的直接启动项,至于顺序不记得了,反正开机必进 grub ,不管上次关机的是啥系统。
nkcfc
2022-01-07 20:50:39 +08:00
以前用过集采的联想一体机,每次启动 windows 就会把自己变成第一启动,而且其他启动项很难加进去。
防止 windows 自动加入的解决方案如下:
把 efi 分区中的 windows 启动文件全部删除,在 windows 下利用命令 bcdboot 生成一份 efi 启动文件到 C 盘。这样 efi 分区没有 windows 启动文件了,而 EFI 无法调用 NTFS 分区下的文件(其他机器也许具备读取 ntfs 的 efi 驱动)。
然后使用 Grub 或者 Refind 引导 windows ,我一般用 refind ,这个可以自动搜素所有 efi 文件。
qbqbqbqb
2022-01-07 20:55:05 +08:00
你把 Linux 的 efi 启动器拷到 ESP 分区里的 /EFI/boot/bootx64.efi 这个位置试试
wsy2220
2022-01-07 20:58:03 +08:00
禁止直接加载 windows 的 EFI ,只走 grub 的 chainloading 就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX