Ubuntu 中 VirtualBox 更新后的操作清单
一 主机端更新后的必要动作
- 同步更新内核与头文件,重建内核模块,确保 vboxdrv 正常加载:
- 更新系统并安装当前内核头文件与构建工具:
- sudo apt update && sudo apt full-upgrade
- sudo apt install --reinstall linux-headers-$(uname -r) build-essential dkms
- 重建 VirtualBox 内核模块(两条任选其一):
- sudo /sbin/vboxconfig
- sudo /etc/init.d/vboxdrv setup
- 加载模块并验证:
- sudo modprobe vboxdrv
- lsmod | grep vbox
- 若仍报错(如 rc=-1908 或提示驱动未安装),优先检查是否安装了与当前内核匹配的 linux-headers 与 virtualbox-dkms;必要时彻底重装 DKMS 包后再重建。若系统启用 Secure Boot,未签名的内核模块会被拒绝加载,需在 BIOS/UEFI 中暂时关闭 Secure Boot,或使用 MOK 注册已签名的模块后再试。
二 客机 Ubuntu 更新后的增强功能与共享文件夹
- 重新安装或升级 Guest Additions(增强功能),以获得更好的分辨率自适应、剪贴板/拖放与共享文件夹支持:
- 在虚拟机菜单:设备 → 安装增强功能(挂载 ISO),然后在客机中执行:
- sudo mount /dev/cdrom /mnt
- cd /mnt
- sudo ./VBoxLinuxAdditions.run
- 如提示缺少编译依赖,先安装:
- sudo apt install build-essential gcc make perl dkms linux-headers-$(uname -r)
- 共享文件夹修复(升级后常见“No such device”):
- 卸载旧版增强工具并临时注释 /etc/fstab 中的共享挂载项:
- sudo ./VBoxLinuxAdditions.run uninstall
- 编辑 /etc/fstab,注释含有 vboxsf 的行
- 升级系统与增强功能后重启,再手动挂载验证:
- sudo mount -t vboxsf 共享名 /mnt/share
- 若仍失败,检查模块:lsmod | grep vboxsf;必要时执行:
- cd /opt/VBoxGuestAdditions-*/init
- sudo ./vboxadd setup
- 若提示 “Running kernel modules will not be replaced until the system is restarted”,重启后再挂载。
三 客机 Ubuntu 系统升级后的兼容性处理
- 若客机升级到新内核后 VirtualBox 启动失败,回到“主机端”按第一部分重建 vboxdrv 与 virtualbox-dkms,确保与客机新内核头文件匹配,再重启主机与客机。
- 若你是在客机里“升级 VirtualBox 软件包”(例如通过 apt 安装新版本),同样建议在客机内执行一次增强功能重装,以刷新客机内核模块与驱动。
四 常见报错速查表
| 症状 |
快速命令 |
关键点 |
| 启动报 Kernel driver not installed (rc=-1908) |
sudo /sbin/vboxconfig;sudo modprobe vboxdrv |
安装匹配当前内核的 linux-headers-$(uname -r) 与 virtualbox-dkms,再重建模块 |
| 提示需设置 up kernel module |
sudo /etc/init.d/vboxdrv setup |
查看 /var/log/vbox-install.log 定位缺失头文件或编译失败 |
| 共享文件夹挂载失败 “No such device” |
lsmod |
grep vboxsf;sudo mount -t vboxsf 共享名 /mnt/share |
| 升级后虚拟机无法启动 |
重新安装 VirtualBox 或适配新内核 |
确保主机端 VirtualBox 与新内核、头文件、DKMS 一致 |