Bug 1240274

Summary: Remove references in error messages to libguestfs-winsupport
Product: Red Hat Enterprise Linux 7 Reporter: Richard W.M. Jones <rjones>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.2CC: juzhou, ptoscano, tzheng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libguestfs-1.28.1-1.46.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 07:02:21 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:    
Bug Blocks: 1240278    

Description Richard W.M. Jones 2015-07-06 12:26:07 UTC
Description of problem:

Currently libguestfs prints an error message if libguestfs-winsupport
is not available:

https://github.com/libguestfs/libguestfs/commit/159890e136c989199ee9cd858b9392779850ddde

This message should be removed.

Version-Release number of selected component (if applicable):

libguestfs-1.28.1-1.44.el7

How reproducible:

100%

Steps to Reproduce:
1. Uninstall libguestfs-winsupport.
2. Do a virt-v2v conversion of a Windows guest.

Actual results:

You will see a message:
 RHEL notice
 -------------
 libguestfs will return this error for Microsoft Windows guests if the
 separate 'libguestfs-winsupport' package is not installed. If the
 guest is running Microsoft Windows, please try again after installing
 'libguestfs-winsupport'.

Expected results:

This whole message will go away.  Since virt-v2v will directly
depend on libguestfs-winsupport, it won't be possible to remove
libguestfs-winsupport and still run virt-v2v.

Comment 3 zhoujunqin 2015-07-08 08:39:19 UTC
I can reproduce this issue with package:
libguestfs-1.28.1-1.44.el7.x86_64
libvirt-1.2.17-1.el7.x86_64
virt-v2v-1.28.1-1.44.el7.x86_64

Steps:
1. Check package libguestfs-winsupport doesn't install in sytem.

# rpm -q libguestfs-winsupport
package libguestfs-winsupport is not installed

2. Do a virt-v2v conversion of a Windows guest.

# virt-v2v -i disk /var/lib/libvirt/images/win7.qcow2 -o local  -os /var/tmp/
[   0.0] Opening the source -i disk /var/lib/libvirt/images/win7.qcow2
[   0.0] Creating an overlay to protect the source from being modified
[   1.0] Opening the overlay
[   3.0] Initializing the target -o local -os /var/tmp/
[   3.0] Inspecting the overlay
virt-v2v: error: no root device found in this operating system image.

If reporting bugs, run virt-v2v with debugging enabled and include the 
complete output:

  virt-v2v -v -x [...]

then
# guestfish -i /var/lib/libvirt/images/win7.qcow2 
guestfish: no operating system was found on this disk

If using guestfish '-i' option, remove this option and instead
use the commands 'run' followed by 'list-filesystems'.
You can then mount filesystems you want by hand using the
'mount' or 'mount-ro' command.

If using guestmount '-i', remove this option and choose the
filesystem(s) you want to see by manually adding '-m' option(s).
Use 'virt-filesystems' to see what filesystems are available.

If using other virt tools, this disk image won't work
with these tools.  Use the guestfish equivalent commands
(see the virt tool manual page).

RHEL notice
-------------
libguestfs will return this error for Microsoft Windows guests if the
separate 'libguestfs-winsupport' package is not installed. If the
guest is running Microsoft Windows, please try again after installing
'libguestfs-winsupport'.


Then use yum update libguestfs package to libguestfs-1.28.1-1.46.el7.x86_64:

Steps:

1. Prepare a directory and downloading all libguestfs RPMs:

# yum update *
...
--> Finished Dependency Resolution
Error: Package: 1:virt-v2v-1.28.1-1.46.el7.x86_64 (/virt-v2v-1.28.1-1.46.el7.x86_64)
           Requires: libguestfs-winsupport >= 7.2
Error: Package: 1:libguestfs-xfs-1.28.1-1.18.el7.x86_64 (RHEL-Server)
           Requires: libguestfs = 1:1.28.1-1.18.el7
           Removing: 1:libguestfs-1.28.1-1.44.el7.x86_64 (@/libguestfs-1.28.1-1.44.el7.x86_64)
               libguestfs = 1:1.28.1-1.44.el7
           Updated By: 1:libguestfs-1.28.1-1.46.el7.x86_64 (/libguestfs-1.28.1-1.46.el7.x86_64)
               libguestfs = 1:1.28.1-1.46.el7
           Available: 1:libguestfs-1.22.6-22.el7.x86_64 (Brew2)
               libguestfs = 1:1.22.6-22.el7
           Available: 1:libguestfs-1.28.1-1.18.el7.x86_64 (RHEL-Server)
               libguestfs = 1:1.28.1-1.18.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Result: Package libguestfs-winsupport and libguestfs-xfs are needed by new version virt-v2v.

2. Then resolve package dependence and install needed package:
Use yum install old libguestfs-xfs-1.28.1-1.44.el7.x86_64 and 
libguestfs-winsupport-7.2-1.el7.x86_64, then update package to new build.

libguestfs-1.28.1-1.46.el7.x86_64
virt-v2v-1.28.1-1.46.el7.x86_64
libguestfs-xfs-1.28.1-1.46.el7.x86_64
libguestfs-winsupport-7.2-1.el7.x86_64

3. Do a virt-v2v conversion of a Windows guest.
# guestfish -i /var/lib/libvirt/images/win7.qcow2 
guestfish: no operating system was found on this disk

If using guestfish '-i' option, remove this option and instead
use the commands 'run' followed by 'list-filesystems'.
You can then mount filesystems you want by hand using the
'mount' or 'mount-ro' command.

If using guestmount '-i', remove this option and choose the
filesystem(s) you want to see by manually adding '-m' option(s).
Use 'virt-filesystems' to see what filesystems are available.

If using other virt tools, this disk image won't work
with these tools.  Use the guestfish equivalent commands
(see the virt tool manual page).

# virt-v2v -i disk /var/lib/libvirt/images/win7.qcow2 -o local  -os /var/tmp/
[   0.0] Opening the source -i disk /var/lib/libvirt/images/win7.qcow2
[   1.0] Creating an overlay to protect the source from being modified
[   1.0] Opening the overlay
[   3.0] Initializing the target -o local -os /var/tmp/
[   3.0] Inspecting the overlay
[   4.0] Checking for sufficient free disk space in the guest
[   4.0] Estimating space required on target for each disk
[   4.0] Converting Windows 7 Ultimate to run on KVM
virt-v2v: This guest has virtio drivers installed.
[   6.0] Mapping filesystem data to avoid copying unused and blank areas
[   7.0] Closing the overlay
[   7.0] Checking if the guest needs BIOS or UEFI to boot
[   7.0] Copying disk 1/1 to /var/tmp/win7-sda (qcow2)
    (100.00/100%)
[ 261.0] Creating output metadata
[ 261.0] Finishing off

Result: Conversion finished with no error and guest can boot up.

Move this bug from ON_QA to VERIFIED.

Comment 5 errata-xmlrpc 2015-11-19 07:02:21 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://rhn.redhat.com/errata/RHBA-2015-2183.html