编辑

编辑

编辑

我总结了这个问题和实际的解决方案,以便其他人只看到我原始帖子的亮点。

使用 OVMF 固件时出现“内部错误”问题

在基于的 ROM 上使用arm64EFI 固件时,会出现以下错误x86(请参阅@Christian Ehrhardt的答案),我以前在 Virt-Manager 中使用 Kubuntu 18.04.3 LTS VM 测试 UEFI 固件时错误地这样做过:

virt-manager-内部错误

基本上,您可以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

很可能是这个空模板的副本出错了,或者您的基础副本已损坏/尺寸过大。您能检查一下吗?

相关内容