构建 VM 时的 UEFI 启动和不同的 OVMF 固件文件

Mar*_*ekS 6 qemu uefi kvm-virtualization

Ubuntu 22.04 中提供的 UEFI/OVMF 固件有什么区别?在使用 UEFI 和安全启动的 QEMU/KVM 中构建通用 Windows 和 Linux VM 时,我应该使用哪个?

  1. OVMF_CODE_4m.fd
  2. OVMF_CODE_4m.ms.fd
  3. OVMF_CODE_4m.secboot.fd
  4. OVMF_CODE_4m.snakeoil.fd
  5. OVMF_CODE.fd
  6. OVMF_CODE.ms.fd
  7. OVMF_CODE.secboot.fd

小智 5

4M是固件的大小,另一个文件是2M。也许某些旧规格或旧设备的固件驻留区域较小?如果您想浏览历史 UEFI 规范以查看需求是否/何时发生变化(带参考),请发表评论,我将编辑此答案。

只有后缀且没有后缀的“普通”文件CODE是一个固件,它允许安全启动被破坏或禁用,例如在<loader secure='no'>您的 libvirt 域 XML 中。如果您不需要安全启动,请使用此选项。

ms适用于具有 Microsoft 安全启动签名密钥的固件,实际上只是该secboot文件的符号链接。参考

secboot是支持安全启动(普通映像支持)并且还强制执行安全启动硬件要求(如 SMM)(普通映像不支持)的固件。如果您想要真正的安全启动,那么您应该使用这个。 参考

snakeoil已使用随软件包一起提供的一组 Debian 私钥进行预签名,这样您就不必从 Tianocore 的源代码中重新编译来测试需要私钥的情况。由于私钥是公共知识,并且也存在于其他人的系统上,因此您永远不应该在生产虚拟机上使用它。 参考