开启Secure Boot的情况下使用Linux的经历


环境

首先,说一下我这边的环境是可以正常使用的,但是并不确定是否会有特殊的机型不支持。

环境 名称
系统 Gentoo
电脑 Alienware M15 R1
Bootloader systemd-boot

使用PreLoader (Microsoft签名)

这个方法适合懒得折腾的朋友。首先,下载PreLoader的方案有两个,一是手动去网站上下载,网站是https://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released,二是我在我的overlay里打了个preloader-signed的ebuild,大家可以直接拿来用,overlay的地址是https://github.com/zozx/zozx-overlay,可以通过如下方式开启 (想直接从repo里拿走也随意)

eselect repository enable zozx-overlay
# 或者
layman -a zozx-overlay

# 接着同步并emerge一下
emerge --sync && emerge -v preloader-signed

接着就是配置PreLoader了

cp /usr/share/preloader-signed/{PreLoader,HashTool}.efi path-to-bootloader # path-to-bootloader请以自己机子的bootloader位置为主
efibootmgr -v -c -L "PreLoader" -l path-to-PreLoader.efi # 没有efibootmgr的自己装一下,path-to-Preloader.efi请以自己机子复制到esp后的位置为主
reboot # 请进入BIOS并自己开启Secure Boot

重启之后PreLoader会报Hash有问题,并且进入HashTool,添加一下Bootloader的efi文件和内核文件即可

尾声

这种方式相对比较简单,而且不用修改BIOS里边的PK,KEK,db,比较通用,我目前使用的是自己的签名,至于方式,可以参考https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Using_your_own_keys,注意要开启Setup Mode,还有就是sbkeysync报错的话可以使用BIOS里自带的功能来更换 (部分BIOS不支持)


文章作者: Raymond Kwok
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Raymond Kwok !
评论