(25.07)解决——ubuntu20.04系统开机黑屏,左上角光标闪烁
前面一些碎碎念:
电脑装的双系统,之前都还好着,今天突然ubuntu开机的时候黑屏了,左上角有光标在闪烁,也查了一些资料,基本上大家的都是驱动有问题,还有内存问题。(个人建议:谨慎删除驱动或重装之类的操作,防止因操作不当导致一系列的麻烦)
看了一些教程,说下我的调试之路吧。。。
在黑屏,光标闪烁的那一页,ctrl+shift+f1,然后出现login,输入用户名和密码,下面就会出现和终端一样的界面,我尝试了nvidia-smi,发现输出没问题,那就应该不是驱动的问题。内存我自己感觉也不是,所以再找其他问题。
中间还进行了一些ubuntu的高级选项中的一些操作,在其他文章中看的解决方法,但是并没有效果。
然后重启了一下,到了选择ubuntu、ubuntu的高级选项(Advanced ..)、windows...的那个界面<GRUB界面>
一、在 GRUB 启动界面:
-
选择你当前的 Ubuntu 启动项;
-
按
e
进入编辑; -
确保
quiet splash
改成nomodeset
,或直接删掉quiet splash
; -
不要重复写多个
nomodeset
,只保留一个; -
然后按
Ctrl+X
或F10
启动。
等待黑屏 + 光标闪烁出现后,按 Ctrl + Alt + F3
(或 F2~F6) 尝试进入 tty 命令行界面。
若成功进入终端,登录后继续修复。
执行结果:并没有成功进入终端,又进入了之前那个命令行界面。
能够成功进入 tty,这说明系统本身是正常启动的,问题出在图形界面(GUI)无法启动。
现在的目标是:
二、修复图形界面登录失败问题,重新进入桌面环境。
确认图形登录服务是否运行(gdm3/lightdm/sddm)
systemctl status gdm3
看到inactive,输入:
sudo systemctl restart gdm3
目前的状态是:
在 tty 中运行
sudo systemctl restart gdm3
后,终端“卡住”,只剩下一个闪烁的光标,无法继续输入。
这是正常现象(这是预期行为,不是卡死!)。原因如下:
gdm3
是图形登录服务,当执行:
sudo systemctl restart gdm3
系统会尝试重启图形界面,这时候:
-
tty 所在的图形会话被“杀掉”或中断;
-
如果图形服务成功启动,你会看到界面自动切换到 GUI;
-
如果失败,系统可能回退到黑屏 + 光标,或者继续卡住。
查看图形界面崩溃原因日志(看不太懂,不做maybe也行)
执行:
journalctl -xe | grep gdm
或者查看图形界面的日志:
cat ~/.xsession-errors cat /var/log/Xorg.0.log | grep EE
这些日志会告诉我们 gdm3 或 X server 是否崩溃、加载失败。
临时启动图形界面看报错(测试)
执行:
startx
执行结果:journalctl -xe | grep gdm 无反应,startx运行后未启动图形界面
问了gpt:
第 1 步:查看 startx
报错输出内容(关键)
你说 startx
无图形界面,但没有贴报错。请你执行以下命令,并贴出部分内容:
cat ~/.xsession-errors
或者:
cat /var/log/Xorg.0.log | grep EE
这一步是判断:是不是 X server 根本启动不了,我们才能继续下一步。
第 2 步:重装桌面环境(直接覆盖修复)
无论问题是 GNOME 损坏、X server 崩溃、配置错误等,以下命令会强制恢复你默认的 Ubuntu 桌面环境:
sudo apt update sudo apt install --reinstall ubuntu-desktop gdm3 xorg dbus
注:这一步不会删除你的文件,但会重装 GUI 相关组件。
运行结果;
sudo apt update
报错apt:error while loading shared libraries:libstdc++.so.6: cannot open shares object file: no such file or directory
这意味着:
-
你的系统中 C++ 运行时库
libstdc++.so.6
丢失或损坏; -
所有依赖它的工具(如
apt
、dpkg
、gcc
、图形界面等)都会无法正常工作; -
这可能是系统更新时中断、误删或磁盘错误导致的。
然后就在想能不能先跳过这一步,修复图形化界面后再解决这个问题,结果:
你现在无法跳过修复
libstdc++.so.6
,也就无法修复图形化界面。
原因如下:
你现在的系统缺失了关键运行库:libstdc++.so.6
,它是 GCC 和 C++ 程序运行的必需组件,影响范围非常广。
-
apt
无法运行; -
dpkg
、systemctl
、gdm3
、Xorg
、startx
,这些 GUI 相关程序全部依赖它; -
甚至 桌面环境本身(如 GNOME)启动器、显示服务等也用不到。
所以:图形界面的一切恢复行为都会失败,除非你先修复这个库。
二、修复步骤:(主要的解决方法)
1、libstdc++6(适用于 Ubuntu 20.04)国内镜像地址:
下载这个 .deb
文件:
阿里云镜像站直链:
https://mirrors.aliyun.com/ubuntu/pool/main/g/gcc-10/libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb
文件名:
libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb
下载后:
-
把这个
.deb
文件放到 U 盘; -
插入 Ubuntu;
-
进入 tty;
2、重新识别 U 盘设备名
执行 lsblk
看设备结构
lsblk
看到类似这样的输出:
重点是找到带有
RM 1
(表示可移动设备) 的项,如:
表示 U 盘的设备是:/dev/sda1
3、正确挂载 U 盘并修复步骤如下
(1)挂载 U 盘
sudo mkdir -p /mnt/usb sudo mount /dev/sda1 /mnt/usb cd /mnt/usb ls
确认你能看到:
libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb
(2)解压并复制库文件
dpkg-deb -x libstdc++6_*.deb temp sudo cp temp/usr/lib/x86_64-linux-gnu/libstdc++.so.6* /usr/lib/x86_64-linux-gnu/ sudo ldconfig
(3)验证是否修复成功
apt --version
apt --version 运行后apt 2.0.10(amd64)
4、修复图形界面(GUI)
(1)更新软件列表
sudo apt update
(2)重装桌面环境 + 图形服务
sudo apt install --reinstall ubuntu-desktop gdm3 xorg
这一步可能会下载几十~几百 MB,稍等片刻。
(3)设置默认显示管理器为 GDM3(图形登录服务)
sudo dpkg-reconfigure gdm3
如果出现界面,选择 gdm3
,然后回车确认。
报错:gdm.service is not active,cannot reload ...
具体操作步骤:
1) 查看 gdm
服务状态
sudo systemctl status gdm.service
看看有没有报错信息。
2.)尝试启动 gdm
服务
sudo systemctl start gdm.service
如果成功,执行:
sudo systemctl status gdm.service
确认是否已激活。
运行结果:sudo systemctl start gdm.service 回车后进入了图形化界面
3.)重启测试
执行:
sudo reboot
看开机是否能直接进入图形界面。
4、正常使用系统
如果开机能正常进入桌面,问题就彻底解决了。