Hello,
I tried to install "Microsoft Windows 2008 Server R2" on an Amd64 host using
Xen-3.4.3. The installation aborted with the following error message:
Windows Boot Mager
...
File: \windows\system32\boot\winload.exe
Status: 0xc000035a
Info: Attempting to load a 64-bit application, however this CPU is not
compatible
with 64-bit mode.
For testing I converted the libvirt-XML file to an Xen-Xm file using "virsh
domxml-to-native" and started that file with "xm create", which worked.
Comparing the output of "xm list -a" of the broken libvirt- and the working
xm-configuration I found several differences, especially with "pae":
Using "xm create" pae is set to 1, while with libvirt pae is set to 0. After
adding the /domain/featues/pae node to libvirts XML domain file, Windows
installed fine.
Looking at "virsh capabilities" I get the following (abbreviated) output:
<capabilities>
<guest>
<os_type>hvm</os_type>
<arch name='i686'>
<wordsize>32</wordsize>
...
</arch>
<features>
<pae/>
<nonpae/>
<acpi default='on' toggle='yes'/>
<apic default='on' toggle='yes'/>
</features>
</guest>
<guest>
<os_type>hvm</os_type>
<arch name='x86_64'>
<wordsize>64</wordsize>
...
</arch>
<features>
<acpi default='on' toggle='yes'/>
<apic default='on' toggle='yes'/>
</features>
</guest>
</capabilities>
As you can see, neither "<pae/>" nor "<nopae/>" is listed
for for the 64 bit
Xen-Fv domain type, which makes it hard to automatically create a correct
_and_ _working_ XML file for Xen-Fv-64 bit domains
Looking at "/sys/hypervisor/properties/capabilities" I find the following
capabilities reported by Xen
xen-3.0-x86_64
xen-3.0-x86_32p
hvm-3.0-x86_32
hvm-3.0-x86_32p
hvm-3.0-x86_64
There's also no "hvm-3.0-x86_64p" which makes me wonder, if
"<pae/>" is the
default for Xen-64 bit domains.
If that is true, should libvirt add "<pae/"> by default to the
capabilities
report, or should libvirt silently pass "(pae 1)" when pushing the XML domain
description to Xend? Lookign at
<file:xen-3.4.3/tools/python/xen/xm/create.py>:210 I see that "pae" is
enabled by default there, and thus gets enabled for each domain using "xm
create":
gopts.var('pae', val='PAE',
fn=set_int, default=1,
use="Disable or enable PAE of HVM domain.")
Any feedback is appreciated.
BYtE
Philipp
--
Philipp Hahn Open Source Software Engineer hahn(a)univention.de
Univention GmbH Linux for Your Business fon: +49 421 22 232- 0
Mary-Somerville-Str.1 28359 Bremen fax: +49 421 22 232-99
http://www.univention.de