在Oracle VirtualBox运行FreeNOS时出现KVM内核模块无法访问错误
报错解决方案:VirtualBox环境运行FreeNOS提示KVM初始化失败
错误根因
你当前是在VirtualBox虚拟机内运行FreeNOS的QEMU启动脚本,脚本默认添加了-enable-kvm参数调用硬件虚拟化加速,但当前虚拟机未开启嵌套虚拟化、KVM内核模块未加载,因此触发找不到KVM模块的报错。
解决方案1:移除KVM参数使用纯软件模拟(推荐新手使用)
该方案无需修改VirtualBox全局配置,仅调整FreeNOS启动参数即可运行:
- 执行scons启动命令时直接传入禁用KVM的参数:
scons qemu ENABLE_KVM=no - 也可以手动执行去掉
-enable-kvm的QEMU启动命令:qemu-system-i386 -smp 4 -m 256 -M pc,kernel_irqchip=off -cdrom build/intel/pc/boot.iso -chardev socket,id=charmonitor,path=monitor.dev,server,nowait -monitor chardev:charmonitor -nographic
解决方案2:开启VirtualBox嵌套虚拟化使用KVM加速
如果需要更高的运行性能,可以开启VirtualBox嵌套虚拟化功能:
- 关闭当前运行的VirtualBox虚拟机,打开VirtualBox主界面,进入对应虚拟机的「设置」页面
- 切换到「系统 - 处理器」选项卡,勾选「启用PAE/NX」和「启用嵌套VT-x/AMD-V」选项,保存配置后启动虚拟机
- 虚拟机启动后执行命令检查KVM模块加载状态:
Intel CPU会输出lsmod | grep kvmkvm_intel相关条目,AMD CPU会输出kvm_amd相关条目即为加载正常 - 若模块未加载,手动执行加载命令:
Intel CPU执行:
AMD CPU执行:sudo modprobe kvm_intelsudo modprobe kvm_amd - 将当前用户加入kvm用户组,避免权限不足:
执行后注销当前用户重新登录生效,之后重新运行sudo usermod -aG kvm $USERscons qemu即可正常启动。
内容的提问来源于stack exchange,提问作者ChuyMuy
相关产品推荐
相关产品推荐

