
ich habe einen Hyper-V Gen2 Win-Guest und muss mit Libvirt auf KVM migrieren. Ich konvertiere einen Gast von VHDX nach QCOW2 mit QEMU-IMG, starte ihn mit QEMU-System und HDA-Laufwerk und installiere Virtio-Treiber. Danach starte ich ihn mit Virtio Storage mit dieser Befehlszeile:
qemu-system-x86_64 -machine type=pc-q35-2.8 \
-accel kvm -cpu host \
--bios /usr/share/OVMF/OVMF_CODE.fd \
-m 2048 -smp 2 \
-drive file=/var/lib/libvirt/image
/dc02.qcow2,index=0,media=disk,if=virtio \
-spice addr=192.168.69.108,port=5910,disable-ticketing
Der Gast startet erfolgreich, das Powershell-Cmdlet „get-disk“ zeigt „Red Hat VirtIO SCSI Disk Device“ an, also scheint alles in Ordnung zu sein.
Der nächste Befehl war:
virt-install --name dc02 --memory 1024,maxmemory=2048 \
--vcpus 1 --cpu host --boot uefi,hd,network \
--disk /var/lib/libvirt/images/dc02.qcow2,bus=virtio \
--network bridge=br.27,model=virtio --video=qxl \
--memballoon virtio --hvm --controller usb3 \
--machine=q35 --graphics spice,listen=192.168.69.108
Gast startet und gerät in Bootloop mit BSOD "Unaccessible boot device" und bootet nicht einmal im sicheren Boot. Das Ändern von Virtio auf SATA hilft beim Starten des Gasts, aber ich brauche Virtio. Es gibtProtokollfür Bootloop. Wo habe ich einen Fehler gemacht?
Ich habe eine Lösung gefunden und sie war ziemlich einfach. Ich entscheide mich, Virtio-Drive von einem anderen Win-Gast zu nehmen und es an den Problem-Gast anzuhängen, wie ich es im ersten Schritt mit Qemy-System getan habe.
virt-install --name dc02 --memory 1024,maxmemory=2048 --vcpus 1 \
--cpu host-passthrough --boot uefi,hd,network \
--disk /var/lib/libvirt/images/dc02.qcow2,bus=sata \
--disk /var/lib/libvirt/images/parus03.qcow2,bus=virtio \
--network bridge=br.27,model=virtio --video=qxl \
--memballoon virtio --hvm --controller usb3 \
--machine=q35 --graphics spice,listen=192.168.69.108
Gast startet erfolgreich, get-disk zeigt zwei Festplatten: QEMUDISK und Red Hat VirtIO SCSI Disk Device. Ich fahre die VM herunter, entferne parus03.qcow2, ersetze „sata“ durch „virtio“ für dc02 und starte die VM. Der Start ist erfolgreich, get-disk zeigt „Red Hat VirtIO SCSI Disk Device“. Ich bekomme also, was ich will.