![编辑](https://linux22.com/image/1169083/%E7%BC%96%E8%BE%91.png)
编辑
我总结了这个问题和实际的解决方案,以便其他人只看到我原始帖子的亮点。
使用 OVMF 固件时出现“内部错误”问题
在基于的 ROM 上使用arm64
EFI 固件时,会出现以下错误x86
(请参阅@Christian Ehrhardt的答案),我以前在 Virt-Manager 中使用 Kubuntu 18.04.3 LTS VM 测试 UEFI 固件时错误地这样做过:
基本上,您可以
x86_64
通过以下ovmf
软件包获取 EFI 固件:$ apt install ovmf
以及
arm64
包含该qemu-efi
软件包的 EFI 固件:$ apt install qemu-efi
我做的修复非常简单
跟踪错误的完整详细日志:
Unable to complete install: 'internal error: process exited while connecting to monitor: 2019-11-11T22:17:50.165625Z qemu-system-x86_64: -drive file=/var/lib/libvirt/qemu/nvram/kubuntu-18.04.3-lts_VARS.fd,if=pflash,format=raw,unit=1: oversized backing file, pflash segments cannot be mapped under 00000000ff800000'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install
guest.start_install(meter=meter)
File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
doboot, transient)
File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
domain = self.conn.createXML(install_xml or final_xml, 0)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3603, in createXML
if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirtError: internal error: process exited while connecting to monitor: 2019-11-11T22:17:50.165625Z qemu-system-x86_64: -drive file=/var/lib/libvirt/qemu/nvram/kubuntu-18.04.3-lts_VARS.fd,if=pflash,format=raw,unit=1: oversized backing file, pflash segments cannot be mapped under 00000000ff800000
它抱怨客户虚拟机的 VARS(.../kubuntu-18.04.3-lts_VARS.fd
):
libvirtError: internal error: process exited while connecting to monitor: 2019-11-11T22:17:50.165625Z qemu-system-x86_64: -drive file=/var/lib/libvirt/qemu/nvram/kubuntu-18.04.3-lts_VARS.fd,if=pflash,format=raw,unit=1: oversized backing file, pflash segments cannot be mapped under 00000000ff800000
请注意,此问题不会发生在您使用不同名称创建的其他虚拟机上。要解决此问题,只需删除 VARS 文件,即可重新创建具有相同名称的虚拟机:
$ rm /var/lib/libvirt/qemu/nvram/kubuntu-18.04.3-lts_VARS.fd
答案1
首先(您已经安装了,但其他人可能会感到疑惑,因为它在 18.04 中没有自动安装为依赖项 - 而是在更高版本中),您需要安装ovmf
$ apt install ovmf
我在 18.04 和 20.04 上尝试了同样的操作,都运行正常。注意:此错误的一个常见原因是在 x86 上使用 arm64 EFI rom(示例 1,示例 2,但是你的配置LGTM(我们可以在路径中看到x86)。
最后我发现你的系统抱怨的是你的 VARS 文件.../kubuntu-18.04.3-lts_VARS.fd
而不是以 结尾的实际 rom CODE.fd
。
当我在 virt-manager 中创建这样的客户机时,它创建的 XML 如下所示:
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/ubuntu18.04_VARS.fd</nvram>
后者是自动创建的,通常是从 复制的/usr/share/OVMF/OVMF_VARS.fd
。如果这些文件大小不对(最大 8MB,通常为 128KB),就会出现您提到的错误。
它们在正常系统上的外观如下:
-rw-r--r-- 1 root root 128K Jul 8 16:07 /usr/share/OVMF/OVMF_VARS.fd
-rw------- 1 libvirt-qemu kvm 128K Nov 12 08:05 /var/lib/libvirt/qemu/nvram/ubuntu18.04_VARS.fd
很可能是这个空模板的副本出错了,或者您的基础副本已损坏/尺寸过大。您能检查一下吗?