一、ovmf 与 edk2 关系:
英特尔EFI开发工具包II (edk2)的子项目,所以在edk2 源码中也能找到 ovmf 部分,ovmf 使UEFI支持Ia32和X64虚拟机
二、OVMF_VARS.fd 与 OVMF_CODE.fd:
1、变量存储和固件的可执行文件;
2、OVMF_CODE 是 bootloader 镜像文件,而 OVMF_VARS 是保存OVMF_CODE 中变量的文件;
3、UEFI 启动页面设置一些参数,而这些参数会保存到 OVMF_VARS
三、OVMF 与 libvirt 关系:
1、UEFI:虚拟机XML 会使用OVMF_CODE.fd 和 OVMF_VARS.fd 文件去启动
hvm
/usr/share/OVMF/OVMF_CODE.fd
/var/lib/libvirt/qemu/nvram/vm_4_1320_1039864771756687360_VARS.fd
2、UEFI:虚拟机XML 会使用OVMF_CODE.secboot.fd 和 OVMF_VARS.fd 文件去启动
hvm
/usr/share/OVMF/OVMF_CODE.secboot.fd
/var/lib/libvirt/qemu/nvram/vm_4_132_2674_VARS.fd
```
3、/etc/libvirt/qemu.conf
Libvirt 默认根据不同的系统架构,选择相应的文件,由virt-install 启动 UEFI,创建虚机
参考:
https://git.centos.org/rpms/edk2/blob/c8/f/SPECS/edk2.spec
www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt
https://www.cnblogs.com/klb561/p/8921920.html
https://github.com/tianocore/tianocore.github.io/wiki/OVMF
https://uefi.org/sites/default/files/resources/Linaro_Embedded%20Development%20Kit%202%20(Edk2).pdf
https://github.com/tianocore/edk2