本文將向你一步步展示如何通過安裝 NVIDIA 專有驅動來處理 Ubuntu 在啟動過程中凍結的問題。本教學僅在一個新安裝的 Ubuntu 系統上操作驗證過,不過在其它情況下也理應可用。
不久前我買了台宏碁掠奪者筆記型電腦來測試各種 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 上確認過。
我介紹的解決方案適用於配有 NVIDIA 顯示卡的系統,因為你所面臨的系統凍結問題是由開源的 NVIDIA Nouveau 驅動所導致的。
事不宜遲,讓我們馬上來看看如何解決這個問題。
在啟動系統的過程中,請你在如下圖所示的 Grub 介面上停下。如果你沒看到這個介面,在啟動電腦時請按住 Shift
鍵。
在這個介面上,按 E
鍵進入編輯模式。
你應該看到一些如下圖所示的程式碼。此刻你應關注於以 “linux” 開頭的那一行。
回憶一下,我們的問題出在 NVIDIA 顯示卡驅動上,是開源版 NVIDIA 驅動的不適配導致了我們的問題。所以此處我們能做的就是禁用這些驅動。
此刻,你有多種方式可以禁用這些驅動。我最喜歡的方式是通過 nomodeset
來禁用所有顯示卡的驅動。
請把下列文字新增到以 “linux” 開頭的那一行的末尾。此處你應該可以正常輸入。請確保你把這段文字加到了行末。
nomodeset
現在你螢幕上的顯示應如下圖所示:
按 Ctrl+X
或 F10
儲存並退出。下次你就將以修改後的核心引數來啟動。
對以上操作的解釋
所以我們究竟做了些啥?那個
nomodeset
又是個什麼玩意兒?讓我來向你簡單地解釋一下。通常來說,顯示卡是在 X 或者是其他顯示伺服器開始執行後才被啟用的,也就是在你登入系統並看到圖形介面以後。
但近來,視訊模式的設定被移進了核心。這麼做的眾多優點之一就是能你看到一個漂亮且高清的啟動畫面。
若你往核心中加入
nomodeset
引數,它就會指示核心在顯示服務啟動後才載入顯示卡驅動。換句話說,你在此時禁止視訊驅動的載入,由此產生的衝突也會隨之消失。你在登入進系統以後,還是能看到一切如舊,那是因為顯示卡驅動在隨後的過程中被載入了。
別因為現在可以登入系統了就過早地高興起來。你之前所做的只是臨時措施,在下次啟動的時候,你的系統依舊會嘗試載入 Nouveau 驅動而因此凍結。
這是否意味著你將不得不在 Grub 介面上不斷地編輯核心?可喜可賀,答案是否定的。
你可以在 Ubuntu 上為 NVIDIA 顯示卡安裝額外的驅動。在使用專有驅動後,Ubuntu 將不會在啟動過程中凍結。
我假設這是你第一次登入到一個新安裝的系統。這意味著在做其他事情之前你必須先更新 Ubuntu。通過 Ubuntu 的 Ctrl+Alt+T
系統快捷鍵開啟一個終端,並輸入以下命令:
sudo apt update && sudo apt upgrade -y
在上述命令執行完以後,你可以嘗試安裝額外的驅動。不過根據我的經驗,在安裝新驅動之前你需要先重新啟動一下你的系統。在你重新啟動時,你還是需要按我們之前做的那樣修改核心引數。
當你的系統已經更新和重新啟動完畢,按下 Windows
鍵開啟一個選單欄,並搜尋“軟體與更新”。
然後切換到“額外驅動”分頁,並等待數秒。然後你就能看到可供系統使用的專有驅動了。在這個列表上你應該可以找到 NVIDIA。
選擇專有驅動並點選“應用更改”。
新驅動的安裝會費點時間。若你的系統啟用了 UEFI 安全啟動,你將被要求設定一個密碼。你可以將其設定為任何容易記住的密碼。它的用處我將在步驟 4 中說明。
安裝完成後,你會被要求重新啟動系統以令之前的更改生效。
如果你之前被要求設定安全啟動密碼,此刻你會看到一個藍色介面,上面寫著 “MOK management”。這是個複雜的概念,我試著長話短說。
對 MOK(裝置所有者密碼)的要求是因為安全啟動的功能要求所有核心模組都必須被簽名。Ubuntu 中所有隨 ISO 映象發行的核心模組都已經簽了名。由於你安裝了一個新模組(也就是那個額外的驅動),或者你對核心模組做了修改,你的安全系統可能視之為一個未經驗證的外部修改,從而拒絕啟動。
因此,你可以自己對系統模組進行簽名(以告訴 UEFI 系統莫要大驚小怪,這些修改是你做的),或者你也可以簡單粗暴地禁用安全啟動。
現在你對安全啟動和 MOK 有了一定了解,那咱們就來看看在遇到這個藍色介面後該做些什麼。
如果你選擇“繼續啟動”,你的系統將有很大概率如往常一樣啟動,並且你啥事兒也不用做。不過在這種情況下,新驅動的有些功能有可能工作不正常。
這就是為什麼,你應該“選擇註冊 MOK”。
它會在下一個頁面讓你點選“繼續”,然後要你輸入一串密碼。請輸入在上一步中,在安裝額外驅動時設定的密碼。
別擔心!
如果你錯過了這個關於 MOK 的藍色介面,或不小心點了“繼續啟動”而不是“註冊 MOK”,不必驚慌。你的主要目的是能夠成功啟動系統,而通過禁用 Nouveau 顯示卡驅動,你已經成功地實現了這一點。
最壞的情況也不過就是你的系統切換到 Intel 整合顯示卡而不再使用 NVIDIA 顯示卡。你可以之後的任何時間安裝 NVIDIA 顯示卡驅動。你的首要任務是啟動系統。
當新驅動被安裝好後,你需要再次重新啟動系統。別擔心!目前的情況應該已經好起來了,並且你不必再去修改核心引數,而是能夠直接啟動 Ubuntu 系統了。
我希望本教學幫助你解決了 Ubuntu 系統在啟動中凍結的問題,並讓你能夠成功啟動 Ubuntu 系統。
如果你有任何問題或建議,請在下方評論區給我留言。