有時候,我們在使用一段時間之後某次開機會突然發現,我的wifi怎麼無法使用了? 通常這種時候,是Ubuntu偷偷更新內核造成的。由於USB的wifi dongle需要裝內核敘述檔(在windows中通常稱呼為驅動程式),內核被更新後會失去這個敘述檔,因此wifi才會失效。 要確認是不是這樣造成的失效,可以使用以下命令確認是不是發生這類狀況: ```bash uname -r ``` 一般來說輸出會是這樣: ![image](https://hackmd.io/_uploads/rkUZ666WA.png) 那如果看到的不是這個,比方說看到什麼6.5之類的,那就是發生了更新內核後系統預設啟動了新內核的狀況。 當然,我們可以選擇重新安裝內核敘述,但這麼做日後每次更新都要來一趟,某方面來說沒有辦法解決問題--那麼換個想法,我們能不能固定在某個內核版本呢? 值得慶幸的是,Ubuntu和windows不同,安裝新版本的內核舊版本內核還是存在的,因此我們並不需要重新安裝或進行什麼移除動作,僅需要讓Ubuntu知道開機時要選擇舊內核就好。 接下來我們將逐步說明怎麼進行這個變更。 #### 檢查當前有效的系統內核版本 第一步,我們要先確認系統裝了那些內核版本以及他們的名稱,可以使用以下命令確認: ```bash cat /boot/grub/grub.cfg | grep menuentry ``` 這個命令會確認開機時可以選擇的啟動選項,輸出大概如下: ![image](https://hackmd.io/_uploads/r1-kVCT-C.png) 會看到一大串東西噴出來,我們要注意的是中間那串,寫著Ubuntu, with Linux (內核版本)的那幾串。如上圖中,我們可以看到裡面現在裝著6.5.0.28-generic和5.19.0.43-genric這兩個版本,而啟動時除了這兩版本還可以選擇啟動這兩個版本的安全模式。 一般而言,Ubuntu預設會啟動最新的內核,而我們希望他啟動舊的5.19內核,因此我們先把整串啟動名稱複製下來,等等我們將更動啟動時的預設選項 ``` Ubuntu, with Linux 5.19.0-43-generic ``` #### 變更啟動設定檔 Ubuntu的啟動設定檔可以用以下的命令前往編輯: ```bash sudo nano /etc/default/grub ``` ![image](https://hackmd.io/_uploads/rkArSATbR.png) 我們要變更的目標是GRUB_DEFAULT這行,原先的設定應該是0,我們將它改成 ``` Advanced options for Ubuntu>Ubuntu, with Linux 5.19.0-43-generic ``` 前半部分是啟動選單的第一層名稱,後半就是我們進入這選單後要選擇的Ubuntu版本。 更改完成,存檔後關閉。 #### 重新載入設定檔 使用以下命令載入設定檔 ```bash sudo update-grub ``` 接著重啟電腦,內核應該就會變回原本版本,wifi也跟著回來了。