
저는 Hyper-V gen2 win-guest를 가지고 있고 libvirt를 사용하여 kvm으로 마이그레이션해야 합니다. qemu-img를 사용하여 한 게스트를 vhdx에서 qcow2로 변환하고 qemu-system 및 hda-drive로 시작하고 virtio 드라이버를 설치합니다. 그런 다음 해당 명령줄을 사용하여 virtio Storage로 시작합니다.
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가 필요합니다.통나무부트루프용. 내가 어디서 잘못됐나요?
해결책을 찾았는데 매우 간단했습니다. 나는 qemy-system의 첫 번째 단계에서 했던 것처럼 다른 win-guest로부터 virtio-drive를 가져와서 문제 게스트에 연결하기로 결정했습니다.
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
게스트가 성공하면 get-disk에 QEMUDISK와 Red Hat VirtIO SCSI 디스크 장치라는 두 개의 디스크가 표시됩니다. VM을 종료하고 parus03.qcow2를 제거하고 dc02의 "sata"를 "virtio"로 바꾸고 vm을 시작합니다. 성공적으로 부팅되면 get-disk에 "Red Hat VirtIO SCSI 디스크 장치"가 표시됩니다. 그래서 나는 내가 원하는 것을 얻습니다.