Symptoms
A VM does not boot after updating the host to Virtuozzo Hybrid Server 7.5 Update 5.
After checking dumpxml of the VM you see the discrepancy between the loader and the nvram:
~]# virsh dumpxml MyVM | egrep 'OVMF|nvram' <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader> <nvram format='qcow2'>/vz/vmprivate/f66c7e9c-66ca-405b-98d1-dcfcc0e07f32/NVRAM_4M.dat</nvram>
OR
~]# virsh dumpxml MyVM | egrep 'OVMF|nvram' <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE_4M.fd</loader> <nvram format='qcow2'>/vz/vmprivate/f66c7e9c-66ca-405b-98d1-dcfcc0e07f32/NVRAM.dat</nvram>
Cause
The issue can be observed if the normal flow of the nvram update by Dispatcher service was somehow interrupted (e.g. crash Dispatcher service of ungraceful shutdown of the whole host).
Resolution
Run the manual nvram update on the affected VM in stopped state:
prlctl set $VM_NAME --update-nvram
After that the resulted VM should have updated both lines in the configuration:
~]# virsh dumpxml MyVM | egrep 'OVMF|nvram' <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE_4M.fd</loader> <nvram format='qcow2'>/vz/vmprivate/f66c7e9c-66ca-405b-98d1-dcfcc0e07f32/NVRAM_4M.dat</nvram>
And the "virtual size: 528K" of the nvram file in the VM's home directory:
~]# qemu-img info /vz/vmprivate/f66c7e9c-66ca-405b-98d1-dcfcc0e07f32/NVRAM_4M.dat
image: /vz/vmprivate/f66c7e9c-66ca-405b-98d1-dcfcc0e07f32/NVRAM_4M.dat
file format: qcow2
virtual size: 528K (540672 bytes)
disk size: 836K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false