[libvirt] hvm/x86_64 combination not allowed

Matthias Bolte matthias.bolte at googlemail.com
Mon Jan 18 21:59:23 UTC 2010


2010/1/18 Steve Brown <sbrown25 at gmail.com>:
>>> $ sudo virsh capabilities
>>> <capabilities>
>>>   <host>
>>>     <cpu>
>>>       <arch>x86_64</arch>
>>>     </cpu>
>>>     <migration_features>
>>>       <live/>
>>>       <uri_transports>
>>>         <uri_transport>tcp</uri_transport>
>>>       </uri_transports>
>>>     </migration_features>
>>>   </host>
>>>   <guest>
>>>     <os_type>hvm</os_type>
>>>     <arch name='i686'>
>>>       <wordsize>32</wordsize>
>>>       <emulator>/usr/bin/qemu</emulator>
>>>       <machine>pc-0.11</machine>
>>>       <machine canonical='pc-0.11'>pc</machine>
>>>       <machine>pc-0.10</machine>
>>>       <machine>isapc</machine>
>>>       <domain type='qemu'>
>>>       </domain>
>>>     </arch>
>>>     <features>
>>>       <pae/>
>>>       <nonpae/>
>>>       <acpi default='on' toggle='yes'/>
>>>       <apic default='on' toggle='no'/>
>>>     </features>
>>>   </guest>
>>> </capabilities>
>>
>> Ok, this confirms your host OS is x86_64, but it only shows a single
>> guest entry for i386. This is because the 'qemu' binar is the 32-bit
>> emulator. To make x86_64 guests work, you need to install the
>> qemu-system-x86_64 binary, or a KVM binary called 'kvm' or 'qemu-kvm'.
>>
>> Once those are installed, you should see another <guest> appear in
>> that capabilities XML
>
> Unfortunately, I already have the 64bit emulator installed:
>
> $ which qemu-system-x86_64
> /usr/local/bin/qemu-system-x86_64
> $ ls -l /usr/local/bin/qemu-*
> -rwxr-xr-x 1 root root  217184 Jan 14 14:00 /usr/local/bin/qemu-img
> -rwxr-xr-x 1 root root  229120 Jan 14 14:00 /usr/local/bin/qemu-io
> -rwxr-xr-x 1 root root  210968 Jan 14 14:00 /usr/local/bin/qemu-nbd
> -rwxr-xr-x 1 root root 2323328 Jan 14 14:01 /usr/local/bin/qemu-system-x86_64
>
> This was done by building the qemu-kvm-0.12.1.1 package from source.
> I am able to run this vm just fine using the qemu-system-x86_64
> binary.  I've tried rebuilding libvirt several times to make it aware
> that the proper binaries are installed, but it can't seem to find them
> for some reason.
>

libvirt expects the QEMU binaries in /usr/bin. e.g. it explicitly
checks for /usr/bin/qemu-system-x86_64. Try symlinking
/usr/local/bin/qemu-system-x86_64 to /usr/bin/qemu-system-x86_64.

I'm not sure why the paths are hardcoded instead of using the PATH to
find the QEMU binaries, like the storage driver does it already:

  virFindFileInPath("qemu-img")

Maybe Daniel can explain.

Matthias




More information about the libvir-list mailing list