固件、操作系统
本文为M.W.D.的个人笔记,严格意义来讲不应该发布到此处。
在现实世界的UEFI固件电脑当中,有一个名为UEFI安全启动的守门员,它曾守护者每一个Windows设备。
如果你想给你的固件签署Microsoft UEFI CA 2023签名,你需要准备一个EV证书(禁止自签,这个证书必须提交到Microsoft那边)。
如果……
你想拿Windows UEFI CA 2023签名去签署自己的Linux固件。
但是因为UEFI BlackLotus事件(再者用别人的私钥签署病毒会被微软直接处刑),这个猜想却是失败的,或者说注定失败。
本来UEFI安全启动只认固件签名(也许还能搞自签名证书),但是因为需要同时替换PK、KEK、db、dbx对于我们自己而言反而是件坏事。
你绝对会想到一个问题:我直接用MOKManager不就好了?
这里提出一个事实:我们中国绝大多数计算机用户、尤其是Windows用户,甚至连Linux都没接触过(更不用说Grub和Arch Linux)。甚至不习惯于使用iso文件打包项目作品(这是光盘的格式)。
几个月前,笔者试着拆解Windows重装大师的PE文件,发现除了DiskGenius和Windows重装大师之外,其他的什么都没有。
只留下了一个README文件,而且还是一个警告。
你可能会觉得这是一个PE镜像文件,但是这个镜像不同于常规的iso、vhd、vhdx文件分发。
一般PE的READNE文件可能会说明用户如何修改PE镜像文件、以及注意事项和已知问题。(微PE都这么干了,为何重装大师不行?)
甚至连EFI文件都不看。
因为微软沟糟的固件签名机制,一些启动加载器需要其他奇淫技巧才能让这个固件在已开启UEFI安全启动的前提下正常开机(这里指不通过Grub和shim/MOKmanager绕过微软的验证)。
目前为止,没有一个开源项目能够不使用Grub和shim/MOKManager直接和UEFI安全启动对线(上一个直接和UEFI安全启动对线的直接差点让所有bootloader被微软拉闸)。
更不用说更改PE文件会让整个U盘无法使用这种情况。
补充:哪些动作会导致PE无法加载
此处的行为不会导致U盘无法使用,顶多让PE无法加载。
再次提醒:安装PE时务必备份数据!
本段落部分文字取自Microsoft Learn。
电脑启动时,它会首先找到操作系统启动加载程序。 无安全启动功能的电脑运行电脑硬盘上的任何启动加载程序。 电脑无法判断它是受信任的操作系统还是 rootkit。
配备有 UEFI 的电脑启动时,电脑首先验证固件是否经过了数字签名,从而减少了固件 rootkit 风险。 —— Microsoft Learn
固件签名不当
修改了UEFI固件设置导致安装了Windows UEFI CA 2023的电脑无法开机(只能关闭UEFI安全启动并重新生成启动文件) - 参考此处
删除wim文件
删除Grub配置文件(会导致没法进入Grub)
删除BCD配置文件(这可不得了,只能重装了)
最后更新于