把 WSL 中的 Ubuntu 環境升級 Kernel 到最新的 LTS 版本

  • 33
  • 0
  • 2025-10-28

如果在 WSL 中已安裝 Ubuntu - 22.04 的環境,要如何升級到最新 LTS 版本呢?

在 Microsoft Store 的 Ubuntu 的描述當中,看到了這樣的設定:

sudo do-release-upgrade


為什麼要特別升級呢?直接在 WSL 安裝最新的一套 LTS 版的 Ubuntu 即可不是嗎?

也許是環境設定…已經用的順手,要搬家有點費力。
也許是套件發佈…原 LTS 版本沒能升級使用到套件。

例如,GStreamer 的 apt-get 套件沒有發佈新版到 Ubuntu - 22.04,如果用 apt-get 安裝完後會發生只安裝到 1.20.3 的版本:

總之,就試試看吧!

 

首先,先切換一下 Windows 上預設使用的 WSL 環境到所要升級的 Ubuntu-22.04 上:

wsl --set-default <Ubuntu 發佈名稱>

輸入:

wsl --set-default Ubuntu-22.04

再次輸入:

 wsl --list

確認目標環境 "Ubuntu-22.04" 的發佈環境後面有括號"預設"。

 

即可再透過 "wsl" 直接進入到 WSL 的 "Ubuntu-22.04" 環境中:

 

不放心的話可再透過 "hostnamectl" 查詢一下:

Operating System 寫著 Ubuntu 22.04.5 LTS。

 

如果是一開始的 "Ubuntu-22.04" 嘗試安裝 dotnet runtime 可能會遇到這樣的狀況:

apt-get install -y dotnet-runtime-8.0

 

會告知 "404 Not Found",不過幸好透過 apt-get update,還可以更新。

推測可能 .net 8 的 8.0.11 版本已經被移除,換成 8.0.21 的版本供使用。

 

重頭戲來囉!

sudo do-release-upgrade

但 Prompt 被設定為 never。

 

看一下 "release-upgrades" 的設定:

sudo nano /etc/update-manager/release-upgrades

 

進到 nano 當中顯示的 release-upgrades 的最後一列,會看到 Prompt=never:

把 never 改成 lts:

接著就 "Ctrl + x (離開)","Y (是)","Enter (確定)"。

 

再一次 "sudo do-release-upgrade":

繼續嗎?"Y (是)":

 

開始一連串下載。

從 jammy:

切換到 noble:

 

一旦開始就不能回頭了,確定要 "繼續嗎?" Y(是):

 

持續下載所需的 noble 版本套件的更新檔案:

 

套件更新可能會有一些服務重啟,要不要重啟服務時採用不詢問模式:

建議選 "No",以便確認遠端服務(如 SSH)要斷線時還可以知道。

 

經過一陣操作猛如虎的更新後:

 

詢問是否重開,"繼續嗎?" Y(是):

 

該 Ubuntu 環境重開,退出 WSL:

 

再次透過 wsl 進入該 Ubuntu-22.04 環境中後,再次透過 hostnamectl 確認系統版本:

會看到 Operating System 應該變成 Ubuntu 24.04.3 LTS

如果有需要的話請記得回去把 release-upgrades 的 Prompts 改回成 never。

 

參考連結:

Ivon的部落格 - https://ivonblog.com/posts/upgrade-ubuntu-lts/

 


 


I'm a Microsoft MVP - Developer Technologies (From 2015 ~).
 

MVP_Logo



I focus on the following topics: Xamarin Technology, Azure, Mobile DevOps, and Microsoft EM+S.

If you want to know more about them, welcome to my website:
https://jamestsai.tw 


本部落格文章之圖片相關後製處理皆透過 Techsmith 公司 所贊助其授權使用之 "Snagit" 與 "Snagit Editor" 軟體製作。