Try   HackMD

Windows Subsystem for Linux (WSL2) 環境設定

0. 目錄

第一篇:WSL 原理介紹
第二篇:本篇
第三篇:WSL 補充內容
第四篇:WSL 搭配 VSC

附上近期投影片教學 (wsl 2版),未來會在 notion 上重寫

1. 安裝 Linux

1.1. 事前須知

首先,請檢查一下手邊的機器有無達到以下條件:

WSL2

  • 處理器
    • x64 架構的處理器
    • ARM64 架構的處理器
    • 具有以上任一種且具備第二層位址轉譯 (SLAT) 的 64 位元處理器
  • 作業系統
    • Windows 10 家用版,版本 1903 或更高版本,含 組建 18362 或更高組建。 (x64 的處理器)
    • Windows 10,版本 2004 或更高版本,含 組建 19041 或更高組建。 (ARM64 的處理器)

Windows 10 S版不支援

  • 記憶體
    • 至少有 4 GB 的記憶體空間。越多記憶體越好。
  • 在 BIOS 或 UEFI 中開啟虛擬化支援:
    • 硬體協助虛擬化。具有 Intel 虛擬化技術的處理器 (Intel VT) 或 AMD Virtualization (AMD) 技術。
    • 啟用硬體強制的資料執行防止 (DEP)。對於 Intel 系統而言,這是 (執行停用位) 的 XD 位。 對於 AMD 系統而言,這是 NX 位 (沒有任何執行位) 。

最後,您本人有無達到以下條件

  • 了解基本的 Linux 命令列語法
  • 勇於嘗試並尋找方法

本教學適用 Ubuntu 20.04 LTS 以及 Ubuntu 21.10 版

歡迎搭配以下兩篇一起服用~
Windows Subsystem for Linux 環境配置 ( 1709 版)
Windows 10 上適用於 Linux 的 Windows 子系統安裝指南

WSL 更新資訊:

1.2. 啟用 Windows 設定

方法 1:

使用系統管理員權限開啟 Power Shell,輸入下述指令:

DISM /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
DISM /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

重新啟動電腦以完成安裝。

方法 2:

到「控制台 > 程式集 > 程式與功能」,點擊「開啟或關閉 Windows 功能」。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

從開啟的小視窗中點選啟用「適用於 Linux 的 Windows 子系統」和「虛擬機器平台」,確定後重新啟動電腦。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1.3. 設定 Focal Fossa

Ubuntu 20.04 LTS 可以從 Windows 商店 取得,沒有標註的預設會安裝穩定版 LTS (目前是 20.04),App 更新不影響版本,筆者這裡使用最新 20.04 版來說明。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Ubuntu 提供 18.04 與 20.04 特定 LTS 選擇,不同 App 視為不同的 distro。

安裝好後請打開 App,第一次開啟會需要等他安裝組建,完成後需要新增帳號密碼來建立使用者,密碼主要用於 sudo

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1.4 (選用)安裝 Windows 終端機

Windows 終端機(Windows Terminal) 是 Microsoft 公司在 2019 年的 Microsoft Build 大會上宣佈推出一款全新的 Windows 終端機,能夠取代 PowerShell 的命令提示字元。

Windows 終端機可啟用多個索引標籤 (在多個 Linux 命令列、Windows 命令提示字元、PowerShell、Azure CLI 等之間快速切換)、建立自訂按鍵繫結 (開啟或關閉索引標籤、複製+貼上等的快速鍵)、使用搜尋功能及自訂佈景主題 (色彩配置、字型樣式和大小、背景影像/柔邊/透明度)。官方的介紹短片

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Windows 終端機可以從 Windows 商店 取得

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

如果在傳統應用程式介面覺得字型大小不好看的話,可以右鍵開啟 App 內容,在裡面調整顯示設定,關於 TrueType 字型在 zsh 會有詳細說明。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1803 版之前 App 的內容配置,每次重開似乎都會自動變回新細明體。

設定成功後就會進到此畫面,前面是你的帳號,@後面是你的電腦名稱。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

除了透過 App,我們還可以透過命令提示字元 (cmd) 或是執行 (Win+R) 並輸入以下任一種來啟動 WSL:

  • bash:進入 預設 Linux distro 的 bash shell
  • wsl:進入 預設 Linux distro 的 default shell
  • ubuntuubuntu2004:執行特定 App .exe

前兩項會根據目前 WSL 預設的 distro 執行,因為目前只安裝 Ubuntu,所以都可以視為相同。
/mnt/c 也就是 mount C,是用來支援原生 Windows 檔案系統,詳情可以查看上一篇。
需要注意使用者名稱根目錄並非同一個位置,前者存取的是 Windows 下的 Users,後者為專屬 WSL 的檔案系統。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1703 版前舊版 WSL 的路徑有些不同。

由於 WSL 支援多種 Linux distro,所以我們可以在 cmd 透過 wslconfig 來管理,下圖可以看到目前的預設的 distro (App 名稱)。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1703 版前舊版 WSL 要透過 lxrun 管理。

上面都沒問題的話就更新一下 Ubuntu 的資料庫,最好定期執行。

由於 WSL 內建的 apt 伺服器使用的是位於歐洲(英國)的 http://archive.ubuntu.com/ubuntu ,下載軟體的時間會因各 ISP 的因素導致下載速度緩慢,因此建議修改成離自己地區最近的鏡像站,可以從 這裡 查詢各地區的鏡像站。

以下使用台灣的 國家高速網路與計算中心(NCHC) 進行修改,提供的頻寬有 20 Gbps 不怕你下載跑不滿。

使用 sed 的指令將 /etc/apt/sources.list 裡面的 archive.ubuntu.comsecurity.ubuntu.com 替換成 free.nchc.org.tw

$ sudo sed -i 's/archive.ubuntu.com/free.nchc.org.tw/g' /etc/apt/sources.list
$ sudo sed -i 's/security.ubuntu.com/free.nchc.org.tw/g' /etc/apt/sources.list

Ubuntu 24.04 LTS 的軟體來源從 /etc/apt/sources.list 改到 /etc/apt/sources.list.d/ubuntu.sources

$ cat /etc/apt/sources.list.d/ubuntu.sources
Types: deb
URIs: http://free.nchc.org.tw/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb-src
URIs: http://free.nchc.org.tw/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Enabled: no
Types: deb
URIs: http://free.nchc.org.tw/ubuntu
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb-src
URIs: http://free.nchc.org.tw/ubuntu
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://archive.ubuntu.com/ubuntu
Suites: noble noble-updates
Components: main restricted
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://security.ubuntu.com/ubuntu
Suites: noble-security
Components: main restricted
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

之後執行以下動作

$ sudo apt clean all   # 清除伺服器先前已取得的檔案清單
$ sudo apt update      # 更新伺服器的檔案清單
$ sudo apt upgrade     # 更新套件

有安裝後續 zsh 的 debian 就可以直接用 adadg

目前 18.04 版在更新套件時會看到 ebtables 的 error,不過這可以先忽略。

如要更新 Focal Fossa:

  • 在 Ubuntu 執行 do-release-upgrade (目前測試是沒有辦法找到新 release)
  • 重新安裝 App

如要刪除 Focal Fossa:

  • 直接解除安裝 App
  • 透過 wsl --unregister 取消註冊

參考資料:Manage and configure WSL

2. 設定 Z shell (zsh)

2.1. 特色

一言以蔽之就是實用,像是命令列補全、可載入模組等等,主要都會選擇搭配下面提到的 oh-my-zsh 一起使用。

參考資料:zsh wiki

2.2. 安裝 zsh

  1. 下載 zsh。
$ sudo apt-get install zsh
  1. 檢查一下 zsh 版本。
$ zsh --version
zsh 5.8 (x86_64-ubuntu-linux-gnu)
  1. 查看已安裝的 shell。
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh
  1. 將 zsh 設為預設 shell。
$ chsh -s $(which zsh)
  1. 先關掉 App 再重開。
  2. 第一次設定完後會看到下面畫面,請直接按 0 建立空白含註解的 .zshrc,只要沒有此檔案都會一直回到這個畫面。
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
  1. 檢查 zsh 是否變為預設,以及版本是否一致。
$ echo $SHELL
/usr/bin/zsh
$ $SHELL --version
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)   
  1. 安裝 oh-my-zsh,強大的 zsh 框架,下面擇一種方式安裝即可。
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

2.3. 安裝 Powerline 字型

由於部分主題像是 agnoster 系列,都會用到特殊符號,這種時候就要安裝 Powerline 字型來解決,一部分原因也是因為 Windows 內建字型較少等寬 (monospace)。
無論是 App 或 VSC 來執行 WSL,字型都是從 Windows 安裝的來選擇,安裝在 WSL 並沒有意義

這邊介紹一款好用的字體:更紗黑體

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

由於這個字體更新的頻率比其他字體還要高,您也可以從 Microsoft 商店下載

在 Windows 終端機上面套用的方式也很簡單

  1. 打開 Windows 終端機,在新分頁右邊的「下拉式按鈕」,選擇「設定」

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. 在右邊的設定檔選擇 Ubuntu-20.04,標籤切換到外觀,在字體的地方選擇「等距更紗黑體」
    reference link

reference link

  1. 字體選擇完畢以後,文字上方可以即時顯示套用的字體

  2. 在終端機設定做任何變更請記得在右下角按「儲存」

2.4. 設定主題

先輸入以下指令開啟設定檔,由於我們初始設定選擇 0,所以會看到滿滿註解的 .zshrc,同時也可以看到 oh-my-zsh 的安裝路徑。

$ vim ~/.zshrc
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

使用 App 在 .zshrc 暫時沒有高亮,筆者是在 VSCode 下使用。

內建的 Themes 會位於 ~/.oh-my-zsh/themes ,可以直接在上圖 .zshrc 中的 ZSH_THEME 替換想要的主題,並套用變更。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

其他需要下載的主題可以從 awesome-zsh-plugins 查看,目前筆者使用的是 bullet-train,以下教學都可以類推適用。
先切換目錄到 $ZSH_CUSTOM/themes 底下,再使用 wget 下載該主題的 raw 檔

$ cd $ZSH_CUSTOM/themes
$ wget https://raw.githubusercontent.com/caiogondim/bullet-train-oh-my-zsh-theme/master/bullet-train.zsh-theme

確認下載至對應路徑後,回到 ~/.zshrc 更改主題並套用,結果如下,雖然有受到 VSC 佈景影響,但整體效果仍相當不錯。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

需要注意的是主題和套件都會影響 zsh 的啟動速度,請自行衡量。

啟用終端機的 256 色模式。

$ echo 'export TERM="xterm-256color"' >> ~/.zshrc

如果是在 VSC 裡執行 WSL,內部顏色會被 VSC 的佈景顏色影響,App 則不會有太大影響,以下是 24 bits color 測試結果:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

如果是像 powerlevel9k 這類 agnnoster 主題,尾端或是游標的顯示在 App 或 VSC 有可能跑掉,這必須自己測試主題了。

目前 VSC 的終端機顏色只能透過佈景主題去調整,詳見 Color theme for VS Code

2.5. 安裝套件

各種支援套件都可以在此找到:plugins 列表plugins 分類,內建套件會位於 ~/.oh-my-zsh/plugins
如同上面提到,awesome-zsh-plugins 詳列許多 zsh 框架,以及各式套件與主題,想簡化安裝步驟的可以使用 Antigen 等套件管理工具。

需要另外下載的套件:

安裝於 $ZSH_CUSTOM/plugins 底下。

$ git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-completions $ZSH_CUSTOM/plugins/zsh-completions
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
$ git clone https://github.com/zdharma-continuum/fast-syntax-highlighting $ZSH_CUSTOM/plugins/fast-syntax-highlighting
$ git clone https://github.com/TamCore/autoupdate-oh-my-zsh-plugins $ZSH_CUSTOM/plugins/autoupdate
  • zsh-navigation-tools:提供 UI 來篩選歷史紀錄、資料夾、刪除工作等等,以下指令會自動設定至 .zshrc,所以不用特別啟用,但務必確保設定在檔案最底端。
$ sh -c "$(curl -fsSL https://gist.githubusercontent.com/jsdryan/1af3a7fab6b7497ae5a99640c501363f/raw/1628761c581fe90cc3d616985ddcdefbd5bce8c4/install.sh)"
指令 說明
n-aliases browses aliases, relegates editing to vared
n-cd browses dirstack and bookmarked directories, allows to enter selected directory
n-functions browses functions, relegates editing to zed or vared
n-history browses history, allows to edit and run commands from it
n-kill browses processes list, allows to send signal to selected process
n-env browses environment, relegates editing to vared
n-options browses options, allows to toggle their state
n-panelize loads output of given command into the list for browsing

可以不用加 -Ctrl+R 可以快速使用 nhistory

內建好但需要關聯的:

  • extractx 等同 extract,只要加上要解壓縮的檔名,剩下就會自動處理,需要先安裝 unzip
$ sudo apt-get install unzip
  • fasd:提供一些快捷去搜尋和切換最近使用的檔案或目錄,提供互動式的選擇,指令也能互相搭配使用,需要先安裝 fasd
    目前 18.04 無法使用 ppa
$ cd ~
$ git clone https://github.com/clvv/fasd.git
$ cd fasd
$ sudo make install    # 可能會需要安裝 make
$ echo 'eval "$(fasd --init auto)"' >> ~/.zshrc

除了直接呼叫 fasd 加上參數, 一般會使用內建的縮寫:

指令 說明
a any
s show / search / select
d directory
f file
sd interactive directory selection
sf interactive file selection
z cd, same functionality as j in autojump
zz cd with interactive selection
  • debian:提供一些管理 package 的快捷,需要先安裝 aptitude
$ sudo apt-get install aptitude 
指令 說明
as [search term] Search for packages
ad Update packages
adg Updgrade packages
ai [packages to install] Install package(s)
ar [package to remove] Remove package
app Apt policy
acs [search term] Search packages in cache
ac Clean apt cache
age [parameters] apt-get [parameters]
api [parameters] aptitude [parameters]
aps [search term] Search with aptitude
afs [search term] Search files in packages
asrc [parameters] apt-get source [parameters]
aac Autoclean
abd Build dependencies
adu Update & (safe)upgrade
afu Update & full-upgrade
ag Upgrade (safe)
ail [list of packages] Install all packages in list
ap Purge
ads Dselect upgrade
dia Install all ./*.deb
di [glob] Install all glob
kclean Remove unused kernel images
allpkgs Print all installed packages
mydeb Create .deb package
apt-list-packages List packages by size
kerndeb Kernel-package building shortcut
apt-copy Creates script to install all current packages on other machine
apt-history Prints apt history

可以直接啟用的:

最後步驟:

~/.zshrc 這地方依序打上需要啟用的套件 (資料夾名稱) 並套用變更。

plugins=(
git
zsh-autosuggestions
zsh-completions
zsh-syntax-highlighting
fast-syntax-highlighting
autoupdate

extract
fasd
debian
last-working-dir
colored-man-pages
command-not-found
common-aliases
sudo
)

可以發現 plugins 後面才 source oh-my-zsh.sh

source ~/.zshrc

2.6. 注意事項

  • 在 1703 版後,用戶的 Windows 環境變數會自動加到 WSL 裡,所以可以很容易地透過 WSL 開啟 Winodws 的程式,所以在 WSL 執行 code 會直接開啟 VSC。

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • 1805 新版的 oh-my-zsh,啟用 completion 相關的套件可能顯示如下警告,詳見 Folder permission issue

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

請直接在 ~/.zshrc 前面加上下面指令,務必要在載入 oh-my-zsh 之前

ZSH_DISABLE_COMPFIX=true
  • 更新 oh-my-zsh:
$ upgrade_oh_my_zsh
  • 刪除 oh-my-zsh:
$ uninstall_oh_my_zsh
  • ~/.profile~/.bashrc 由於我們已更改預設 shell,所以不會被 zsh 載入,一般前者為 login 載入,後者為 non-login 載入。

  • zsh 有專屬的 ~/.zprofile~/.zshrc,一般只會修改後者。

3. 加碼說明

1. 非正規備份還原

在預設的情況下,WSL2 的虛擬磁碟檔案(ext4.vhdx)會放在 C 槽的位置。但有時候我們可能有一些原因(例如:C 槽容量不足、系統常常重灌、想隨身攜帶)會想要放到其他地方而官方預設又不讓你轉移存放,這邊找到一個變通的辦法可以讓您暢行無阻

1-1. 備份

  1. 找到原本 WSL2 放在 C 槽的地方
    預設位置:
C:\Users\[使用者名稱]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState)
  1. 將 ext4.vhdx 複製出來放到你自己知道的地方

1-2. 還原

關於還原的部分,由於同一個名稱只認一個安裝位置, 假如你新的電腦已經安裝了 WSL2 的 Ubuntu-20.04 你就必須要先將其解除安裝或是重新命名,否則接下來的還原會發生失敗,接下來就以新的電腦有安裝過 Ubuntu-20.04 做示範

  1. 開啟終端機,先解除系統已註冊的 Ubuntu-20.04
wsl --unregister Ubuntu-20.04
  1. 手動下載 Ubuntu-20.04,其他的平台 您也可以從微軟提供的網站下載
  2. 將下載回來的 Appx 檔案使用壓縮軟體進行解壓縮
  3. 執行 Ubuntu-20.04.exe,等安裝完成出現要您輸入使用者名稱之後將視窗關閉
    (這麼做的目的是為了讓系統記住您 Ubuntu-20.04 的安裝位置)

在 Ubuntu-20.04 尚未註冊到系統之前,不要提前將您自己的 ext4.vhdx 丟到解壓縮的資料夾內
否則會還原會失敗

  1. 執行 WSL 強制關閉
    (不這麼做在稍後的還原會因為系統依然佔用著檔案而發生失敗)
wsl --shutdown
  1. 將您的 ext4.vhdx 放到 Ubuntu-20.04.exe 同一個資料夾裡面,覆蓋原本產生的 ext4.vhdx
  2. 重新執行 Ubuntu-20.04.exe,就會發現開起來就是您原本備份的資料了
  3. Enjoy~
備註:

如果有遇到還原之後預設登入帳號為 root ,而非使用者帳號時,可參考以下解決辦法

root 帳號下執行此指令

# id -u <username>

(理論上應該回傳 1000)
修改登錄檔

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{MY-UUID}

修改 DefaultUid 登錄檔的十進制為 1000

PowerShell:

PS > wsl —shutdown
PS > wsl

這時登入帳號應該就會是 username 了!

解決辦法原文

2. 將 WSL 的介面變成中文顯示

原本早期的版本 Ubuntu 的指令介面還是具備中文顯示的,但後期到現在的版本全部改成英文
這邊提供各位還原的辦法

  1. 安裝繁體中文套件包
sudo apt install language-pack-zh-hant
  1. 重新套件設定語言
sudo dpkg-reconfigure locales
  1. 用鍵盤 Page Down 的方式按到最下面,按空白鍵選擇 zh-TW.UTF-8,然後按 Tab 鍵切換到 OK,然後按 Enter 下一步
  2. 語言選擇 zh-TW.UTF-8,然後按 Enter 下一步
  3. 關閉 WSL 的視窗,然後重新開啟 WSL
  4. locale 進行確認,語系會全部變成 zh-TW.UTF-8

在新版的 zsh 上,如果需要顯示 git branch 於 Prompt,需將 language 改回 en_US.UTF-8,並且需要重新建立 .zshrc (source ~/.zshrc 沒有用)
Update: ohmyzsh/git async prompt does not appear

3. 將 WSL Ubuntu 20.04 LTS 升級至 Ubuntu 21.10

Microsoft 提供的 WSL Ubuntu 發行版為 LTS 的分支。
為因應部分特殊需求,Microsoft 仍然保留修改發行版更新通道的設定檔。
這邊提供升級的方法:

  1. 完成更新目前所有尚未更新的套件
sudo apt update && sudo apt-get full-upgrade -y
  1. 修改更新通道
sudo vim /etc/update-manager/release-upgrades

Prompt=lts 更改成 Prompt=normal

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
  1. 更新至 21.04 >> 21.10
sudo do-release-upgrade
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

3-1. 從 WSL Ubuntu 22.04 LTS 升級至 Ubuntu 24.04 LTS

Ubuntu 24.04 尚未提供 Prompt=lts 直接升級
需要使用 -d 參數

sudo do-release-upgrade -d

image

4. 安裝多個 WSL 同版本個體

基本上,你一次只能從 Microsoft Store 或是手動安裝一種 WSL Distro 版本,如果想準備多個不同的開發環境,但都使用同一個 WSL Distro 怎麼辦呢?

其實很簡單,你先找到一個執行個體,並且把基本設定都搞定,當成 WSL Distro 範本,接著先匯出,再匯入多個版本即可!

底下這個例子(PowerShell),就是將現有的執行個體先匯出,然後匯入成兩個不同的 WSL Distro 名稱 (指定使用 WSL 2 版本):

PS > cd $env:USERPROFILE

PS > wsl --export Ubuntu-21.10 Ubuntu-2110_backup.tar

PS > wsl --import Ubuntu-21.10    K:\WSL2\Ubuntu21.10    Ubuntu-2110_backup.tar --version 2
PS > wsl --import Ubuntu-21.10-Dev    K:\WSL2\Ubuntu21.10-Dev     Ubuntu-2110_backup.tar --version 2

如果要指定啟動特定 WSL Distro 的話,只要加上 -d <Distro> 參數即可:

wsl -d Ubuntu-21.10-Dev

如果要指定關閉特定 WSL Distro 的話,只要加上 -t <Distro> 參數即可:

wsl -t Ubuntu-21.10-Dev

處理辦法原文:使用 WSL 2 打造優質的多重 Linux 開發環境

參考資料:
鳥哥
Zsh not hitting ~/.profile
Ubuntu 如何快速替換軟體來源的鏡像站(Mirror)?