qemu 버전 5.1, KVM 활성화, libvirt 및 virt-manager가 소스에서 설치된 내 노트북, ARM Chromebook에서 ARM 32비트용 FreeBSD 13.2를 가상화하려고 하는데 모든 것이 잘 작동합니다. 호스트 운영 체제는 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에서 사용하는 이러한 매개변수는 연결된 virtio 디스크가 인식되지 않기 때문에 FreeBSD를 시작할 수 없습니다. (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 이미지 파일)에 해당하는 코드 부분입니다.
qemu와 libvirt 매개변수의 차이점은 무엇입니까? 이유에 대한 막연한 생각이 있습니까? 문제는 qemu 및/또는 libvirt로 인해 발생한 것 같습니다.
BIOS 설정에서 이미지 부팅을 시도하고 이미지 디스크를 직접 부팅하려고 시도했지만 다음 오류가 표시되었습니다.
전체 부팅 순서를 보려면 제가 녹화한 다음 짧은 비디오를 시청하세요.
https://drive.google.com/file/d/1kRoAFH_6DH-vNEmNmg4PEQ8lQmKZnUi2/view