Ubuntu Server开机卡在‘Stopping userspace bootsplash’问题求助
我之前碰到过一模一样的状况,这种卡在bootsplash的问题,尤其是内核切换、Recovery Mode都没用的情况下,大概率是用户空间服务挂起或者initramfs文件损坏导致的。给你几个实用的排查步骤:
第一步:关掉bootsplash看真实启动日志
卡在这个提示其实是系统在关闭启动 splash,但背后可能有服务挂起了,看不到真实错误。你可以在GRUB编辑启动项时,把quiet splash这两个参数删掉,换成debug(或者直接留空),然后启动。这样就能看到具体哪个服务在卡住——比如我之前遇到的是systemd-resolved挂起,一眼就看出来了。第二步:检查并重建initramfs
如果上面的方法还是看不到日志,或者确定是文件系统加载问题,可以用Ubuntu Live CD/USB启动,挂载你的系统分区(假设是/dev/sda1),然后进入chroot环境重建initramfs:# 挂载系统分区 mount /dev/sda1 /mnt # 绑定必要的系统目录 mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys # 进入chroot chroot /mnt # 重建所有内核的initramfs update-initramfs -u -k all有时候initramfs损坏会导致驱动加载失败,哪怕加了
nomodeset也没用,尤其是服务器用了NVMe硬盘或者特殊网卡的情况。第三步:强制进入命令行/救援模式
你可以在GRUB启动项里添加systemd.unit=multi-user.target,直接跳过所有图形相关的服务(哪怕是Server版,有时候误装了图形包也会出问题),进入纯命令行模式。如果还是不行,试试systemd.unit=rescue.target进入救援模式,这里可以手动排查服务:# 查看所有启用的服务 systemctl list-unit-files --type=service | grep enabled # 临时禁用可疑的自定义服务(比如你自己加的docker、脚本服务) systemctl disable suspicious-service.service重启后看看能不能正常启动。
第四步:检查文件系统完整性
要是之前有非正常关机的情况,文件系统损坏也会导致启动卡住。用Live CD启动后,运行文件系统检查:fsck /dev/sda1注意运行前要卸载分区,不然会提示错误。
这些步骤应该能帮你定位到问题,我当时就是通过看真实日志找到挂起的服务,禁用后就正常启动了,之后再慢慢修复那个服务的配置就行。
内容的提问来源于stack exchange,提问作者Miguel Mesquita Alfaiate

