Red Hat Bugzilla – Bug 672825
libguestfs is not aware of the Windows Recovery Console extra partition
Last modified: 2011-03-24 07:51:22 EDT
libguestfs core inspection code should be aware of the
Windows Recovery Console and mark it specially. This
would allow tools like virt-v2v to make allowances for this.
+++ This bug was initially created as a clone of Bug #672824 +++
Description of problem:
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
virt-v2v: multiboot operating systems are not supported by virt-v2v
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install Windows Recovery Console to the guest hard disk.
2. Try virt-v2v conversion.
virt-v2v/libguestfs thinks the guest is multiboot and fails.
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
I couldn't reproduce this with Windows XP.
Except when the install CD (ie. ISO) was attached to
the virtual machine, in which case it sees the install
CD as a separate Windows installation. We should
probably have it just ignore CD devices / ISOs.
When I removed the CD using virsh edit, only a single
operating system was observed by [new] virt-inspector.
Some background information:
In Windows XP the Recovery Console can be installed off
the CD (see http://support.microsoft.com/kb/216417). Doing
this does not require a separate partition. It creates
a C:\CMDCONS directory containing a load of *.SYS and *.DLL
files, and it updates BOOT.INI with an extra entry, see
the final line here:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons
Even the old Perl code which tried to parse boot.ini
ought to parse this correctly. It should only look
at the default=... line. The new C inspection code
doesn't look inside boot.ini at all.