在 KVM 内核模块仍在使用时禁用它

msr*_*rd0 8 kvm debian kernel-modules modprobe

为了运行虚拟机,VirtualBox 告诉我禁用 KVM 内核模块。我搜索了一下,发现 KVM 包含在qemu-*-packages 中,但是我的系统(Debian Wheezy)上没有安装/安装它们。

之后我只是尝试卸载模块,但这不想工作,因为它正在使用中:

# modprobe -r kvm_intel
FATAL: Module kvm_intel is in use.
# modprobe -r kvm
FATAL: Module kvm is in use.
Run Code Online (Sandbox Code Playgroud)

我不知道什么程序正在使用它,我真的不知道那可能是什么。我也尝试过使用该-f选项,但得到了相同的结果。

我的问题是:如何删除或禁用 KVM 内核模块?

更新:

这是lsmod命令的输出:

# lsmod | grep kvm
kvm_intel             138825  3 
kvm                   404853  1 kvm_intel
Run Code Online (Sandbox Code Playgroud)

pet*_*rph 6

正如您所注意到的,有一个应用程序在使用该模块。KVM 模块实际上是通过/dev/kvm设备文件呈现(部分)其功能的。因此,找出正在使用它的应用程序 - 例如

$ lsof | grep /dev/kvm
Run Code Online (Sandbox Code Playgroud)


mch*_*hid 3

有时您可以lsmod尝试回溯正在使用该模块的内容。

这是一个例子:

kvm_intel             143597  0 
kvm                   459817  1 kvm_intel
Run Code Online (Sandbox Code Playgroud)

在我的机器上,它说 kvm 由 kvm_intel 使用。另外,kvm 没有被使用。如果是这种情况,您应该能够运行:

sudo modprobe -r kvm_intel 
Run Code Online (Sandbox Code Playgroud)

进而,

sudo modprobe -r kvm
Run Code Online (Sandbox Code Playgroud)