+++ This bug was initially created as a clone of Bug #1703463 +++ The way to reproduce this bug is: (1) Install Windows 10 as a guest. (I used Windows 2016 Server) (2) In the guest run the following command: compact /compactos:always This will take several minutes to complete, and at the end print something like: 27527 files within 10759 directories were compressed. 4,104,020,580 total bytes of data are stored in 2,753,420,944 bytes. The compression ratio is 1.5 to 1. (3) Shut down the Windows guest. (4) Attempt to convert the Windows guest, eg: $ virt-v2v -i disk windows-10.0-server-compact.img -o null [ 0.0] Opening the source -i disk windows-10.0-server-compact.img [ 0.0] Creating an overlay to protect the source from being modified [ 0.1] Opening the overlay [ 8.6] Inspecting the overlay virt-v2v: error: libguestfs error: inspect_os: lstat: /Windows/System32/cmd.exe: Input/output error With patched libguestfs, the conversion step succeeds: $ ~/d/libguestfs/run ~/d/virt-v2v/run virt-v2v -i disk windows-10.0-server-compact.img -o null [ 0.0] Opening the source -i disk windows-10.0-server-compact.img [ 0.0] Creating an overlay to protect the source from being modified [ 0.1] Opening the overlay [ 7.3] Inspecting the overlay [ 9.0] Checking for sufficient free disk space in the guest [ 9.0] Estimating space required on target for each disk [ 9.0] 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: QEMU Guest Agent MSI not found on tools ISO/directory. You may want to install the guest agent manually after conversion. virt-v2v: warning: there are no virtio drivers available for this version of Windows (10.0 x86_64 Server Core). virt-v2v looks for drivers in /usr/share/virtio-win The guest will be configured to use slower emulated devices. virt-v2v: This guest does not have virtio drivers installed. [ 9.9] Mapping filesystem data to avoid copying unused and blank areas [ 11.5] Closing the overlay [ 11.8] Assigning disks to buses [ 11.8] Checking if the guest needs BIOS or UEFI to boot [ 11.8] Initializing the target -o null [ 11.8] Copying disk 1/1 to qemu URI json:{ "file.driver": "null-co", "file.size": "1E" } (raw) (100.00/100%) [ 13.6] Creating output metadata [ 13.6] Finishing off Upstream patch: https://www.redhat.com/archives/libguestfs/2020-January/msg00223.html However in RHEL 8 we can solve this by adding the system-compression code to libguestfs-winsupport.
Verified with package: libguestfs-winsupport-8.2-1.module+el8.2.0+5590+82cd80df.x86_64 Steps: 1. Install Windows 2019 as a guest. 2. In the guest run the following command: compact /compactos:always After several minutes, print something like: 35583 files within 15137 directories were compressed. 6,389,945,947 total bytes of data are stored in 3,827,813,566 bytes. The compression ratio is 1.7 to 1. 3. Shut down the Windows guest. 4. Attempt to convert the Windows guest, eg: $ virt-v2v -i disk win2019-x86_64.img -o null [ 0.0] Opening the source -i disk win2019-x86_64.img [ 0.0] Creating an overlay to protect the source from being modified [ 0.1] Initializing the target -o null [ 0.1] Opening the overlay [ 11.7] Inspecting the overlay [ 13.7] Checking for sufficient free disk space in the guest [ 13.7] Estimating space required on target for each disk [ 13.7] Converting Windows Server 2019 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 are no virtio drivers available for this version of Windows (10.0 x86_64 Server). virt-v2v looks for drivers in /usr/share/virtio-win The guest will be configured to use slower emulated devices. virt-v2v: This guest does not have virtio drivers installed. [ 14.9] Mapping filesystem data to avoid copying unused and blank areas [ 15.8] Closing the overlay [ 16.0] Checking if the guest needs BIOS or UEFI to boot [ 16.0] Assigning disks to buses [ 16.0] Copying disk 1/1 to qemu URI json:{ "file.driver": "null-co", "file.size": "1E" } (raw) (100.00/100%) [ 18.2] Creating output metadata [ 18.2] Finishing off
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, 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-2020:2017