最近、VirtualBoxの代わりにKVM/Qemuを検討し始めましたが、チェックしたほぼすべてのLinuxシステムにこれらの3つのモジュールが自動的にロードされているように見えることにショックを受けました。
[pgoetz@frog etc]$ lsmod | grep kvm
kvm_intel 311296 0
kvm 778240 1 kvm_intel
irqbypass 16384 1 kvm
これが衝撃的だった理由は、これらのシステムのいずれもkvm/Qemu仮想化を使用していなかったためです(ただし、いくつかはVirtualBox用にセットアップされていました)。私がチェックしたシステムは、Arch Linux、Ubuntu 18.04、Ubuntu 19.10、およびCentOS7.4を実行していました。 Ubuntu 19.10は、ソフトウェアが追加されていない新しいデスクトップインストールでした。 KVMモジュールがロードされていないことがわかった唯一のシステムは、Ubuntu 18.04.2(代替)サーバーのインストールでした。
多くのグーグルは、これらのモジュールがロードされる理由を明らかにしていません。実験として、Ubuntu19.10マシンのBIOSでIntelVTを無効にしてみましたが、それでもkvmモジュールがロードされました(kvm_intelはロードされませんでした)。
このモジュールをロードしても問題はないかもしれませんが、メカニズムについて興味があります。ブート時にどのように/なぜロードされるのですか?
モジュールが自動的に読み込まれる理由を判断するには、モジュールのエイリアスを確認することをお勧めします。
$ Sudo modinfo kvm-intel|grep alias:
alias: cpu:type:x86,ven*fam*mod*:feature:*0085*
$ Sudo modinfo kvm-AMD|grep alias:
alias: cpu:type:x86,ven*fam*mod*:feature:*00C2*
この意味は kvm-intel
は、機能85hをサポートするCPUを備えたシステムにロードされます( X86_FEATURE_VMX
)、およびkvm-AMD
CPUサポート機能C2hを備えたシステム( X86_FEATURE_SVM
)。