歡迎光臨
每天分享高質量文章

解決 Ubuntu 在啟動時凍結的問題 | Linux 中國

本文將向你一步步展示如何透過安裝 NVIDIA 專有驅動來處理 Ubuntu 在啟動過程中凍結的問題。本教程僅在一個新安裝的 Ubuntu 系統上操作驗證過,不過在其它情況下也理應可用。

— Abhishek Prakash

 

不久前我買了臺宏碁掠奪者[1]膝上型電腦來測試各種 Linux 發行版。這臺龐大且笨重的機器與我喜歡的,類似戴爾 XPS[2]那般小巧輕便的膝上型電腦大相徑庭。

我即便不打遊戲也選擇這臺電競膝上型電腦的原因,就是為了 NVIDIA 的顯示卡[3]。宏碁掠奪者 Helios 300 上搭載了一塊 NVIDIA Geforce[4] GTX 1050Ti 顯示卡。

NVIDIA 那糟糕的 Linux 相容性為人們所熟知。過去很多 It’s FOSS 的讀者都向我求助過關於 NVIDIA 膝上型電腦的問題,而我當時無能為力,因為我手頭上沒有使用 NVIDIA 顯示卡的系統。

所以當我決定搞一臺專門的裝置來測試 Linux 發行版時,我選擇了帶有 NVIDIA 顯示卡的膝上型電腦。

這臺筆記本原裝的 Windows 10 系統安裝在 120 GB 的固態硬碟上,並另外配有 1 TB 的機械硬碟來儲存資料。在此之上我配置好了 Windows 10 和 Ubuntu 18.04 雙系統[5]。整個的安裝過程舒適、方便、快捷。

隨後我啟動了 Ubuntu[6]。那熟悉的紫色介面展現了出來,然後我就發現它卡在那兒了。滑鼠一動不動,我也輸入不了任何東西,然後除了長按電源鍵強制關機以外我啥事兒都做不了。

然後再次嘗試啟動,結果一模一樣。整個系統就一直卡在那個紫色介面,隨後的登入介面也出不來。

這聽起來很耳熟吧?下麵就讓我來告訴你如何解決這個 Ubuntu 在啟動過程中凍結的問題。

如果你用的不是 Ubuntu

請註意,儘管是在 Ubuntu 18.04 上操作的,本教程應該也能用於其他基於 Ubuntu 的發行版,例如 Linux Mint、elementary OS 等等。關於這點我已經在 Zorin OS 上確認過。

解決 Ubuntu 啟動中由 NVIDIA 驅動引起的凍結問題

我介紹的解決方案適用於配有 NVIDIA 顯示卡的系統,因為你所面臨的系統凍結問題是由開源的 NVIDIA Nouveau 驅動[7]所導致的。

事不宜遲,讓我們馬上來看看如何解決這個問題。

步驟 1:編輯 Grub

在啟動系統的過程中,請你在如下圖所示的 Grub 介面上停下。如果你沒看到這個介面,在啟動電腦時請按住 Shift 鍵。

在這個介面上,按 E 鍵進入編輯樣式。

按“E”按鍵

你應該看到一些如下圖所示的程式碼。此刻你應關註於以 “linux” 開頭的那一行。

前往 Linux 開頭的那一行

步驟 2:在 Grub 中臨時修改 Linux 核心引數

回憶一下,我們的問題出在 NVIDIA 顯示卡驅動上,是開源版 NVIDIA 驅動的不適配導致了我們的問題。所以此處我們能做的就是禁用這些驅動。

此刻,你有多種方式可以禁用這些驅動。我最喜歡的方式是透過 nomodeset 來禁用所有顯示卡的驅動。

請把下列文字新增到以 “linux” 開頭的那一行的末尾。此處你應該可以正常輸入。請確保你把這段文字加到了行末。

  1. nomodeset

現在你螢幕上的顯示應如下圖所示:

透過向內核新增 nomodeset 來禁用顯示卡驅動

按 Ctrl+X 或 F10 儲存並退出。下次你就將以修改後的核心引數來啟動。

對以上操作的解釋

所以我們究竟做了些啥?那個 nomodeset 又是個什麼玩意兒?讓我來向你簡單地解釋一下。

通常來說,顯示卡是在 X 或者是其他顯示伺服器開始執行後才被啟用的,也就是在你登入系統並看到圖形介面以後。

但近來,影片樣式的設定被移進了核心。這麼做的眾多優點之一就是能你看到一個漂亮且高畫質的啟動畫面。

若你往核心中加入 nomodeset 引數,它就會指示核心在顯示服務啟動後才載入顯示卡驅動。

換句話說,你在此時禁止影片驅動的載入,由此產生的衝突也會隨之消失。你在登入進系統以後,還是能看到一切如舊,那是因為顯示卡驅動在隨後的過程中被載入了。

步驟 3:更新你的系統並安裝 NVIDIA 專有驅動

別因為現在可以登入系統了就過早地高興起來。你之前所做的只是臨時措施,在下次啟動的時候,你的系統依舊會嘗試載入 Nouveau 驅動而因此凍結。

這是否意味著你將不得不在 Grub 介面上不斷地編輯核心?可喜可賀,答案是否定的。

你可以在 Ubuntu 上為 NVIDIA 顯示卡安裝額外的驅動[8]。在使用專有驅動後,Ubuntu 將不會在啟動過程中凍結。

我假設這是你第一次登入到一個新安裝的系統。這意味著在做其他事情之前你必須先更新 Ubuntu[9]。透過 Ubuntu 的 Ctrl+Alt+T 系統快捷鍵[10]開啟一個終端,並輸入以下命令:

  1. sudo apt update && sudo apt upgrade -y

在上述命令執行完以後,你可以嘗試安裝額外的驅動。不過根據我的經驗,在安裝新驅動之前你需要先重啟一下你的系統。在你重啟時,你還是需要按我們之前做的那樣修改核心引數。

當你的系統已經更新和重啟完畢,按下 Windows 鍵開啟一個選單欄,並搜尋“軟體與更新Software & Updates”。

點選“軟體與更新”(Software & Updates)

然後切換到“額外驅動Additional Drivers”標簽頁,並等待數秒。然後你就能看到可供系統使用的專有驅動了。在這個串列上你應該可以找到 NVIDIA。

選擇專有驅動並點選“應用更改Apply Changes”。

NVIDIA 驅動安裝中

新驅動的安裝會費點時間。若你的系統啟用了 UEFI 安全啟動,你將被要求設定一個密碼。你可以將其設定為任何容易記住的密碼。它的用處我將在步驟 4 中說明。

你可能需要設定一個安全啟動密碼

安裝完成後,你會被要求重啟系統以令之前的更改生效。

在新驅動安裝好後重啟你的系統

步驟 4:處理 MOK(僅針對啟用了 UEFI 安全啟動的裝置)

如果你之前被要求設定安全啟動密碼,此刻你會看到一個藍色介面,上面寫著 “MOK management”。這是個複雜的概念,我試著長話短說。

對 MOK(裝置所有者密碼[11])的要求是因為安全啟動的功能要求所有核心模組都必須被簽名。Ubuntu 中所有隨 ISO 映象發行的核心模組都已經簽了名。由於你安裝了一個新模組(也就是那個額外的驅動),或者你對核心模組做了修改,你的安全系統可能視之為一個未經驗證的外部修改,從而拒絕啟動。

因此,你可以自己對系統模組進行簽名(以告訴 UEFI 系統莫要大驚小怪,這些修改是你做的),或者你也可以簡單粗暴地禁用安全啟動[12]

現在你對安全啟動和 MOK[13] 有了一定瞭解,那咱們就來看看在遇到這個藍色介面後該做些什麼。

如果你選擇“繼續啟動”,你的系統將有很大機率如往常一樣啟動,並且你啥事兒也不用做。不過在這種情況下,新驅動的有些功能有可能工作不正常。

這就是為什麼,你應該“選擇註冊 MOK”。

它會在下一個頁面讓你點選“繼續”,然後要你輸入一串密碼。請輸入在上一步中,在安裝額外驅動時設定的密碼。

別擔心!

如果你錯過了這個關於 MOK 的藍色介面,或不小心點了“繼續啟動”而不是“註冊 MOK”,不必驚慌。你的主要目的是能夠成功啟動系統,而透過禁用 Nouveau 顯示卡驅動,你已經成功地實現了這一點。

最壞的情況也不過就是你的系統切換到 Intel 整合顯示卡而不再使用 NVIDIA 顯示卡。你可以之後的任何時間安裝 NVIDIA 顯示卡驅動。你的首要任務是啟動系統。

步驟 5:享受安裝了專有 NVIDIA 驅動的 Linux 系統

當新驅動被安裝好後,你需要再次重啟系統。別擔心!目前的情況應該已經好起來了,並且你不必再去修改核心引數,而是能夠直接啟動 Ubuntu 系統了。

我希望本教程幫助你解決了 Ubuntu 系統在啟動中凍結的問題,並讓你能夠成功啟動 Ubuntu 系統。

如果你有任何問題或建議,請在下方評論區給我留言。

已同步到看一看
贊(0)

分享創造快樂