最近、virt-managerを介して複数の仮想マシンを作成しましたが、すべて問題なく実行されます。次の週に仮想マシンを起動しようとするたびに、次のメッセージが表示されます。
Error starting domain: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1279, in startup
self._backend.create()
File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1234, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirt.libvirtError: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.
リモートログインでシステムを使用したときに追い出されたことを確認したので、週末にシステムを再起動したとします。
また、コマンドを実行してkvmモジュールをロードする必要があることを覚えています。だから最初の推測はロードされていないということなので、以下を実行しました。
$modprobe kvm
しかし、まだ同じメッセージが表示されます。私も逃げた
$lsmod | grep kvm
そして得る
kvm 507904 0
だからロードされました。
BIOSを確認した結果、実際に有効になっていることを確認できます。この問題を解決する方法を見つけようとしている間に何をしたのかわかりませんが、仮想マシンを再実行することもできました。その後、システムを再起動して実際に修正されたことを確認しましたが、メッセージは引き続き表示されます。誰でもこの問題を解決するのに役立ちますか?
答え1
KVMがロードされましたが、kvm_intel
モジュールkvm_amd
もロードする必要があります。たとえば、私のコンピュータでは次のようになります。
[Alex@NormandySR2 nested_virt_kvm]$ lsmod | grep kvm
kvm_intel 327680 7
kvm 909312 1 kvm_intel
すでに知っているように、この方法が機能しないには少なくとも2つの理由があります。
- UEFI(BIOSとも呼ばれる)で仮想化を無効にする
- CPUが仮想化をサポートしていません
以下を使用して、CPU が仮想化をサポートしているかどうかを確認できます。
lscpu | grep vmx # intel
lscpu | grep svm # amd
そうでない場合は、CPUモデルが仮想化をサポートしていることを確認してください(この情報はベンダーのWebサイトで入手できます)。 CPUモデルを取得するには。
lscpu | grep 'Model'
Model: 60
Model name: Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz
編集する
自動的に有効にするには?ディストリビューションによっては、起動後にロードする必要があります。ただし、何らかの理由でそうでない場合は、次のものを使用できます。
echo -e 'kvm\nkvm_amd' | sudo tee -a /etc/modules-load.d/kvm.conf
これにより、2行がに保存されます/etc/module-load.d
。 module-load.dの詳細については、man 5 modules-load.d
マニュアルをホストしているWebサイトのいずれかを参照してください。例:
https://www.systutorials.com/docs/linux/man/5-modules-load.d/
答え2
これは書式設定のためにここに投稿されたコメントです。
これは完全な出力ですかlsmod | grep kvm
?この場合、問題があるようです。私の結果は次のとおりです。
kvm_intel 233472 0
kvm 757760 1 kvm_intel
irqbypass 16384 1 kvm
リコールがうまくいけばAMD CPUも同様になり、kvm_amd
kvm
シェルから簡単なコマンドを試すこともできます。空のVMを起動してBIOSを起動しようとする必要があります。この場合、qemu-kvmには問題はありませんが、libvirt
Virt-Managerには問題がある可能性があります。