libvirt 無法使用 virtio 儲存啟動 windows-uefi guest 虛擬機

libvirt 無法使用 virtio 儲存啟動 windows-uefi guest 虛擬機

我有 hyper-v gen2 win-guest,需要使用 libvirt 在 kvm 上遷移。我使用 qemu-img 將一台客戶機從 vhdx 轉換為 qcow2,使用 qemu-system 和 hda-drive 啟動它,安裝 virtio 驅動程式。之後,我使用以下命令列啟動 virtio 儲存:

 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

賓客成功啟動,powershell cmdlet“get-disk”顯示“Red Hat VirtIO SCSI Disk Device”,所以一切看起來都很好。

下一個命令是:

    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

來賓啟動並進入引導循環並出現 BSOD“無法訪問啟動設備”,即使在安全啟動下也無法啟動將 virtio 更改為 sata 有助於啟動來賓,但我需要 virtio 有紀錄用於引導循環。我哪裡錯了?

我找到了解決方案,而且非常簡單。我決定從另一個獲勝客戶那裡獲取 virtio-drive 並將其附加到有問題的客戶,就像我在第一步中使用 qemy-system 所做的那樣

    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

Guest 成功啟動,get-disk 顯示兩個磁碟:QEMUDISK 和 Red Hat VirtIO SCSI 磁碟裝置。我關閉虛擬機,刪除 parus03.qcow2,將 dc02 的“sata”替換為“virtio”,然後啟動虛擬機。成功啟動後,get-disk 顯示「Red Hat VirtIO SCSI Disk Device」。所以我得到了我想要的。

相關內容