Ubuntu20.04 VMware 黑屏无法进入桌面,Ctrl+Alt+F2 可以进入终端,最终发现是磁盘空间满了

一、问题现象

今天打开 VMware 中的 Ubuntu20.04,发现系统突然无法进入桌面。

具体表现如下:

  • VMware 可以正常启动 Ubuntu
  • 黑屏,没有登录界面
  • 屏幕只有一个闪烁的光标
  • Ctrl+Alt+F2(F3) 可以进入 tty 终端
  • 输入用户名密码可以正常登录
  • 之前一直正常使用,今天突然出现

如下图所示:


二、第一反应

很多人第一时间会怀疑:

  • GDM 服务异常
  • 显卡驱动问题
  • VMware Tools 损坏
  • Xorg 启动失败

于是我首先进入 tty:

复制代码
Ctrl + Alt + F2

输入用户名密码登录。


三、查看磁盘空间

登录之后第一件事执行:

复制代码
df -h

结果如下:

复制代码
Filesystem      Size Used Avail Use% Mounted on
/dev/sda5        59G  56G     0 100% /

可以看到:

根目录已经100%占满!

这时候其实问题已经基本找到了。

由于 Ubuntu 图形界面(GDM)需要不断写日志、创建临时文件。

如果根目录已经没有任何可用空间,就会导致:

  • GDM 启动失败
  • apt update 失败
  • 无法写日志
  • 图形界面黑屏

四、apt 更新也失败

执行:

复制代码
sudo apt update

出现大量错误:

复制代码
No space left on device

例如:

复制代码
Failed to fetch ...
Error writing to output file
No space left on device

进一步证明就是磁盘空间耗尽导致。


五、查看磁盘到底是谁占用了

执行:

复制代码
sudo du -sh /*

得到:

复制代码
33G /home
9.6G /opt
8.3G /usr
4.8G /var

继续查看 Home:

复制代码
du -sh /home/*

以及

复制代码
du -sh /home/用户名/*

我的目录主要是:

复制代码
4.5G qt5.15
4.2G code
4.1G psplash_logo
1.4G occ

说明大量空间都是开发环境占用。


六、查看 /var

继续查看:

复制代码
sudo du -ah /var | sort -hr | head -30

发现:

复制代码
2.2G /var/log
1.4G /var/log/syslog
809M /var/log/journal

日志已经非常大。


七、释放磁盘空间

1、清空系统日志

复制代码
sudo truncate -s 0 /var/log/syslog

清理 journal:

复制代码
sudo journalctl --vacuum-size=100M

2、清理 apt 缓存

复制代码
sudo apt clean

3、删除不需要的 build 文件

Qt 工程通常都会生成很多 build。

例如:

复制代码
build-Desktop_Qt_5_15_Release
build-Desktop_Qt_5_15_Debug

这些都可以删除。


八、再次查看空间

重新执行:

复制代码
df -h

结果:

复制代码
Filesystem      Size Used Avail Use%
/dev/sda5        59G  54G   1.9G 97%

已经恢复了一部分空间。


九、重新启动图形界面

执行:

复制代码
sudo systemctl restart gdm3

或者直接:

复制代码
sudo reboot

Ubuntu 成功进入桌面。

问题解决。


十、为什么磁盘满会导致黑屏?

Ubuntu 的图形桌面(GNOME/GDM)启动时需要:

  • 写入日志
  • 创建 Socket
  • 创建 Runtime 文件
  • 创建缓存

当根分区空间耗尽时:

复制代码
No space left on device

很多服务都会启动失败,其中就包括:

复制代码
gdm3

最终表现就是:

  • 黑屏
  • 无登录界面
  • tty 可以正常进入

因此很多人误以为是显卡驱动问题,其实只是磁盘满了。


十一、建议

建议 Linux 根目录至少保留:

  • 5GB 可用空间(最低)
  • 10GB 以上更安全

Qt、OpenCV、OpenCASCADE 等开发环境编译生成大量中间文件,很容易把系统盘占满。

另外可以定期执行:

复制代码
sudo apt clean

sudo journalctl --vacuum-size=100M

df -h

查看磁盘使用情况。


总结

如果 Ubuntu 在 VMware 中出现:

  • 黑屏
  • 无法进入桌面
  • Ctrl+Alt+F2 可以进入终端
  • apt update 提示 No space left on device

那么不要急着重装系统。

第一时间执行:

复制代码
df -h

如果发现根目录已经 100%,先释放磁盘空间,再重启 GDM 或直接重启系统,通常即可恢复正常。

相关推荐
IOT那些事儿1 小时前
Ubuntu20.04虚拟机使用鼠标多功能按键
ubuntu·vmware·鼠标·xev
Uncertainty!!12 小时前
Ubuntu 22.04 安装超好用中文输入法rime-ice(雾凇拼音)过程记录
linux·ubuntu·中文输入法
HAPPY酷18 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda
m0_5870989920 小时前
Qt,二进制文件读写建议
开发语言·qt
秋田君20 小时前
QT_QT信号与槽机制
开发语言·数据库·qt
辞旧 lekkk20 小时前
【Qt】 系统相关:事件与定时器
开发语言·qt·学习·萌新
HAPPY酷20 小时前
【ROS2】VMware + Docker 运行 Gazebo 崩溃与“假死”排查实录
qt·docker·容器
初阳7851 天前
【Qt】界面优化(1)——QSS
开发语言·qt
Irissgwe1 天前
第六章 界面优化
qt