Ubuntu下VirtualBox虚拟机无法启动的排查与修复

一、先快速定位问题

查看具体报错:在终端执行

VBoxManagestartvm"<虚拟机名>"--typeheadless
,或在图形界面点“显示日志”查看VBox.log/VBoxHardening.log,从最后几行定位关键词(如vboxdrv、KVM、CPUID、桥接网卡等)。

检查虚拟化是否可用:执行

egrep-c'(vmx|svm)'/proc/cpuinfo
,返回0表示宿主机未开启虚拟化或未在BIOS启用。

确认内核模块与加速:执行

lsmod|grepvboxdrv
检查驱动是否加载;在虚拟机设置→系统→加速,确认已勾选VT-x/AMD-V与嵌套分页。

若提示内核模块问题,优先修复驱动(见下一节)。

二、修复宿主机驱动与内核模块

安装/更新必备组件并重建内核模块:

sudoaptupdate&&sudoaptinstall--reinstallvirtualbox-dkmslinux-headers-$(uname-r)

重建模块:

sudo/sbin/vboxconfig
(或
sudo/etc/init.d/vboxdrvsetup
,旧版本)

若仍失败,检查日志

/var/log/vbox-install.log
dmesg|tail
,常见原因是缺少当前内核头文件或DKMS未跟踪新内核。

升级系统后VirtualBox打不开或兼容性异常,建议用官方源重装匹配版本:

添加源:

echo"deb[arch=amd64]https://download.virtualbox.org/virtualbox/debian$(lsb_release-sc)contrib"|sudotee/etc/apt/sources.list.d/virtualbox.list

导入公钥:

wget-qhttps://www.virtualbox.org/download/oracle_vbox_2016.asc-O-|sudoapt-keyadd-

安装/升级:

sudoaptupdate&&sudoaptinstallvirtualbox

启用虚拟化后仍报VT-x/AMD-V不可用:进入BIOS/UEFI打开虚拟化;若宿主机运行在Windows10/11,可能与Hyper-V/沙盒/核心隔离冲突,需在“启用或关闭Windows功能”中关闭后再试(仅当你的宿主机是Windows时适用)。

三、常见场景与对应处理

桥接网卡不存在(如“Nonexistenthostnetworkinginterface”):在虚拟机设置→网络中把桥接改为当前宿主机网卡名,或改为NAT;也可编辑

.vbox
文件,将
改为

CPUID不匹配(如“X86_CPUID_FEATURE_ECX_PCIDisnotsupported”):通常是快照/保存状态来自不同CPU特性主机。处理方式:

先关闭虚拟机→“丢弃保存状态”;

或在设置→系统→处理器,取消勾选启用嵌套分页(NestedPaging)后再试;

仍不行则新建虚拟机,挂载原VDI磁盘启动。

升级后图形界面启动失败或黑屏:在虚拟机设置→显示→图形控制器尝试切换VMSVGA/VBoxVGA,再重启。

启动进程崩溃或报-610/VBoxHardening.log异常:检查安全软件(如火绒)是否拦截,确保VBoxSDS/VBoxDrv服务已启用;必要时以管理员权限执行

sfc/scannow
修复系统DLL;查看
VBoxHardening.log
退出码定位问题。

四、仍未解决时建议准备的信息

执行

VBoxManage--version
uname-a
的输出。

虚拟机设置要点:系统(芯片组/CPU/加速)、显示(控制器/显存)、网络(连接方式/网卡名)。

相关日志片段:VBox.log/VBoxHardening.log的最后20–50行,以及

/var/log/vbox-install.log
的错误内容。