VirtualBox 官方源安装更可靠,因系统自带版本老旧易报 VERR_VM_DRIVER_NOT_INSTALLED 错误且不支持 USB 3.0;需卸载旧版、添加 Oracle 源、安装 virtualbox-7.0、运行 vboxconfig 编译内核模块、处理 Secure Boot 签名、将用户加入 vboxusers 组并重启,USB 设备才可识别;桥接模式需选对物理网卡并注意防火墙拦截。

VirtualBox 官方源安装比 snap 更可靠
Ubuntu/Debian 系统直接 apt install virtualbox 装的是旧版(比如 6.1),常报 VERR_VM_DRIVER_NOT_INSTALLED 错误,且不支持 USB 3.0 设备直通。用官方 APT 源才能拿到最新稳定版(7.x)和配套内核模块。
- 先卸载系统自带版本:
sudo apt remove virtualbox virtualbox-dkms - 导入 Oracle 公钥:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -(注意:Ubuntu 22.04+ 已弃用apt-key,改用gpg --dearmor方式,但该命令仍可临时生效) - 添加源:
echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list - 更新并安装:
sudo apt update && sudo apt install virtualbox-7.0
必须手动编译 vboxdrv 内核模块
装完启动 VirtualBox 时弹窗提示“Kernel driver not installed”,或终端报错 Failed to open a session for the virtual machine: ... VERR_VM_DRIVER_NOT_INSTALLED,本质是 vboxdrv 模块没加载——不是没装,是没编译进当前内核。
- 运行
sudo /sbin/vboxconfig触发模块编译(它会调用dkms) - 若报
Building the main VirtualBox module failed,大概率缺头文件:sudo apt install linux-headers-$(uname -r) - 成功后检查:
lsmod | grep vbox应看到vboxdrv、vboxnetadp等模块已加载 - 如果用 Secure Boot,需手动签名模块,否则每次重启后失效(这是最容易被跳过的一步)
USB 设备无法识别?用户必须加入 vboxusers 组
虚拟机里插 U 盘、安卓手机,设备列表为空,或提示“unable to enumerate USB devices”,不是 USB 控制器设置问题,而是权限未授予。
- 执行:
sudo usermod -aG vboxusers $USER - 必须完全退出当前图形会话(注销再登录,或重启),组权限才生效
- 在虚拟机设置 → USB → 启用 USB 控制器,并勾选 USB 3.0(对应
EHCI或xHCI) - 主机 USB 设备需在虚拟机运行中点击右下角 USB 图标手动连接,不能靠自动捕获(尤其对 Android ADB 设备)
桥接模式无法上网?别用 “Bridged Adapter” 默认选项
选择桥接后虚拟机获取到 IP,但 ping 不通外网或同网段其他机器,常见原因是 VirtualBox 默认桥接到 enp0s3 这类管理接口,而非你实际联网的物理网卡(比如 wlx00c0ca... 或 ens33)。
- 进虚拟机设置 → 网络 → 网卡 1 → 连接方式选
Bridged Adapter→ “界面名称”下拉框里选对真实网卡(可用ip link确认) - 若主机用 WiFi,部分驱动不支持桥接(尤其是 Realtek RTL8822CE),此时改用
NAT Network+ 端口转发更稳 - 桥接模式下虚拟机和主机是平级网络节点,防火墙规则(如
ufw)可能拦截入向流量,测试时可临时关掉:sudo ufw disable
Secure Boot 和内核模块签名是多数人卡住超过一小时的地方;其他步骤出错,基本都能从 vboxconfig 输出日志里定位到具体缺什么包或权限。

















