Ubuntu虚拟机无法启动,最典型的表现是开机黑屏、卡Logo或直接报错退出,核心排查顺序是:BIOS虚拟化开关→虚拟机资源设置→磁盘与内核修复,按这个路线走能解决绝大多数启动故障。
Ubuntu虚拟机无法启动?先查这4个硬件开关
很多人以为Ubuntu虚拟机启动失败是系统坏了,其实大部分情况是底层环境没准备好,虚拟机跑在宿主机上,硬件虚拟化能力出问题,系统连内核都加载不了,一旦出现启动即闪退或者提示“This host supports Intel VT-x,but Intel VT-x is disabled”,你得先检查这几样:
- BIOS中的Intel VT-x或AMD-V选项是否设为Enabled
- 宿主机CPU是否支持并已启用虚拟化
- 嵌套虚拟化场景下,VMware里是否勾选了“虚拟化Intel VT-x/EPT”选项
- Windows自带Hyper-V是否与VirtualBox/Vmware冲突
在Linux宿主机上快速验证方法很简单,终端里执行 egrep -c '(vmx|svm)' /proc/cpuinfo,返回0说明硬件虚拟化没开,返回数字表示已开启,业内专家指出,国内用户组装的台式机主板,BIOS默认关闭虚拟化相当常见,买回来直接跑虚拟机的朋友尤其容易踩这个坑。
有一个场景比较隐蔽:Windows宿主机开启了Hyper-V,再去用VirtualBox跑Ubuntu,经常出现启动随机卡死,行业共识认为,Hyper-V与Oracle VirtualBox两者Hypervisor冲突是导致Ubuntu虚拟机无法启动的主要诱因之一,要么彻底关闭Hyper-V,要么让对方统一后端,别让两个虚拟化平台互抢资源。
VMware下Ubuntu虚拟机启动失败的快速处理
VMware用户遇到的白屏或错误弹窗,通常集中在“Internal Error”和VMware Tools不匹配上,同一台机器同时装了VirtualBox和VMware,驱动会互相覆盖,表现为Ubuntu虚拟机启动到一半直接重启宿主机,建议只保留一个虚拟化平台,然后彻底卸载另一个,记得重启宿主机再试。
磁盘扩容是另一个高频触发点,在.vmx文件里手动添加或改写了虚拟磁盘路径,结果路径写错,VMware会提示找不到磁盘而拒载,处理步骤:
- 关闭虚拟机后,右键虚拟机,打开“目录位置”
- 用文本编辑器打开.vmx文件,找到
或scsi0:0.fileName
ide0:0.fileName字段 - 确认指向的.vmdk文件和实际文件名称完全一致
- 保存后重新打开虚拟机
VMware Ubuntu虚拟机启动黑屏的排查
黑屏分两种情况:有光标来回闪,和完全无信号,有光标闪,大多是显卡驱动和Ubuntu内核版本不匹配,需要进恢复模式,完全无信号,去虚拟机设置里找到“显示器”,把“加速3D图形”选项取消勾选,近年来,VMware用户反馈Ubuntu 20.04及以后版本,3D加速导致黑屏的比例较大,先关掉再排查比较省时。
如果虚拟机内存设得太小,Ubuntu桌面版也会启动到一半停住,根据当前Ubuntu桌面版的官方推荐,至少分配4GB内存,2GB凑合带不起来的概率不低,升级到Ubuntu 24.04后,内存需求还会进一步上调,能分配到8GB就直接给8GB。
VirtualBox虚拟机Ubuntu卡在加载界面的排查步骤
VirtualBox上面的典型现象是,虚拟机开机后一直转圈,卡在Ubuntu Logo界面不动,或者直接弹“failed to open the virtual machine”,先检查VirtualBox版本,老版本对Ubuntu新内核的兼容性差,升级到最新的VirtualBox之后,问题经常自动消失。
如果已经是最新版,按下面顺序逐项排查:
- 选中虚拟机,右键“设置”,打开“系统”选项卡
- 处理器里的“启用PAE/NX”和主板里的“启用I/O APIC”都勾上
- 切到“显示”选项卡,显存调到128MB,显卡控制器选VMSVGA
- 切到“存储”选项卡,把磁盘控制器从NVMe改成SATA
磁盘控制器是个容易被忽略的细节,Ubuntu 22.04及以上版本系统自带NVMe驱动,但VirtualBox的NVMe模拟器在部分硬件上存在Bug,导致虚拟机启动即黑屏,改成SATA后,多数情况下能快速恢复前提是系统原来就装在SATA设备上,改配置之前想清楚再动。
VirtualBox Ubuntu虚拟机启动失败的日志查看
日志能帮你少走大量弯路,选中虚拟机,点击“日志”按钮,打开“VBox.log”文件,直接拉到最后一段,如果看到VERR_ACCESS_DENIED,说明虚拟机所在目录的权限不对,当前Windows用户没有完整写入权限,找到虚拟机文件夹,右键“属性”》“安全”》“编辑”,把当前用户权限改为“完全控制”,问题基本解决。
快照文件损坏也会引发启动失败,顺便提醒一点:不要再信任长期不清理的旧快照,恢复时崩掉,损失很难挽回,快照没用时果断删除,需要备份就直接“克隆虚拟机”,保存一个独立的干净副本。
Ubuntu虚拟机启动黑屏?试试内核参数和恢复模式
前面几种方式都试过仍然黑屏,还有一招“终极杀手锏”:用恢复模式或者修改内核参数绕过冲突,这个方法适用于黑屏但鼠标指针闪现、系统有声音或者硬盘指示灯在偶尔亮起的场景。
开机时按住Shift键调出GRUB菜单,按下面操作:
- 选择“Advanced options for Ubuntu”
- 用键盘上下键定位到“recovery mode”那一行,回车进入
- 在恢复菜单里选“root”,进入root shell
- 如果怀疑是NVIDIA显卡驱动导致,执行
sudo apt purge nvidia-,然后reboot
用集成显卡出现黑屏,大概率是内核选项的问题,在GRUB界面按e键编辑启动项,找到“quiet splash”字样,改成“nomodeset”,按Ctrl+X继续启动,进入系统后再把这个参数永久写入配置文件,避免每次手动修改:
sudo nano /etc/default/grub
找到GRUB_CMDLINE_LINUX_DEFAULT="quiet splash",改成GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset",保存后执行sudo update-grub。
修复Ubuntu虚拟机启动失败的磁盘与内核问题
宿主机断电或者虚拟机被强制关闭,文件系统很容易受损,启动时出现“The disk drive for / is not ready yet”或者fsck报错,就得手动介入检查磁盘。
用Ubuntu Live镜像挂载跑一次完整修复:
- 虚拟机从Ubuntu安装盘启动,选择“Try Ubuntu”进入临时桌面
- 启动GParted或命令行执行
lsblk,确认虚拟磁盘设备名 - 运行
sudo fsck -f /dev/sda1,需要修复时一路按y - 完成后退出Live环境,重新启动原系统
内核升级导致的启动失败就更常见了,Ubuntu自动安全更新偶尔会装进一个与当前VirtualBox或VMware兼容性差的内核,然后系统启动就卡死,处理办法:开机进GRUB,选“Advanced options for Ubuntu”,换回之前能正常使用的内核版本,修复无误后,把新内核卸载掉:
sudo apt remove linux-image-5.19.0-xxx sudo update-grub
时间同步问题容易被误判成启动故障,域环境里的Ubuntu虚拟机,如果系统时间与域控时间偏差超过一定范围,认证服务会直接拒绝启动,界面看起来就像是卡死了,执行sudo timedatectl set-ntp true开启网络时间同步,再把宿主机和虚拟机的时区统一为UTC,这一类问题立刻解除。
Q&A:Ubuntu虚拟机无法启动的常见追问
虚拟机Ubuntu启动时一直黑屏,但宿主机运行正常,怎么回事?
先检查虚拟机设置里的3D加速是否开启,关闭后重启测试,仍黑屏则在GRUB里加入nomodeset参数绕开显卡驱动,还不行就查看虚拟机显示控制器的类型,VMSVGA和VMware的SVGA不能同时启用,只能保留一个。
Ubuntu虚拟机提示磁盘空间不足,扩容后启动依然失败,怎么办?
这是分区没有跟着磁盘扩容一起调整,用GParted LiveCD启动虚拟机,把根分区扩到新容量,同时检查swap分区是否还有空间,Ubuntu在休眠或者系统更新时依赖swap分区,swap空间不足会导致系统启动中断。
更新内核后Ubuntu虚拟机无法启动,如何降级?
开机进GRUB,选“Advanced options for Ubuntu”,再选旧版本内核的“recovery mode”进入系统,在root shell里执行sudo apt remove linux-image-新版本号,然后sudo apt update和sudo update-grub,如果GRUB菜单里连旧内核都找不到,就用Ubuntu Live盘挂载根分区,手动编辑/boot/grub/grub.cfg找回菜单项,重启后一般还能救回来。
Ubuntu虚拟机无法启动这件事,绝大多数情况是硬件虚拟化开关、显示配置、磁盘文件系统或者内核版本这四类原因造成的,按照这个顺序排查,比反复重装系统高效太多。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/725295.html





