為了避坑,有針對性的解決相應(yīng)的問題,對陣下藥,同時以便后續(xù)回憶與參考,特此記錄。
起因
因為深度學(xué)習(xí)的需要,得適配CUDA和Pytorch-GPU,因此在安裝Nvidia驅(qū)動-535的時候,ubuntu自帶的gdm3圖形界面與該驅(qū)動之間沖突了。
補(bǔ)充:我是單系統(tǒng),之前的Windows被我移除了。
因此導(dǎo)致開機(jī)黑屏或Logo卡住或只顯示光標(biāo)在閃或頁面Error在跳…
經(jīng)過
方法1–甲說
甲說:
造成該問題的原因是由于顯卡驅(qū)動問題導(dǎo)致的,Ubuntu系統(tǒng)使用的nouveau導(dǎo)致的。當(dāng)系統(tǒng)作者自己開發(fā)的第三方驅(qū)動與顯卡不適配時,就會導(dǎo)致黑屏問題。
將nouveau驅(qū)動禁用掉不就好了嗎,nouveau驅(qū)動問題通常發(fā)生在Nvida顯卡上,因為Nvida沒有將他們的顯卡驅(qū)動開源給Linux系統(tǒng)開發(fā)者。
臨時解決辦法:
按ctrl+alt+(F1或者F2或者F3)進(jìn)入命令行界面,輸入用戶名和密碼,reboot,重新啟動。
或者參考按鍵重啟(最好不要直接按電源開關(guān)啟動):
在UEFI引導(dǎo)界面,光標(biāo)移動至Ubuntu,如下圖所示:
按鍵盤E鍵,進(jìn)入該引導(dǎo)的編輯模式:
在linux這行末尾加入nomodeset,視情況也可以將ro改寫為rw。
按cttl+X或者F10保存退出,再次嘗試。
PS:(有的教程說所有系統(tǒng)內(nèi)核都要設(shè)置為rw,加入nomodeset,我好像都試了沒有很大的效果。)
以上步驟是間斷性的,可以嘗試徹底解決,即安裝Nvidia驅(qū)動步驟之一:參考:Ubuntu18.04安裝Nvidia驅(qū)動【全網(wǎng)不坑,超全步驟】(親測~)
- 打開一個終端,輸入:
sudo gedit /etc/modprobe.d/blacklist.conf
- 在文件最后輸入:
blacklist nouveau
保存后在終端輸入:
sudo update-initramfs -u
來更新系統(tǒng)文件。
方法2–乙說
甲的方式他用不了,他嘗試重裝桌面:
- 進(jìn)入TTF2或者3或者4…的界面,即在閃爍界面時,按Ctrl+Alt+1(或者2-6任意數(shù)字鍵)進(jìn)入tty界面
- 登入tty后,按照順序重裝:
sudo apt-get update
sudo apt-get install ubuntu-desktop #安裝ubuntu桌面托管器
sudo apt-get install unity
sudo apt-get install lightdm #安裝lightdm
sudo service lightdm restart #重啟lightdm
當(dāng)然你要搞清楚桌面的形式,如果是gonme或gdm3就是:
sudo apt-get update
sudo apt-get install ubuntu-desktop #安裝ubuntu桌面托管器
sudo apt-get install unity
sudo apt-get install gdm3 #安裝gdm3
sudo service gdm3 restart #重啟gdm3
如若沒有效果,可考慮重裝顯卡驅(qū)動:
Ubuntu18.04安裝Nvidia驅(qū)動【全網(wǎng)不坑,超全步驟】(親測~)
參考命令:
sudo apt-get purge nvidia* #刪除舊的驅(qū)動
sudo ./NVIDIA.run #安裝驅(qū)動
sudo service lightdm start #重新啟動桌面
最后更改一下自己的默認(rèn)開啟方式:
sudo systemctl set-default graphical.target
補(bǔ)充:使用命令檢查當(dāng)前正在使用哪個顯示管理器:
cat /etc/X11/default-display-manager
使用命令:
sudo dpkg-reconfigure lightdm
可以更換圖形顯示模式gdm3與lightdm,但是在我的ubuntu22.04中,gdm3與lightdm不是很兼容。
再次嘗試。
方法3–丙說
利用對應(yīng)內(nèi)核的恢復(fù)模式進(jìn)行修復(fù)就好了,實在不行還可以先恢復(fù)再加上甲提到的:linux行末尾加入nomodeset,將ro改寫為rw。
在啟動頁面,或者黑屏重啟的時候一直按SHIFT,直到頁面顯示:
選擇相應(yīng)內(nèi)核的恢復(fù)模式:
這只是個例子,ubuntu22.04對應(yīng)Linux 6.2.27或6.2.28
選擇修復(fù)即可:
有的人可能使用老版本的內(nèi)核可以進(jìn)去系統(tǒng),新版本的進(jìn)不去,這是因為:內(nèi)核升級,導(dǎo)致無法正常啟動。
使用命令列出正在使用的內(nèi)核:
uname -ar
使用命令sudo update-grub
列出所有的內(nèi)核,然后刪除異常的內(nèi)核包:
sudo apt-get purge linux-image-4.4.0-146-generic
sudo apt-get purge linux-headers-4.4.0-146
reboot。
還有人是因為內(nèi)存爆了,不足,可以使用恢復(fù)模式刪除文件或自動刪除文件:
參考:Ubuntu系統(tǒng)用戶登陸陷入登陸循環(huán)—權(quán)限、.xsession-errors、內(nèi)存不足問題
方法4–丁說
xorg.conf 是X服務(wù)器的配置文件。當(dāng)配置出錯時,會導(dǎo)致X服務(wù)器無法啟動,從而退出到命令行界面??梢圆榭从布渲?,然后根據(jù)xorg.conf的配置說明,正確配置。有時候刪掉就解決了問題:sudo rm /etc/X11/xorg.conf
,具體可以參考:Ubuntu系列彈性云服務(wù)器如何安裝圖形化界面
在NVIDIA驅(qū)動安裝的過程中,會彈出這么一個問題:
Would you like to run the nvidia-xconfig utility to automatically update your X
configuration file so that the NVIDIA X driver will be used when you restart X?
Any pre-existing X configuration file will be backed up.
Yes No
該設(shè)置默認(rèn)為No,保持默認(rèn)設(shè)置最好,如果安裝過程中選擇了Yes,可以按以下方法進(jìn)行補(bǔ)救:
找到xorg.conf,xorg.cong-nvidia-xconfig這兩個文件。xorg.conf是驅(qū)動安裝過程中被修改過的(選擇Yes的后果),修改了系統(tǒng)的X服務(wù)器配置文件/etc/X11/xorg.conf,來讓X服務(wù)器自動指向NVIDIA X來作為圖形驅(qū)動。xorg.cong-nvidia-xconfig是備份的原文件。解決辦法是,只需要刪除修改過的xorg.conf,并將xorg.cong-nvidia-xconfig重命名為xorg.conf。
sudo pkill Xorg 或者 sudo restart lightdm
最后,reboot。
重新啟動嘗試進(jìn)入圖形界面。
還有其它方式待補(bǔ)充…
結(jié)果
憑借3-4天的琢磨是解決了,估計之間還有一些小問題沒被發(fā)現(xiàn)…
- 移除Nvidia所有驅(qū)動
通過以下命令查看本機(jī)安裝的所有與nvidia有關(guān)的包:
dpkg -l | grep -i nvidia
停止所有Nvidia驅(qū)動程序:
sudo systemctl stop nvidia-persistenced.service
sudo systemctl stop nvidia-fallback.service
sudo systemctl stop nvidia-kernel.service
sudo systemctl stop nvidia-smi.service
sudo systemctl stop nvidia-uvm.service
sudo systemctl stop nvidia-drm.service
sudo systemctl stop nvidia.service
進(jìn)行移除:
sudo apt-get --purge remove nvidia*
sudo apt-get purge nvidia*
sudo apt autoremove #此命令少用,可能刪除其它依賴的庫文件
再次檢查:
lsmod | grep nouveau
如果有輸出結(jié)果,則表示Nvidia驅(qū)動程序已成功卸載,并且系統(tǒng)現(xiàn)在正在使用開源的Nouveau驅(qū)動程序。
PS:若刪不掉,進(jìn)入相應(yīng)的內(nèi)核,選擇root,去這里面用命令刪除。
- 移除gdm3和lightdm:
sudo apt-get --purge remove lightdm
sudo apt-get --purge remove gdm3 #可選
- 進(jìn)入恢復(fù)模式,進(jìn)行修復(fù):
- 修復(fù)完,再利用命令安裝:
sudo apt-get update
sudo apt-get install ubuntu-desktop #安裝ubuntu桌面托管器
sudo apt-get install unity
sudo apt-get install gdm3 #安裝gdm3
sudo service gdm3 restart #重啟gdm3
sudo chmod +x ./NVIDIA-Linux-x86_64-535.104.05.run
sudo ./NVIDIA-Linux-x86_64-535.104.05.run --no-x-check -no-opengl-files
-no-opengl-files:只安裝驅(qū)動文件,不安裝OpenGL文件。
-no-x-check:安裝驅(qū)動時關(guān)閉X服務(wù),不設(shè)置可能導(dǎo)致安裝失敗。
返回圖形界面后打開終端輸入:
nvidia-smi
出現(xiàn)以下說明安裝成功:
- 如果你們能按照上面步驟成功那真好啦,可我手殘,把ubuntu中的etc文件誤刪了,在設(shè)置etc/X11.conf的時候:
中途誤刪ubuntu的etc文件如何恢復(fù)
【技術(shù)分享】如何恢復(fù)Linux下誤刪/etc目錄數(shù)據(jù)
linux重要的目錄之etc
嘗試拷貝另一臺機(jī)的etc文件(系統(tǒng)要類似),復(fù)制到/根目錄,重啟…
因此有條件的同志可以試試這個:extundelete,它能夠恢復(fù)某一個時間節(jié)點前的樣子。
rm 命令表示永久刪除,但是不代表文件就一定找不回來,只是找回的幾率有大有小。
有其他人成功了,但是有人測試失敗,釋放內(nèi)存崩潰,此處存疑,后續(xù)再測,記錄一下常用參數(shù):
查詢inode文件狀態(tài):/usr/local/extundelete/bin/extundelete /dev/vda1 --inode 1311798
恢復(fù)指定節(jié)點數(shù)據(jù):/usr/local/extundelete/bin/extundelete /dev/vda1 --restore-inode 1311798
恢復(fù)單個文件:/usr/local/extundelete/bin/extundelete /dev/vda1 --restore-file root/examples/extundelete-0.2.4.tar.bz2
恢復(fù)一個目錄:/usr/local/extundelete/bin/extundelete /dev/vda1 --restore-files root/examples
恢復(fù)所有文件:/usr/local/extundelete/bin/extundelete /dev/vda1 --restore-all
于是,我重裝了系統(tǒng),沒想到有意外收獲(中途還把新系統(tǒng)的etc文件copy到錯誤的系統(tǒng)中試了還是黑屏卡住…)
按照流程:https://www.cnblogs.com/yxh23/p/13621432.html安裝系統(tǒng)。
然后使用命令查看:
cat /etc/X11/default-display-manager
通常返回:
/usr/sbin/gdm3
或
/usr/sbin/lightdm
或
/usr/sbin/sddm
而我輸出的是/usr/sbin/gdm3。
則我按照步驟:Ubuntu18.04安裝Nvidia驅(qū)動【全網(wǎng)不坑,超全步驟】(親測~)當(dāng)中的第三步開始:
禁用nouveau,關(guān)閉gdm3圖形界面,然后安裝lightdm:
sudo service gdm3 stop
sudo apt-get install lightdm
PS:后續(xù)可以使用sudo dpkg-reconfigure lightdm
更換圖形顯示。
繼續(xù)安裝下載好的驅(qū)動NVIDIA-Linux-x86_64-535.104.05.run:
sudo chmod +x ./NVIDIA-Linux-x86_64-535.104.05.run
sudo ./NVIDIA-Linux-x86_64-535.104.05.run --no-x-check -no-opengl-files
然后直接啟動圖形界面:
sudo service lightdm restart
或
sudo service gdm3 restart
這時候我發(fā)現(xiàn) 兩個圖形界面可以輕松切換:
即打開ttf模式,輸入哪個命令就進(jìn)入哪個圖形界面sudo service lightdm restart
或者sudo service gdm3 restart
:
如果沒記錯的話,按照第一個選項啟用的是lightdm會出現(xiàn)藍(lán)屏:
可以打開桌面環(huán)境選擇,更換其它的除了最后一個默認(rèn)的外,其它的均可以正常進(jìn)入:
而且其它的進(jìn)入后,你再次進(jìn)入鎖屏界面選擇桌面模式的話,所有的都可以進(jìn)入了,就不會有藍(lán)屏…(這我也很奇怪,但是問題從現(xiàn)象上來說都解決掉了)
另外,關(guān)于gdm3和lightdm之間的區(qū)別和問題,可以參考:
Ubuntu22.04利用lightdm替換gdm3出現(xiàn)的問題或Bug
主要是:
文章來源:http://www.zghlxwxcb.cn/news/detail-684276.html
到目前為止我是解決了它們(gdm3與lightdm)
因為是完成后記錄的,寫的難免有些些不完整,后續(xù)還會繼續(xù)完善和補(bǔ)充~文章來源地址http://www.zghlxwxcb.cn/news/detail-684276.html
到了這里,關(guān)于Linux啟動黑屏卡住Logo登錄界面無法進(jìn)入系統(tǒng)的終極解決方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!