WSL2 Ubuntu 24.04 重新安裝與高效測試環境管理

2026-03-18 09:00:09 Category Icon 未分類

WSL2 Ubuntu 24.04 重新安裝與高效測試環境管理

身為開發者,我們經常需要測試新的工具、自動化腳本或複雜的環境配置。但直接在常用的 WSL 環境中測試,往往會留下難以清理的殘留檔案,甚至弄壞原本穩定的開發環境。

透過 WSL2 的 exportimport 功能,我們可以建立一個「黃金母版」,並隨時派生出乾淨的測試機,實現「一秒還原」的實驗室環境。


第一步:重啟與初始化環境

如果你目前的 WSL 實體已經過於混亂,建議先將其移除並重新安裝一個純淨的 Ubuntu 24.04。

警告: 執行 unregister 後,該環境內的所有檔案會立即消失且無法復原。請務必先備份重要資料。

  1. 以系統管理員身分開啟 PowerShell
  2. 解除註冊舊環境:
    wsl --unregister Ubuntu-24.04
  3. 重新安裝:
    wsl --install -d Ubuntu-24.04

安裝完成並設定好基礎使用者後,趁環境最乾淨時,將它匯出成「黃金母版」備份檔:

# 建議將路徑指向空間充足的非系統碟
wsl --export Ubuntu-24.04 D:\VM\WSL2\Ubuntu-24.04-Init.tar

使用情境一:建立快速還原的「測試機」

當你需要測試新的軟體安裝時,不需要動到主環境,直接從備份檔匯入一個新的實體。

1. 建立測試環境

# 語法:wsl --import <自定義名稱> <安裝目標路徑> <備份檔路徑>
wsl --import Testing D:\VM\WSL2\Testing\Ubuntu-24.04-Testing D:\VM\WSL2\Ubuntu-24.04-Init.tar

2. 開啟測試機

# 注意:-d 後面接的是你定義的「名稱」Testing,而非路徑
wsl -d Testing

3. 測試完畢後一秒還原

測試完成後,如果環境已經「髒了」,直接刪掉即可,這不會影響到你的備份檔或主環境:

wsl --unregister Testing

使用情境二:同時運行多個環境的注意事項

WSL2 允許 Ubuntu-24.04Testing 同時運行,但它們共享 Windows 的 localhost 埠號(Port)。

  • 問題: 如果主環境正在跑 8080 Port 的服務,測試機也啟動 8080 Port 服務時會發生衝突。
  • 解決方案: 測試時確保同一時間只有一個環境佔用特定 Port,或是修改服務設定檔使用不同的連接埠。

使用情境三:VS Code 多環境切換

搭配 WSL Extension,你可以輕鬆地在不同實體間切換。

  1. 開啟遠端選單: 點擊 VS Code 左下角「藍色圖示」或按下 Ctrl + Shift + P
  2. 選擇模式: 搜尋並選擇 WSL: Connect to WSL using Distro...
  3. 挑選目標: 選擇 Testing

此時 VS Code 會開啟新視窗,左下角狀態列會顯示 WSL: Testing,讓你左手看 Production Code,右手在 Testing 環境大膽實作。


關鍵技術細節:修復「使用者權限」問題

使用 .tar 匯入的環境,預設登入身分通常是 root。這會導致 VS Code 權限混亂,且無法測試正常的 sudo 流程。

修復步驟:

  1. 進入環境: wsl -d Testing
  2. 確認使用者是否存在: id your_username
  3. 設定預設使用者:
    sudo nano /etc/wsl.conf
    在檔案中加入以下內容:
    [user]
    default=your_username
  4. 徹底重啟: 在 Windows PowerShell 執行:
    wsl --terminate Testing
    重新開啟後,身分就會恢復為一般使用者,測試環境也就大功告成了!