解決 Ubuntu 在啟動時凍結的問題

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

-- Abhishek Prakash

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

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

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

所以當我決定搞一臺專門的設備來測試 Linux 發行版時,我選擇了帶有 NVIDIA 顯卡的筆記本電腦。

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

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

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

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

如果你用的不是 Ubuntu

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

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

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

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

步驟 1:編輯 Grub

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

在這個界面上,按 E 鍵進入編輯模式。


解決 Ubuntu 在啟動時凍結的問題

按“E”按鍵


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


解決 Ubuntu 在啟動時凍結的問題

前往 Linux 開頭的那一行


步驟 2:在 Grub 中臨時修改 Linux 內核參數

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

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

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

nomodeset

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


解決 Ubuntu 在啟動時凍結的問題

通過向內核添加 nomodeset 來禁用顯卡驅動


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

對以上操作的解釋

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

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

但近來,視頻模式的設置被移進了內核。這麼做的眾多優點之一就是能你看到一個漂亮且高清的啟動畫面。

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

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

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

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

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

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

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

sudo apt update && sudo apt upgrade -y

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

當你的系統已經更新和重啟完畢,按下 Windows 鍵打開一個菜單欄,並搜索“ 軟件與更新(Software & Updates)”。


解決 Ubuntu 在啟動時凍結的問題

點擊“軟件與更新”(Software & Updates)


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

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


解決 Ubuntu 在啟動時凍結的問題

NVIDIA 驅動安裝中


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


解決 Ubuntu 在啟動時凍結的問題

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


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


解決 Ubuntu 在啟動時凍結的問題

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


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

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

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

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

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

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

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


解決 Ubuntu 在啟動時凍結的問題


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

別擔心!

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

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

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

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

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

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


via: https://itsfoss.com/fix-ubuntu-freezing/

作者: Abhishek Prakash 選題: lujun9972 譯者: Raverstern 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出

點擊“瞭解更多”可訪問文內鏈接

相關推薦

推薦中...