Created attachment 1755655 [details] v2v-convert-win2019-qxl.log Description of problem: Should remove "virt-v2v: warning: there is no QXL driver for this version of Windows" during conversion Version-Release number of selected component (if applicable): virt-v2v-1.42.0-9.module+el8.4.0+9561+069bb9c1.x86_64 libguestfs-1.44.0-1.module+el8.4.0+9398+f376ac33.x86_64 libvirt-libs-7.0.0-3.module+el8.4.0+9709+a99efd61.x86_64 qemu-kvm-5.2.0-5.module+el8.4.0+9775+0937c167.x86_64 package ndbkit is not installed virtio-win-1.9.16-0.el8.noarch How reproducible: 100% Steps to Reproduce: 1.Check qxl drivers in virtio-win folder # ls /usr/share/virtio-win/drivers/by-driver/qxldod/ 2k16 2k19 w10 # ls /usr/share/virtio-win/drivers/by-driver/qxl 2k8R2 w7 2.Convert a win2016 guest from VMware to rhv4.4 by virt-v2v # virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk6.5 -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 -o rhv-upload -of qcow2 -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -ip /home/passwd -op /home/rhvpasswd -os nfs_data -n ovirtmgmt esx7.0-win2016-x86_64-vmware-tool -oo rhv-direct=true [ 0.7] Opening the source -i libvirt -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 esx7.0-win2016-x86_64-vmware-tool -it vddk -io vddk-libdir=/home/vddk6.5 -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 [ 2.5] Creating an overlay to protect the source from being modified [ 5.6] Opening the overlay [ 28.3] Inspecting the overlay [ 35.8] Checking for sufficient free disk space in the guest [ 35.8] Estimating space required on target for each disk [ 35.8] Converting Windows Server 2016 Standard to run on KVM virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing. Firstboot scripts may conflict with PnP. virt-v2v: warning: there is no QXL driver for this version of Windows (10.0 x86_64). virt-v2v looks for this driver in /usr/share/virtio-win/virtio-win.iso The guest will be configured to use a basic VGA display driver. virt-v2v: This guest has virtio drivers installed. [ 53.7] Mapping filesystem data to avoid copying unused and blank areas [ 54.4] Closing the overlay [ 54.6] Assigning disks to buses [ 54.6] Checking if the guest needs BIOS or UEFI to boot [ 54.6] Initializing the target -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -op /home/rhvpasswd -os nfs_data [ 56.1] Copying disk 1/1 to qemu URI json:{ "file.driver": "nbd", "file.path": "/tmp/v2vnbdkit.LFqplq/nbdkit4.sock", "file.export": "/" } (qcow2) (100.00/100%) [ 817.2] Creating output metadata [ 819.3] Finishing off 3.Check win2016 guest after v2v conversion, found qxl driver can installed for display device successfully Actual result: There is "virt-v2v: warning: there is no QXL driver for this version of Windows" during conversion Expected results: Should remove "virt-v2v: warning: there is no QXL driver for this version of Windows" during conversion Additional info:
We're looking for drivers in /usr/share/virtio-win/virtio-win.iso not /usr/share/virtio-win/... However yes it's a bit odd that there is a QXL driver installed after conversion even though virt-v2v couldn't install one. (I checked the log and there really isn't a QXL driver in the ISO, and virt-v2v really doesn't install one). I can only assume it is being installed after conversion by something, perhaps one of the oVirt agents. In -o rhv* modes we always give the guest a QXL device: https://github.com/libguestfs/virt-v2v/blob/7f49b4adb1cf25ef2a2df59c53c748b38cb46832/v2v/create_ovf.ml#L680 I'm not sure there's actually a bug here as virt-v2v is printing the correct warning. See also bug 1902635.
Based on https://bugzilla.redhat.com/show_bug.cgi?id=1902635#c16, the correct drivers should be in qxldod. And the name in qxldod/2k19/amd64/ is 'qxldod.inf'. Should v2v do some change? I saw it only checks 'qxl.inf' for the warning. https://github.com/libguestfs/virt-v2v/blob/master/v2v/windows_virtio.ml#L158
Yes that explains it. We copy the qxldod driver in. But the warning shows that we didn't copy "qxl.inf". So yes this is a bug in the warning, and explains why the driver got installed anyway.
Fixed upstream in commit 11d1f3cd6878ae7713e589194f97526f744dc090.
Verify the bug with builds: virt-v2v-1.42.0-12.module+el8.5.0+10976+d40a93e9.x86_64 1.Check qxl drivers in virtio-win folder # ls /usr/share/virtio-win/drivers/by-driver/qxldod/ 2k16 2k19 w10 # ls /usr/share/virtio-win/drivers/by-driver/qxl 2k8R2 w7 Scenario 1: 1.Convert a guest which qxl driver is contained in virtio-win folder # virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib/ -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 -o rhv-upload -of qcow2 -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -ip /home/passwd -op /home/rhvpasswd -os nfs_data -n ovirtmgmt esx7.0-win2016-x86_64 -oo rhv-direct=true [ 0.5] Opening the source -i libvirt -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 esx7.0-win2016-x86_64 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib/ -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 [ 2.0] Creating an overlay to protect the source from being modified [ 2.9] Opening the overlay [ 7.7] Inspecting the overlay [ 12.2] Checking for sufficient free disk space in the guest [ 12.2] Estimating space required on target for each disk [ 12.2] Converting Windows Server 2016 Standard to run on KVM ** (process:318135): WARNING **: 11:37:24.353: Entity http://pcisig.com/pci/1B36/0100 referenced but not defined virt-v2v: This guest has virtio drivers installed. [ 23.2] Mapping filesystem data to avoid copying unused and blank areas [ 23.8] Closing the overlay [ 24.1] Assigning disks to buses [ 24.1] Checking if the guest needs BIOS or UEFI to boot [ 24.1] Initializing the target -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -op /home/rhvpasswd -os nfs_data [ 25.4] Copying disk 1/1 to qemu URI json:{ "file.driver": "nbd", "file.path": "/tmp/v2vnbdkit.2GMN95/nbdkit4.sock", "file.export": "/" } (qcow2) (100.00/100%) [ 669.8] Creating output metadata [ 671.6] Finishing off Result:No error info like: ‘virt-v2v: warning: there is no QXL driver for this version of Windows ‘ shows. Scenario 2: 2.Convert a guest which qxl driver not in virtio-win folder # virt-v2v -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib/ -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 -o rhv-upload -of qcow2 -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -ip /home/passwd -op /home/rhvpasswd -os nfs_data -n ovirtmgmt esx7.0-win8-x86_64 -oo rhv-direct=true [ 0.4] Opening the source -i libvirt -ic vpx://root.198.169/data/10.73.199.217/?no_verify=1 esx7.0-win8-x86_64 -it vddk -io vddk-libdir=/home/vmware-vix-disklib-distrib/ -io vddk-thumbprint=B5:52:1F:B4:21:09:45:24:51:32:56:F6:63:6A:93:5D:54:08:2D:78 [ 2.0] Creating an overlay to protect the source from being modified [ 2.8] Opening the overlay [ 8.1] Inspecting the overlay [ 13.1] Checking for sufficient free disk space in the guest [ 13.1] Estimating space required on target for each disk [ 13.1] Converting Windows 8 Enterprise to run on KVM ** (process:317654): WARNING **: 11:27:07.635: Entity http://pcisig.com/pci/1B36/0100 referenced but not defined virt-v2v: warning: there is no QXL driver for this version of Windows (6.2 x86_64). virt-v2v looks for this driver in /usr/share/virtio-win/virtio-win.iso The guest will be configured to use a basic VGA display driver. virt-v2v: This guest has virtio drivers installed. [ 19.7] Mapping filesystem data to avoid copying unused and blank areas [ 20.1] Closing the overlay [ 20.3] Assigning disks to buses [ 20.3] Checking if the guest needs BIOS or UEFI to boot [ 20.3] Initializing the target -o rhv-upload -oc https://dell-per740-22.lab.eng.pek2.redhat.com/ovirt-engine/api -op /home/rhvpasswd -os nfs_data [ 21.6] Copying disk 1/1 to qemu URI json:{ "file.driver": "nbd", "file.path": "/tmp/v2vnbdkit.qMGWSF/nbdkit4.sock", "file.export": "/" } (qcow2) (100.00/100%) [ 611.9] Creating output metadata [ 613.8] Finishing off Result:virt-v2v gives an expected error info. Additional info: Also test win2008r2,win7 all checkpoints passed. As above testing,now change the bug from ON_QA to VERIFIED.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (virt:av bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:4684
*** Bug 1943203 has been marked as a duplicate of this bug. ***