Bug 1311890

Summary: virt-v2v: error: libguestfs error: hivex_open: hivex failed to open /Windows/System32/config/SOFTWARE: Operation not supported
Product: Red Hat Enterprise Linux 7 Reporter: tingting zheng <tzheng>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact: Yehuda Zimmerman <yzimmerm>
Priority: high    
Version: 7.3CC: juzhou, kuwei, liangleihappy, mxie, mzhan, pasik, ptoscano, rjones, xiaodwan, ydu, yzimmerm
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: V2V
Fixed In Version: libguestfs-1.36.1-1.el7 Doc Type: Bug Fix
Doc Text:
*virt-v2v* can convert Windows guests with corrupted or damaged Windows registries Previously, the *hivex* library used by *libguestfs* to manipulate the Windows registry could not handle corrupted registries. Consequently, the *virt-v2v* utility was not able to convert Windows guests with corrupted or damaged Windows registries. With this update, *libguestfs* configures *hivex* to be less strict when reading the Windows registry. As a result, *virt-v2v* can now convert most Windows guests with corrupted or damaged Windows registries.
Story Points: ---
Clone Of:
: 1423436 (view as bug list) Environment:
Last Closed: 2017-08-01 22:08:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 888379, 1359086, 1423436    
Bug Blocks: 1288337, 1301891, 1401400    

Description tingting zheng 2016-02-25 09:47:21 UTC
Description of problem:
Fail to convert some win10 guests from esx,but some one can be converted successfully.

Version-Release number of selected component (if applicable):
virt-v2v-1.32.2-6.el7.x86_64
virtio-win-1.8.0-4.el7.noarch
libguestfs-winsupport-7.2-1.el7.x86_64
libvirt-1.3.1-1.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Use virt-v2v to convert win10 i386 from esx 5.1,it fails with error:
virt-v2v: error: libguestfs error: hivex_open: hivex failed to open 
/Windows/System32/config/SOFTWARE: Operation not supported

2.log info:
http://libvirt-jenkins.englab.nay.redhat.com:8080/view/v2v_auto/job/v2v_test_by_tzheng/lastBuild/testReport/%28root%29/convert_vm_to_libvirt/esx_vm_5_1_windows_win10_i386_raw_vm_check/

Actual results:
As description.

Expected results:
Win 10 can be converted successfully.

Additional info:

Comment 4 Richard W.M. Jones 2016-06-22 15:11:58 UTC
The actual error is:

hivex: hivex_open: returning ENOTSUP because: SOFTWARE: trailing garbage at end of file (at 0x2084000, after 7639 pages)
hivex_open: SOFTWARE: Operation not supported

Similar to bug 739029.

Anyway, this requires a change to hivex to make it more lax (like
Windows itself) when processing corrupt registries.

Since hivex is not on the ACL for RHEL 7.3, this conveniently means
we can defer this bug to 7.4.

Comment 5 Richard W.M. Jones 2016-07-06 10:28:26 UTC
*** Bug 1230414 has been marked as a duplicate of this bug. ***

Comment 6 Richard W.M. Jones 2017-02-16 14:24:59 UTC
Defer to RHEL 7.5.  Someone is in fact working on this problem
upstream, see:
https://www.redhat.com/archives/libguestfs/2017-February/thread.html#00159

Comment 7 Richard W.M. Jones 2017-02-17 10:25:33 UTC
The hivex patches were completed unexpectedly quickly.  I have
posted patches for libguestfs to use them.

This will require changes to hivex too.

https://www.redhat.com/archives/libguestfs/2017-February/msg00194.html

Comment 9 mxie@redhat.com 2017-04-01 02:33:25 UTC
Verify the bug with builds:
virt-v2v-1.36.3-1.el7.x86_64
libguestfs-1.36.3-1.el7.x86_64
qemu-kvm-1.5.3-134.el7.x86_64
qemu-kvm-rhev-2.8.0-6.el7.x86_64
virtio-win-1.9.0-3.el7.noarch
libvirt-3.1.0-2.el7.x86_64
libguestfs-winsupport-7.2-2.el7.x86_64

Steps:
1.Build auto job:converting win10(i386 and x86_64) guests from ESXi5.1/5.5/6.0 to libvirt by virt-v2v

Note:
rhel means that run the testing with qemu-kvm
rhev means that run the testing with qemu-kvm-rhev

Result:
All win10 guests could be converted successfully and checkpoints are passed, details pls refer to below jobs
https://libvirt-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/v2v/view/RHEL-7.4/job/v2v-RHEL-7.4-runtest-x86_64-acceptance-libvirt/13/testReport/rhel/convert_vm_to_libvirt/
https://libvirt-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/v2v/view/RHEL-7.4/job/v2v-RHEL-7.4-runtest-x86_64-acceptance-libvirt/13/testReport/rhev/convert_vm_to_libvirt/


So the bug has been fixed, move the bug from ON_QA to VERIFIED

Comment 13 errata-xmlrpc 2017-08-01 22:08:55 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-2017:2023