问题分析:
可能是磁盘空间不足,也可能是某个安装包出错。首先尝试通过Ctrl + Alt + F1至F6(选择一个可用的tty终端)进入,虽然有建议根据Ubuntu版本选择特定的tty,但在我的虚拟机上,tty1到tty6均无法使用。选定一个,如遇到问题,可尝试切换到下一个。
在tty下,使用df -h检查磁盘占用,常见问题可能是/dev/loop0空间满。尝试使用sudo apt autoremove --purge snapd移除snapd(注意这可能会影响snapd的挂载),或者清理不必要的文件。然而,我并未在这一阶段解决问题,重启后依然卡住。
接下来,进入grub菜单进行系统修复。在启动过程中,当提示按键进入BIOS后,可以按ESC或Shift键选择进入grub菜单。如果直接进入命令行,试着输入"normal"并重启,进入菜单时不要一直狂按,只需按一次即可。
在grub菜单中,选择"Advanced Options for Ubuntu",这里有多个内核选项。选择修复模式,不确定哪个适用时,可以逐一尝试。如果选择直接修复,可能需要清理空间或修复软件包,具体操作根据你的怀疑原因选择。
若以上均不能解决可参考下面操作,博主是通过下面这种方式解决的:
1、创建一个新的虚拟机,正常安装系统,建议用同一个iso。
2、关闭两个虚拟机。
3、找到无法启动的虚拟机的虚拟磁盘文件(通常是.vmdk 文件),然后在新建的虚拟机的设置中,点击 “添加” 按钮,选择 “硬盘” 选项,选择 “使用现有虚拟磁盘”,并找到刚才的.vmdk 文件,将其挂载到该虚拟机上。
4、打开新建的虚拟机,可在文件系统中看到挂载的虚拟磁盘文件/dev/sdb,内部文件均可访问读写。
5、一般情况是磁盘空间不够导致,删除文件或卸载软件即可。(若无法恢复也能及时将数据打包出来。)