B.3. The guest virtual machine cannot be started: internal error guest CPU is not compatible with host CPU
- Symptom
- Running on an Intel Core i7 processor (which virt-manager refers to as
Nehalem
, or the older Core 2 Duo, referred to asPenryn
), a KVM guest (or domain) is created using virt-manager. After installation, the guest's processor is changed to match the host's CPU. The guest is then unable to start and reports this error:2012-02-06 17:49:15.985+0000: 20757: error : qemuBuildCpuArgStr:3565 : internal error guest CPU is not compatible with host CPU
Additionally, clickingCopy host CPU configuration
in virt-manager shows Pentium III instead ofNehalem
orPenryn
. - Investigation
- The
/usr/share/libvirt/cpu_map.xml
file lists the flags that define each CPU model. TheNehalem
andPenryn
definitions contain this:<feature name='nx'/>
As a result, theNX
(orNo eXecute
) flag needs to be presented to identify the CPU asNehalem
orPenryn
. However, in/proc/cpuinfo
, this flag is missing. - Solution
- Nearly all new BIOSes allow enabling or disabling of the
No eXecute
bit. However, if disabled, some CPUs do not report this flag and thus libvirt detects a different CPU. Enabling this functionality instructs libvirt to report the correct CPU. Refer to your hardware documentation for further instructions on this subject.