1. 程式人生 > 其它 >(轉)ubuntu 黑屏 進入不了圖形介面 dev/sda1: clean, 552599/6111232 files, 7119295/24414464 blocks

(轉)ubuntu 黑屏 進入不了圖形介面 dev/sda1: clean, 552599/6111232 files, 7119295/24414464 blocks


一)、修改boot啟動項

開始的時候電腦開不了機(開機之後,先是紫屏,再一直是黑屏),重啟了幾次發現依舊如此,就修改了boot啟動順序,LEFI啟動Leacy啟動都試了;之後根據啟動的瞬間螢幕亮出的in unsecure boot,也嘗試改成不安全啟動;

有了效果,開機畫面變了,然後出現了一個黑框,嗯,就是最開頭的圖,可以輸入內容、Enter鍵,但是不會執行,Ctrl+Alt+F2,居然能用,切換到TTY2介面,長舒了口氣,還有救。

二)、修改grub 引導項(很多人通過這個解決了,但是這招對我沒用)

在黑窗口裡面(Ctrl+Alt+F2-7都行,輸入使用者名稱、密碼),輸入

sudo gedit /etc/default/grub
找到quiet splash並在後面新增nomodeset;修改前:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
修改後:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset“


然後輸入

sudo update-grub
再重啟就行了。

如果出現無法使用sudo update-grub,比如:/usr/sbin/grub-mkconfig 1 /etc/default/grub i# not found

解決方法: sudo cp /usr/share/grub/default/grub /etc/default/grub

如果能進入到grub引導介面,就不用像上面那樣膽戰心驚了:以下為引用(其實就是照抄了,我單系統,看不到這個)

附連結:https://blog.csdn.net/Gavinmiaoc/article/details/82968853

開機後自動顯示grub選項,提示要選擇哪個作業系統的時候,預設選擇游標是在第一行Ubuntu上的(整個第一行為白色)

根據提示按e(edit的意思),可以看到,中下部分有一處寫著“ro“,這才發現端倪所在:

改成這樣的

”ro“是”read only“只讀的意思,在作業系統的基礎知識中,我們知道一個作業系統在開機啟動的過程中,有些軟體會需要在此時寫入一些資訊和資料到系統中,才能正常執行,這裡寫成了”ro“會導致開機的時候一些軟體無法寫入資料,導致一直等待可以寫入的時機否則不進行下一步,從而系統一直等待無法啟動。

這裡我的解決方法是把”ro“改成”rw“,即”read & write“,可以讀取並且可以寫入,

同時為了排除獨立顯示卡的影響因素也在splash後面加上了nomodeset,然後按F10或者ctrl+x重啟。

我做的在命令列裡面的操作,應和他這個效果一樣,所以,我就接著他的辦法更新了一下:

然後在命令列用

sudo apt update,以及

sudo apt upgrade 更新自己的系統核心,然後用

sudo apt install -f和

sudo apt autoremove來無副作用的刪除舊核心,
如果你成功了,恭喜

我挺苦惱的,我更新不了,因為沒有網,雖然我有校園網線,但是那個得輸入驗證,由此引入了(三)環節。

三)、ubuntu通過命令列聯網

抄自:https://blog.csdn.net/zhu334974857/article/details/77198545

1.通過命令列ifconfig命令檢視乙太網(即網線插口)的名稱,如下圖,'enp3s0'是網線插口(Ethernet乙太網):

zhuml@zhuml-Latitude-3350:~$ ifconfig
enp3s0 Link encap:Ethernet HWaddr 14:18:77:a5:24:3d
inet addr:10.58.101.247 Bcast:10.58.103.255 Mask:255.255.252.0
inet6 addr: fe80::2883:9232:3f1e:fe3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13212 errors:0 dropped:0 overruns:0 frame:0
TX packets:1696 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3760852 (3.7 MB) TX bytes:238743 (238.7 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:558 errors:0 dropped:0 overruns:0 frame:0
TX packets:558 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:72352 (72.3 KB) TX bytes:72352 (72.3 KB)

wlp4s0 Link encap:Ethernet HWaddr a4:02:b9:0a:76:b1
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
2.命令列新增或修改網路引數

zhuml@zhuml-Latitude-3350:~$ sudo gedit /etc/network/interfaces
當然,如果黑視窗下,操作不了gedit,那就把它換成vi或者vim吧

sudo gedit /etc/network/interfaces

彈出一個文字窗,如下:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
在裡面新增乙太網的相關資訊

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto esp3s0
iface esp3s0 inet dhcp
3.重啟網路

zhuml@zhuml-Latitude-3350:~$ sudo /etc/init.d/networking restart
如果能上網,就繼續按照(二)的最後的更新步驟來,不能的話,咱們最差也是和我一樣嘛

壓箱底的老外上網的解決方法:

I also have same problem. Strangely, the wired network won't work, while the wireless network can connect to a 802.1x network.Anyway, in my case, I can not fix it, but can workaround by modify the interface file Let the NetworkManager bypass the interface.

In the /etc/network/interface file

auto enp0s25
iface enp0s25 inet dhcp
wpa-driver wired
wpa-conf /etc/wpa_supplicant/wpa_wired.conf
and in your /etc/wpa_supplicant/wpa_wired.conf file

network={
key_mgmt=IEEE8021X
eap=PEAP
phase2="auth=MACHAPV2"
identity="youridentity"
password="yourpassword"
}
In my case, I can connect to network temporary.

以上,是帶有使用者名稱、密碼的網線連線方式,還連不上,嗯嗯,沒事,我也沒連上

三)、環境變數

為什麼會相到是這裡的問題呢,可能看著跨度比較大,由於能進命令列視窗,於是我按照關鍵字,“Ubuntu無法進入圖形介面”,搜尋,發現一篇給力清奇的文章:https://blog.csdn.net/darren2015zdc/article/details/73910766

如果你配置完ubuntu 然後進不去圖形介面,然後你就重啟電腦,然後再shift+alt+f1鍵進入ubuntu的終端模式下面進行操作,然後你就建立一個root使用者(如果有就不用了)建立root使用者方法:sudo passwd root 建立完root使用者 然後就以root身份 進入你之前配置過的環境變數 配置的哪個就把哪個刪除掉,用vi操作,然後重啟,就完全恢復原來的問題,然後再看下面的文章,究竟是什麼東西在作怪。

查詢錯誤後才發現,原來,ubuntu 再啟動的時候讀取配置檔案,並設定環境變數的順序是這樣的:

1、在登入時,作業系統定製使用者環境時使用的第一個檔案就是 /etc/profile ,此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行。
2、在登入時作業系統使用的第二個檔案是 /etc/environment ,系統在讀取你自己的profile前,設定環境檔案的環境變數。

3、在登入時用到的第三個檔案是.profile檔案,每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,,該 檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。/etc/bashrc:為每一個執行bash shell的使用者執行此檔案.
當bash shell 被開啟時,該檔案被讀取.
因此,檢視我的配置檔案後發現!原來錯誤就出現在這裡,這是我原來的.profile配置檔案

export JAVA_HOME=/usr/jdk1.6.0_21
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
因為,系統啟動時會先讀取/etc/profile , 然後讀取 /etc/environment ,最後才是.profile 檔案
這時,如果你在.profile 中也設定了環境變數PATH ,就會覆蓋原來/etc/environment 中設定的環境變數PATH !
所以,問題就出在了這一步!
那麼解決辦法就是,在設定.profile 的環境變數時,在PATH=的最前面加上 $PATH
修改後的.profile 檔案如下:

export JAVA_HOME=/usr/jdk1.6.0_21
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib


重啟之後,還是冰冷的黑視窗;贊同他的方法是因為,我是前一天也安裝了java,修改了環境變數,雖然沒解決,但是挺好的

四)、鎖定nvidia顯示卡自動更新

按照關鍵字sda1: clean、nvme0n1 : clean好多都指向顯示卡的問題,打算解除安裝顯示卡再安裝

由於之前安裝nvidia顯示卡驅動的時候,其中有一步,是把nouveau關閉:

ubuntu 16.04預設安裝了第三方開源的驅動程式nouveau,安裝nvidia顯示卡驅動首先需要禁用nouveau,不然會碰到衝突的問題,導致無法安裝nvidia顯示卡驅動。

編輯檔案blacklist.conf

sudo vim /etc/modprobe.d/blacklist.conf
在檔案最後部分插入以下兩行內容

blacklist nouveau
options nouveau modeset=0
更新系統

sudo update-initramfs -u
接下來就是常規的安裝nvidai驅動的步驟了,但有些細節得注意:

1)現在黑視窗,電腦沒網

2)外接儲存裝置,得掛載;有掛載,就會有解除安裝

五)、安裝nvidia驅動

1、掛載儲存裝置:

獲取掛載許可權

sudo -i

#輸入密碼
找到待儲存裝置的目錄(Linux系統中裝置即檔案)

fdisk -l
# /dev/sdb1
將儲存裝置掛載到系統某個位置

mount /dev/sdb1 /mnt/wang
現在裝置所有檔案被掛載到了/mnt/wang目錄中,進入目錄檢視內容,找到下載好的相應的nvidia驅動

cp /mnt/wang/NVIDIA*.run ~/
意思就是把儲存裝置什麼的驅動拷貝到你經常使用的目錄,建議使用者名稱的根目錄,因為進入TTY黑視窗介面,開始的時候,就是這裡
然後就可以解除安裝裝置了

sudo umount /dev/sdb1
注意不能夠在/media/wang目錄下輸入解除安裝命令,因為你正在訪問裝置

接下來幹正事了,進入到剛才拷貝了驅動的資料夾

賦予驅動執行許可權
sudo chmod a+x NVIDIA*.run

執行安裝驅動
sudo ./NVIDIA-Linux-x86_64-384.59.run –no-x-check -no-nouveau-check -no-opengl-files
–no-opengl-files:表示只安裝驅動檔案,不安裝OpenGL檔案。這個引數不可省略,否則會導致登陸介面死迴圈,英語一般稱為”login loop”或者”stuck in login”。
–no-x-check:表示安裝驅動時不檢查X服務,非必需。
–no-nouveau-check:表示安裝驅動時不檢查nouveau,非必需。
過程中會可能出現一下:

The distribution-provided pre-install script failed! Are you sure you want to continue?
讀懂的話,挺嚇人的,還好我看不懂;一切都是paper tiger 選擇“yes”

Nvidia's 32-bit compatibility libraries?
安裝32連結庫嗎, No

Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
不知道會不會是更新驅動的意思,第一次安裝的時候,選擇了yes導致我搗鼓了一天,現在果斷no;當然是不是,我不確定哈

掛載:

modprobe nvidia
檢視nvidia驅動:

nvidia-smi
成功的話,進入圖形介面:

sudo init 5
ctrl + alt + f7 (具體是f幾不知道了,有的ubuntu的f1是圖形化介面,有的是其它)
sudo service lightdm restart
這三種都可以,不過我沒試,我還是喜歡 reboot
————————————————
版權宣告:本文為CSDN博主「王20133」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/u013862444/article/details/103005800