kvm-ok检测正常但/dev/kvm不存在,运行budtmo安卓容器报错
问题描述
BIOS已开启虚拟化,kvm-ok检测显示KVM可用,但执行以下Docker命令时:
docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Samsung Galaxy S10" -e WEB_VNC=true --device /dev/kvm --name android-container budtmo/docker-android:emulator_14.0
出现错误:
docker: Error response from daemon: error gathering device information while adding custom device "/dev/kvm": no such file or directory.
环境为双系统Ubuntu 22.04.04,已尝试更换仓库不同模拟器、重装Docker,问题仍存在。
解决步骤
先确认
/dev/kvm设备文件是否存在:
执行命令:ls -l /dev/kvm若输出为空,说明设备文件未生成,继续后续步骤。
检查并加载KVM内核模块:
执行命令查看模块状态:lsmod | grep kvm若无输出,手动加载对应模块(Intel CPU用
kvm_intel,AMD CPU用kvm_amd):sudo modprobe kvm sudo modprobe kvm_intel # AMD用户替换为 sudo modprobe kvm_amd加载完成后再次检查
/dev/kvm是否出现。修复设备文件权限与用户组:
若/dev/kvm存在但Docker无法访问,先查看权限:ls -l /dev/kvm正常权限应为
crw-rw-rw-,归属root:kvm。若不符合,执行:sudo chown root:kvm /dev/kvm sudo chmod 666 /dev/kvm同时确保当前用户加入
kvm组:sudo usermod -aG kvm $USER执行后注销并重新登录使设置生效。
双系统特殊问题处理:
双系统环境下,Windows的Hyper-V或快速启动可能干扰KVM设备生成:- 进入Windows系统,关闭Hyper-V(控制面板→程序→启用或关闭Windows功能,取消勾选Hyper-V)
- 关闭Windows快速启动(控制面板→电源选项→选择电源按钮的功能→更改当前不可用的设置,取消勾选“启用快速启动”)
- 完全关机后再启动进入Ubuntu,避免用重启切换系统。
验证Docker访问权限:
执行以下命令测试Docker能否正常访问KVM:docker run --rm --device /dev/kvm busybox ls -l /dev/kvm若能正常输出设备信息,说明问题已解决。
内容的提问来源于stack exchange,提问作者milosz_amg
相关产品推荐
相关产品推荐

