前面一些碎碎念:
? ? 電腦裝的雙系統,之前都還好著,今天突然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、正常使用系統
如果開機能正常進入桌面,問題就徹底解決了。