Bug 1796073 - libguestfs cannot inspect disks using Windows 10 NTFS compression, error "unsupported reparse point"
Summary: libguestfs cannot inspect disks using Windows 10 NTFS compression, error "uns...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux Advanced Virtualization
Classification: Red Hat
Component: libguestfs-winsupport
Version: 8.2
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: rc
: 8.0
Assignee: Richard W.M. Jones
QA Contact: YongkuiGuo
URL:
Whiteboard: V2V
Depends On: 1703463 1705234
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-01-29 14:40 UTC by Richard W.M. Jones
Modified: 2020-05-05 09:56 UTC (History)
3 users (show)

Fixed In Version: libguestfs-winsupport-8.2-1.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1703463
Environment:
Last Closed: 2020-05-05 09:55:54 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2020:2017 0 None None None 2020-05-05 09:56:49 UTC

Description Richard W.M. Jones 2020-01-29 14:40:19 UTC
+++ 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.

Comment 2 YongkuiGuo 2020-02-04 04:03:13 UTC
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

Comment 4 errata-xmlrpc 2020-05-05 09:55:54 UTC
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


Note You need to log in before you can comment on or make changes to this bug.