Ubuntu 22.04 中可用的 UEFI/OVMF 固件有什么区别?在 QEMU/KVM 中使用 UEFI 和安全启动构建通用 Windows 和 Linux VM 时应该使用哪一个?
- OVMF_CODE_4m.fd
- OVMF_CODE_4m.ms.fd
- OVMF_CODE_4m.secboot.fd
- OVMF_CODE_4m.snakeoil.fd
- OVMF_CODE.fd
- OVMF_CODE.ms.fd
- OVMF_CODE.secboot.fd
答案1
4M
是固件的大小,另一个文件是 2M。也许一些较旧的规范或较旧的设备为固件驻留的区域较小?如果您想浏览历史 UEFI 规范以查看要求是否/何时发生变化(附有参考资料),请发表评论,我会编辑此答案。
只有后缀而没有后缀的“普通”文件CODE
是允许破坏或禁用安全启动的固件,例如在<loader secure='no'>
您的 libvirt 域 XML 中。如果您不想要安全启动,请使用此项。
ms
用于具有 Microsoft 安全启动签名密钥的固件,实际上只是该secboot
文件的符号链接。参考
secboot
是支持安全启动(纯文本映像支持)的固件,并且还强制执行安全启动硬件要求,如 SMM(纯文本映像不支持)。如果您想要真正的安全启动,那么您应该使用这个。 参考
snakeoil
已使用随软件包一起提供的一组 Debian 私钥进行预签名,这样您就不必从 Tianocore 的源代码重新编译,只需测试需要私钥的情况即可。由于私钥是公开的,并且也存在于其他所有人的系统中,您永远不应该在生产虚拟机上使用它。 参考