解決Ubuntu在啟動時凍結(jié)的問題
本文將向你一步步展示如何通過安裝 NVIDIA 專有驅(qū)動來處理 Ubuntu 在啟動過程中凍結(jié)的問題。本教程僅在一個新安裝的 Ubuntu 系統(tǒng)上操作驗證過,不過在其它情況下也理應(yīng)可用。
不久前我買了臺宏碁掠奪者筆記本電腦來測試各種 Linux 發(fā)行版。這臺龐大且笨重的機器與我喜歡的,類似戴爾 XPS那般小巧輕便的筆記本電腦大相徑庭。
我即便不打游戲也選擇這臺電競筆記本電腦的原因,就是為了 NVIDIA 的顯卡。宏碁掠奪者 Helios 300 上搭載了一塊 NVIDIA Geforce GTX 1050Ti 顯卡。
NVIDIA 那糟糕的 Linux 兼容性為人們所熟知。過去很多 It’s FOSS 的讀者都向我求助過關(guān)于 NVIDIA 筆記本電腦的問題,而我當(dāng)時無能為力,因為我手頭上沒有使用 NVIDIA 顯卡的系統(tǒng)。
所以當(dāng)我決定搞一臺專門的設(shè)備來測試 Linux 發(fā)行版時,我選擇了帶有 NVIDIA 顯卡的筆記本電腦。
這臺筆記本原裝的 Windows 10 系統(tǒng)安裝在 120 GB 的固態(tài)硬盤上,并另外配有 1 TB 的機械硬盤來存儲數(shù)據(jù)。在此之上我配置好了 Windows 10 和 Ubuntu 18.04 雙系統(tǒng)。整個的安裝過程舒適、方便、快捷。
隨后我啟動了 Ubuntu。那熟悉的紫色界面展現(xiàn)了出來,然后我就發(fā)現(xiàn)它卡在那兒了。鼠標(biāo)一動不動,我也輸入不了任何東西,然后除了長按電源鍵強制關(guān)機以外我啥事兒都做不了。
然后再次嘗試啟動,結(jié)果一模一樣。整個系統(tǒng)就一直卡在那個紫色界面,隨后的登錄界面也出不來。
這聽起來很耳熟吧?下面就讓我來告訴你如何解決這個 Ubuntu 在啟動過程中凍結(jié)的問題。
如果你用的不是 Ubuntu
請注意,盡管是在 Ubuntu 18.04 上操作的,本教程應(yīng)該也能用于其他基于 Ubuntu 的發(fā)行版,例如 Linux Mint、elementary OS 等等。關(guān)于這點我已經(jīng)在 Zorin OS 上確認(rèn)過。
解決 Ubuntu 啟動中由 NVIDIA 驅(qū)動引起的凍結(jié)問題
我介紹的解決方案適用于配有 NVIDIA 顯卡的系統(tǒng),因為你所面臨的系統(tǒng)凍結(jié)問題是由開源的 NVIDIA Nouveau 驅(qū)動所導(dǎo)致的。
事不宜遲,讓我們馬上來看看如何解決這個問題。
步驟 1:編輯 Grub
在啟動系統(tǒng)的過程中,請你在如下圖所示的 Grub 界面上停下。如果你沒看到這個界面,在啟動電腦時請按住 Shift
鍵。
在這個界面上,按 E
鍵進入編輯模式。
按“E”按鍵
你應(yīng)該看到一些如下圖所示的代碼。此刻你應(yīng)關(guān)注于以 “linux” 開頭的那一行。
前往 Linux 開頭的那一行
步驟 2:在 Grub 中臨時修改 Linux 內(nèi)核參數(shù)
回憶一下,我們的問題出在 NVIDIA 顯卡驅(qū)動上,是開源版 NVIDIA 驅(qū)動的不適配導(dǎo)致了我們的問題。所以此處我們能做的就是禁用這些驅(qū)動。
此刻,你有多種方式可以禁用這些驅(qū)動。我最喜歡的方式是通過 nomodeset
來禁用所有顯卡的驅(qū)動。
請把下列文本添加到以 “linux” 開頭的那一行的末尾。此處你應(yīng)該可以正常輸入。請確保你把這段文本加到了行末。
nomodeset
現(xiàn)在你屏幕上的顯示應(yīng)如下圖所示:
通過向內(nèi)核添加 nomodeset 來禁用顯卡驅(qū)動
按 Ctrl+X
或 F10
保存并退出。下次你就將以修改后的內(nèi)核參數(shù)來啟動。
對以上操作的解釋
所以我們究竟做了些啥?那個
nomodeset
又是個什么玩意兒?讓我來向你簡單地解釋一下。通常來說,顯卡是在 X 或者是其他顯示服務(wù)器開始執(zhí)行后才被啟用的,也就是在你登錄系統(tǒng)并看到圖形界面以后。
但近來,視頻模式的設(shè)置被移進了內(nèi)核。這么做的眾多優(yōu)點之一就是能你看到一個漂亮且高清的啟動畫面。
若你往內(nèi)核中加入
nomodeset
參數(shù),它就會指示內(nèi)核在顯示服務(wù)啟動后才加載顯卡驅(qū)動。換句話說,你在此時禁止視頻驅(qū)動的加載,由此產(chǎn)生的沖突也會隨之消失。你在登錄進系統(tǒng)以后,還是能看到一切如舊,那是因為顯卡驅(qū)動在隨后的過程中被加載了。
步驟 3:更新你的系統(tǒng)并安裝 NVIDIA 專有驅(qū)動
別因為現(xiàn)在可以登錄系統(tǒng)了就過早地高興起來。你之前所做的只是臨時措施,在下次啟動的時候,你的系統(tǒng)依舊會嘗試加載 Nouveau 驅(qū)動而因此凍結(jié)。
這是否意味著你將不得不在 Grub 界面上不斷地編輯內(nèi)核?可喜可賀,答案是否定的。
你可以在 Ubuntu 上為 NVIDIA 顯卡安裝額外的驅(qū)動。在使用專有驅(qū)動后,Ubuntu 將不會在啟動過程中凍結(jié)。
我假設(shè)這是你***次登錄到一個新安裝的系統(tǒng)。這意味著在做其他事情之前你必須先更新 Ubuntu。通過 Ubuntu 的 Ctrl+Alt+T
系統(tǒng)快捷鍵打開一個終端,并輸入以下命令:
sudo apt update && sudo apt upgrade -y
在上述命令執(zhí)行完以后,你可以嘗試安裝額外的驅(qū)動。不過根據(jù)我的經(jīng)驗,在安裝新驅(qū)動之前你需要先重啟一下你的系統(tǒng)。在你重啟時,你還是需要按我們之前做的那樣修改內(nèi)核參數(shù)。
當(dāng)你的系統(tǒng)已經(jīng)更新和重啟完畢,按下 Windows
鍵打開一個菜單欄,并搜索“軟件與更新”。
點擊“軟件與更新”(Software & Updates)
然后切換到“額外驅(qū)動”標(biāo)簽頁,并等待數(shù)秒。然后你就能看到可供系統(tǒng)使用的專有驅(qū)動了。在這個列表上你應(yīng)該可以找到 NVIDIA。
選擇專有驅(qū)動并點擊“應(yīng)用更改”。
NVIDIA 驅(qū)動安裝中
新驅(qū)動的安裝會費點時間。若你的系統(tǒng)啟用了 UEFI 安全啟動,你將被要求設(shè)置一個密碼。你可以將其設(shè)置為任何容易記住的密碼。它的用處我將在步驟 4 中說明。
你可能需要設(shè)置一個安全啟動密碼
安裝完成后,你會被要求重啟系統(tǒng)以令之前的更改生效。
在新驅(qū)動安裝好后重啟你的系統(tǒng)
步驟 4:處理 MOK(僅針對啟用了 UEFI 安全啟動的設(shè)備)
如果你之前被要求設(shè)置安全啟動密碼,此刻你會看到一個藍(lán)色界面,上面寫著 “MOK management”。這是個復(fù)雜的概念,我試著長話短說。
對 MOK(設(shè)備所有者密碼)的要求是因為安全啟動的功能要求所有內(nèi)核模塊都必須被簽名。Ubuntu 中所有隨 ISO 鏡像發(fā)行的內(nèi)核模塊都已經(jīng)簽了名。由于你安裝了一個新模塊(也就是那個額外的驅(qū)動),或者你對內(nèi)核模塊做了修改,你的安全系統(tǒng)可能視之為一個未經(jīng)驗證的外部修改,從而拒絕啟動。
因此,你可以自己對系統(tǒng)模塊進行簽名(以告訴 UEFI 系統(tǒng)莫要大驚小怪,這些修改是你做的),或者你也可以簡單粗暴地禁用安全啟動。
現(xiàn)在你對安全啟動和 MOK 有了一定了解,那咱們就來看看在遇到這個藍(lán)色界面后該做些什么。
如果你選擇“繼續(xù)啟動”,你的系統(tǒng)將有很大概率如往常一樣啟動,并且你啥事兒也不用做。不過在這種情況下,新驅(qū)動的有些功能有可能工作不正常。
這就是為什么,你應(yīng)該“選擇注冊 MOK”。
它會在下一個頁面讓你點擊“繼續(xù)”,然后要你輸入一串密碼。請輸入在上一步中,在安裝額外驅(qū)動時設(shè)置的密碼。
別擔(dān)心!
如果你錯過了這個關(guān)于 MOK 的藍(lán)色界面,或不小心點了“繼續(xù)啟動”而不是“注冊 MOK”,不必驚慌。你的主要目的是能夠成功啟動系統(tǒng),而通過禁用 Nouveau 顯卡驅(qū)動,你已經(jīng)成功地實現(xiàn)了這一點。
最壞的情況也不過就是你的系統(tǒng)切換到 Intel 集成顯卡而不再使用 NVIDIA 顯卡。你可以之后的任何時間安裝 NVIDIA 顯卡驅(qū)動。你的首要任務(wù)是啟動系統(tǒng)。
步驟 5:享受安裝了專有 NVIDIA 驅(qū)動的 Linux 系統(tǒng)
當(dāng)新驅(qū)動被安裝好后,你需要再次重啟系統(tǒng)。別擔(dān)心!目前的情況應(yīng)該已經(jīng)好起來了,并且你不必再去修改內(nèi)核參數(shù),而是能夠直接啟動 Ubuntu 系統(tǒng)了。
我希望本教程幫助你解決了 Ubuntu 系統(tǒng)在啟動中凍結(jié)的問題,并讓你能夠成功啟動 Ubuntu 系統(tǒng)。
如果你有任何問題或建議,請在下方評論區(qū)給我留言。