BIOS 中开启 Secure Boot 后,尝试使用 iPXE 安装OS,提示无效签名,无法被启动。
一步步排查问题所在。
首先被用于 iPXE 的网卡,在 secure boot 开启情况,BIOS 下能列出 PXE 启动项,说明 optionrom.efi 可通过验证。
接下来是查看 iPXE 具体启动过程。
查看 dhcp.conf 文件
这里的条件语句,首先如果网卡 optionrom 直接支持 ipxe ,那么直接使用配置文件 boot.php。如果不支持,那么加载 ipxe.efi,再使用配置 boot.php 。
下一步动作,将服务端 ipxe.efi 文件屏蔽不给运行。如果客户端 pxe 启动选项无法被启动,说明是通过加载 ipxe.efi 来使用 ipxe 。如果还是可以启动,那么说明网卡 optionrom.efi 支持 ipxe。
如果用的是 ipxe.efi,那么因为该文件无签名,故服务通过 secure boot,可以通过自签名,或者导入 hash 到 BIOS DB 中来通过验证。
自签名方式一。
将 ipxe.efi 拷贝到 Windows 签名。
自签名方式二。
在 Linux 下给 ipxe.efi 签名。
通过 hash 方式。
实验结果,ipxe.efi 通过 secure boot 验证,可以进入 ipxe 环境。但是尝试安装 OS ,会有报错。
猜测是 ipxe 在 secure boot 开启情况下会有兼容性问题。
故开启 secure boot 情况下,只能用回常用的 pxe 方式。