Bug 673066

Summary: virt-v2v does not work with guests that have the Windows Recovery Console installed
Product: Red Hat Enterprise Linux 6 Reporter: Matthew Booth <mbooth>
Component: virt-v2vAssignee: Matthew Booth <mbooth>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2CC: leiwang, rjones, rwu, yupzhang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-v2v-0.8.3-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 672824 Environment:
Last Closed: 2011-12-06 15:08:03 UTC Type: ---
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: 672824, 672825, 672827, 672831, 732637    
Bug Blocks:    

Description Matthew Booth 2011-01-27 09:25:39 UTC
+++ This bug was initially created as a clone of Bug #672824 +++

Description of problem:

https://www.redhat.com/archives/virt-tools-list/2011-January/thread.html#00058

If a Windows <= 2003 guest has the Windows Recovery Console
installed, then the perl inspection code detects this as an
extra instance of Windows.  Since virt-v2v does not work with
multiboot operating systems, the conversion fails with the
error:

 virt-v2v: multiboot operating systems are not supported by virt-v2v

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

0.7.1(?)

How reproducible:

Always.

Steps to Reproduce:
1. Install Windows Recovery Console to the guest hard disk.
2. Try virt-v2v conversion.
3.
  
Actual results:

virt-v2v/libguestfs thinks the guest is multiboot and fails.

Expected results:

virt-v2v should ignore the Recovery Console partition and
convert only the main partition.  It should probably warn that
the Recovery Console has not been converted and must be
reinstalled.

Additional info:

Comment 1 Rita Wu 2011-03-28 09:11:28 UTC
What is the exact steps to reproduce this issue?
I cannot reproduce it with the following steps:
1. Install Windows Recovery Console in 2k3-32b guest via:
  # With Windows running, insert the Windows CD into your CD drive.
  # Click Start and clickRun.
  # Type the following commands (where X: is the CD Drive letter), and then press ENTER on your keyboard. X:\i386\winnt32.exe /cmdcons


But v2v and virt-inspector doesnt' consider Recovery Console as a partition:
# virt-list-partitions win2003-x86-xen-recovery-console.img --long
/dev/sda1 ntfs 6275856384
[root@dhcp-66-92-183 mnt2]# virt-filesystems -a win2003-x86-xen-recovery-console.img --long --uuid
Name       Type        VFS   Label  Size        UUID
/dev/sda1  filesystem  ntfs  -      6275856384  1874360D7435EDDE

Comment 2 Richard W.M. Jones 2011-03-28 09:40:24 UTC
(In reply to comment #1)
> What is the exact steps to reproduce this issue?
> I cannot reproduce it with the following steps:
> 1. Install Windows Recovery Console in 2k3-32b guest via:
>   # With Windows running, insert the Windows CD into your CD drive.
>   # Click Start and clickRun.
>   # Type the following commands (where X: is the CD Drive letter), and then
> press ENTER on your keyboard. X:\i386\winnt32.exe /cmdcons
> 
> 
> But v2v and virt-inspector doesnt' consider Recovery Console as a partition:
> # virt-list-partitions win2003-x86-xen-recovery-console.img --long
> /dev/sda1 ntfs 6275856384
> [root@dhcp-66-92-183 mnt2]# virt-filesystems -a
> win2003-x86-xen-recovery-console.img --long --uuid
> Name       Type        VFS   Label  Size        UUID
> /dev/sda1  filesystem  ntfs  -      6275856384  1874360D7435EDDE

I also could not reproduce this bug with the Windows
Recovery Console.

However I could easily reproduce a bug [probably not the
same bug] by creating a Windows guest that had two disks.

See: https://bugzilla.redhat.com/show_bug.cgi?id=674130#c1
for details.

This [different] bug has been fixed upstream in libguestfs.

Comment 3 Rita Wu 2011-03-28 10:02:43 UTC
(In reply to comment #2)

> I also could not reproduce this bug with the Windows
> Recovery Console.
> 
> However I could easily reproduce a bug [probably not the
> same bug] by creating a Windows guest that had two disks.
> 
> See: https://bugzilla.redhat.com/show_bug.cgi?id=674130#c1
> for details.
> 
> This [different] bug has been fixed upstream in libguestfs.

Hi Rich,

Thanks for your info. 

I guess the above bug is similar with Bug 679354 - Error converting Windows guest with 2 'Program Files' folders, which I can also simply reproduce.

Is it possible that the multiboot error is caused by both partitions have Program Files, but not Windows Recovery Console? Since the original reporter has the compounded env in the guest, and I noticed his saying:

'Ok, I had the same problem with a completely separate VM.  This one
was originally built on the ESX host, and the Recovery Console was
never installed on it.  There are two separate vmdk files representing
two separate hard disks.  I get the same problem with virt-v2v
thinking this is a multi-OS vm' from https://www.redhat.com/archives/virt-tools-list/2011-January/msg00118.html

Linglu

Comment 4 Richard W.M. Jones 2011-03-28 11:20:05 UTC
(In reply to comment #3)
> (In reply to comment #2)
> 
> > I also could not reproduce this bug with the Windows
> > Recovery Console.
> > 
> > However I could easily reproduce a bug [probably not the
> > same bug] by creating a Windows guest that had two disks.
> > 
> > See: https://bugzilla.redhat.com/show_bug.cgi?id=674130#c1
> > for details.
> > 
> > This [different] bug has been fixed upstream in libguestfs.
> 
> Hi Rich,
> 
> Thanks for your info. 
> 
> I guess the above bug is similar with Bug 679354 - Error converting Windows
> guest with 2 'Program Files' folders, which I can also simply reproduce.

Yes, that's exactly the bug I was searching for :-)

The bug dependencies here are really messed up ...

> Is it possible that the multiboot error is caused by both partitions have
> Program Files, but not Windows Recovery Console? Since the original reporter
> has the compounded env in the guest, and I noticed his saying:

I don't think the original reporter managed to reproduce
the bug with the Windows Recovery Console, and I could not
reproduce it either.

However the "2 x Program Files" bug is definitely there,
reproducible, and fixed.

> 'Ok, I had the same problem with a completely separate VM.  This one
> was originally built on the ESX host, and the Recovery Console was
> never installed on it.  There are two separate vmdk files representing
> two separate hard disks.  I get the same problem with virt-v2v
> thinking this is a multi-OS vm' from
> https://www.redhat.com/archives/virt-tools-list/2011-January/msg00118.html

Yes, this was the original bug report.

If you look at Kenny's later reply:
https://www.redhat.com/archives/virt-tools-list/2011-January/msg00120.html
it may be that he had a guest which had the Windows Recovery
Console installed AND had two disks, in which case it wouldn't
be the WRC which was the problem.  I haven't heard back if this
is the case or not.

Comment 8 yuping zhang 2011-08-26 07:20:07 UTC
Verify this issue with :
virt-v2v-0.8.3-3.el6.x86_64
libvirt-0.9.4-5.el6.x86_64
libguestfs-1.7.17-26.el6.x86_64

I cannot reproduce this issue with Windows Recovery Console installed on guest.
Per all comments,I have tested two scenarios:
1.The guest has two windows partitions,and then convert it. 
# virt-v2v -ic qemu+ssh://10.66.72.122/system -os default -b rhevm winxp-win2k3
winxp-win2k3.img: 100% [===============================================================================================]D 0h05m37s

***
Dual- or multi-boot operating system detected. Choose the root filesystem
that contains the main operating system from the list below:

 [1] /dev/sda1 (Microsoft Windows XP)
 [2] /dev/sda5 (Microsoft Windows Server 2003 R2)

Enter number between 1 and 2: 1
virt-v2v: WARNING: There is no virtio net driver available in the directory specified for this version of Windows. The guest will be configured with a rtl8139 network adapter, but no driver will be installed for it. If the rtl8139 driver is not already installed in the guest, you must install it manually after conversion.
virt-v2v: winxp-win2k3 configured with virtio storage only.

Boot it from Windows XP successfully.
I also tested convert windows 2k3 R2,it also works well. 

2.The guest had a second drive with "Program files" directory on it.
## virt-v2v -ic qemu+ssh://10.66.72.122/system -os default -b rhevm winxp-64-withtwo-PF
WinXP-64bit.img: 100% [================================================================================================]D 0h02m36s
two-program-files: 100% [==============================================================================================]D 0h00m30s
virt-v2v: WARNING: The connected hypervisor does not support feature pae.
virt-v2v: winxp-64-withtwo-PF configured with virtio drivers.

Boot it successfully.

So change the bug status to VERIFIED.

Comment 9 errata-xmlrpc 2011-12-06 15:08:03 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.

http://rhn.redhat.com/errata/RHSA-2011-1615.html