为了让 virtualbox 在 Linux 中工作,我必须以 root 身份运行以下命令:
modprobe -r kvm_intel
modprobe -r kvm
否则会出现错误。效果很好。
唯一的问题是每次机器重启时我都必须重新运行这两个命令。
有没有办法永久禁用这两个内核模块?
答案1
如果您根本不打算使用 kvm,为什么不直接删除qemu-system-[ARCH]
提供它的 rpm。此外,fedora 包含一个文件/etc/sysconfig/modules/kvm.modules
,该文件告诉系统在处理器中检测到虚拟化扩展时加载 kvm 模块。修改/etc/sysconfig/modules/kvm.modules
或完全删除它也应该可以解决问题,但删除该软件包似乎是最好的解决方案。
答案2
更新:对于 Fedora,将blacklist
下面选项 1 中的行保存到 /etc/modprobe.d/ 下的文件中,例如/etc/modprobe.d/blacklist
。文件的名称并不重要;目录中的所有文件都会在启动期间进行处理。
如果您确定永远不需要动态加载这些模块,则选项 3 可能更为可取。
选项 1:黑名单
许多发行版使用模块黑名单来禁止模块加载。通常可以通过将这些行添加到您的发行版或类似发行版中来实现modules.conf
。您可以尝试阅读man modules.conf
或谷歌搜索特定发行版的说明。
blacklist kvm_intel
blacklist kvm
选项 2:卸载
另一种方法是将以下几行添加到您的rc.local
脚本中(或其他系统启动时脚本,最好不是与包相关的脚本):
modprobe -r kvm_intel
modprobe -r kvm
选项 3:禁用(新)
以上两种方法都会阻止模块在启动时加载,但不会阻止它们稍后加载到内核中。完全禁用模块,使用这些行 - 再次,它们可以进入modules.conf
文件,或/etc/modprobe.d/disabled
类似文件:
install kvm_intel /bin/true
install kvm /bin/true
这样做的目的是告诉系统/bin/true
在请求这些模块时运行。程序除了返回 true 之外不执行任何操作,因此任何加载都“成功”,但模块实际上从未加载过。要重新启用使用此技术禁用的驱动程序,请注释掉这些行并重新启动。