B.3. ゲスト仮想マシンを起動できません。 internal error guest CPU is not compatible with host CPU
- 現象
- Intel Core i7 プロセッサーで実行する( virt-manager は
Nehalem
、またはPenryn
と呼ばれる古い Core 2 Duo)は、virt-manager を使用して KVM ゲスト(またはドメイン)を作成します。インストール後に、ゲストのプロセッサーがホストの CPU に一致するように変更されます。その後、ゲストは起動できず、以下のエラーを報告します。2012-02-06 17:49:15.985+0000: 20757: error : qemuBuildCpuArgStr:3565 : internal error guest CPU is not compatible with host CPU
さらに、virt-manager でCopy host CPU 設定
をクリックすると、Nehalem
またはPenryn
ではなく Pentium が表示されます。 - 調査
/usr/share/libvirt/cpu_map.xml
ファイルには、各 CPU モデルを定義するフラグが一覧表示されます。Nehalem
およびPenryn
定義には、以下が含まれます。<feature name='nx'/>
その結果、NX
(またはNo eXecute
)フラグを指定して、CPU をNehalem
またはPenryn
として識別する必要があります。ただし、/proc/cpuinfo
にはこのフラグがありません。- 解決方法
- 新しい BIOS のほとんどは、
No eXecute
ビットを有効または無効にできます。ただし、無効にすると、一部の CPU はこのフラグを報告しないため、libvirt は別の CPU を検出します。この機能を有効にすると、libvirt に正しい CPU を報告するように指示します。この件に関する詳細は、ハードウェアのドキュメントを参照してください。