libvirt 无法识别附加的 virtio 磁盘,但 qemu 可以识别

libvirt 无法识别附加的 virtio 磁盘,但 qemu 可以识别

我正在尝试在我的笔记本电脑 ARM Chromebook 上虚拟化适用于 ARM 32 位的 FreeBSD 13.2,其中 qemu 版本为 5.1,启用了 KVM,从源代码安装了 libvirt 和 virt-manager,一切正常。主机操作系统是 Devuan 5。事实上,使用这些参数,FreeBSD 能够完全启动:

UEFICODE=/usr/share/AAVMF/AAVMF32_CODE.fd
UEFIVARS=/usr/share/AAVMF/AAVMF32_VARS.fd
DISK=/Dati/img/FreeBSD-13.2-RELEASE-arm-armv7-GENERICSD.img

qemu-system-arm -enable-kvm -serial stdio -m 1024 -M virt -cpu cortex-a15 
-drive if=pflash,format=raw,unit=0,file=$UEFICODE 
-drive if=pflash,format=raw,unit=1,file=$UEFIVARS 
-drive file=$DISK,media=disk,format=raw 
-device i82559b,netdev=net0,mac="52:54:00:12:34:55" 
-netdev type=user,id=net0 -device virtio-gpu-pci -usb 
-device nec-usb-xhci -device usb-kbd -device usb-mouse 
-device vmware-svga,id=video0,vgamem_mb=16

正如您可以从此启动日志消息中看到的:

https://pastebin.ubuntu.com/p/VBtJ5bTTCz/

所以,这个论点是好的,因为 qemu 可以识别 virtio 磁盘:

-drive file=$DISK,media=disk,format=raw \

但是 libvirt 使用的这些参数无法启动 FreeBSD,因为附加的 virtio 磁盘无法识别(我也尝试使用 SATA 磁盘,但也无法识别):

<disk type="file" device="disk">
  <driver name="qemu" type="raw"/>
  <source file="/Dati/img/FreeBSD-13.2-RELEASE-arm-armv7-GENERICSD.img"/>
  <target dev="vda" bus="virtio"/>
  <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</disk>

在这里您可以看到 libirt 使用的完整 XML 代码:

https://pastebin.ubuntu.com/p/hpGmgp2773/

这是与 virtio 磁盘(FreeBSD 映像文件)对应的代码部分

1

qemu 和 libvirt 参数有什么区别?您对原因有一些模糊的了解吗?我认为问题是由 qemu 和/或 libvirt 引起的。

我尝试在 BIOS 设置中启动映像并尝试直接启动映像磁盘,但我看到了此错误:

2

如果你想看整个启动顺序,你可以看一下我录制的这个短视频:

https://drive.google.com/file/d/1kRoAFH_6DH-vNEmNmg4PEQ8lQmKZnUi2/view

相关内容