(Replying through the groups.io web interface, just this one time)
wuchenye1995 wrote:
> Hi all,
>
> We found a problem with live migration of UEFI virtual machines due to
> size of OVMF.fd changes.
>
> Specifically, the size of OVMF.fd in edk with low version such as
> edk-2.0-25 is 2MB while the size of it in higher version such as
> edk-2.0-30 is 4MB.
>
> When we migrate a UEFI virtual machine from the host with low version
> of edk2 to the host with higher one, qemu component will report an
> error in function qemu_ram_resize while checking size of ovmf_pcbios:
> Length mismatch: pc.bios: 0x200000 in != 0x400000: Invalid argument.
>
> We want to know how to solve this problem after updating the version
> of edk2.
You can't solve it. The 2MB and 4MB builds of OVMF are fundamentally
incompatible with each other. It's actually beneficial that QEMU cleanly
prevents such attempts at migration; otherwise you'd see misbehavior
that would be much less graceful.
Please see commit b24fca05751f ("OvmfPkg: introduce 4MB flash image
(mainly) for Windows HCK", 2017-05-05) for more info:
https://github.com/tianocore/edk2/commit/b24fca05751f
This is the reason why the Fedora edk2 package build script (= RPM spec
file) uses "-D FD_SIZE_2MB" explicitly.
Thanks
Laszlo