WSL2 Ubuntu 24.04 重新安裝與高效測試環境管理
2026-03-18 09:00:09 未分類
身為開發者,我們經常需要測試新的工具、自動化腳本或複雜的環境配置。但直接在常用的 WSL 環境中測試,往往會留下難以清理的殘留檔案,甚至弄壞原本穩定的開發環境。
透過 WSL2 的 export 與 import 功能,我們可以建立一個「黃金母版」,並隨時派生出乾淨的測試機,實現「一秒還原」的實驗室環境。
第一步:重啟與初始化環境
如果你目前的 WSL 實體已經過於混亂,建議先將其移除並重新安裝一個純淨的 Ubuntu 24.04。
警告: 執行
unregister後,該環境內的所有檔案會立即消失且無法復原。請務必先備份重要資料。
- 以系統管理員身分開啟 PowerShell。
- 解除註冊舊環境:
wsl --unregister Ubuntu-24.04 - 重新安裝:
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.04 與 Testing 同時運行,但它們共享 Windows 的 localhost 埠號(Port)。
- 問題: 如果主環境正在跑 8080 Port 的服務,測試機也啟動 8080 Port 服務時會發生衝突。
- 解決方案: 測試時確保同一時間只有一個環境佔用特定 Port,或是修改服務設定檔使用不同的連接埠。
使用情境三:VS Code 多環境切換
搭配 WSL Extension,你可以輕鬆地在不同實體間切換。
- 開啟遠端選單: 點擊 VS Code 左下角「藍色圖示」或按下
Ctrl + Shift + P。 - 選擇模式: 搜尋並選擇
WSL: Connect to WSL using Distro...。 - 挑選目標: 選擇
Testing。
此時 VS Code 會開啟新視窗,左下角狀態列會顯示 WSL: Testing,讓你左手看 Production Code,右手在 Testing 環境大膽實作。
關鍵技術細節:修復「使用者權限」問題
使用 .tar 匯入的環境,預設登入身分通常是 root。這會導致 VS Code 權限混亂,且無法測試正常的 sudo 流程。
修復步驟:
- 進入環境:
wsl -d Testing。 - 確認使用者是否存在:
id your_username。 - 設定預設使用者:
在檔案中加入以下內容:sudo nano /etc/wsl.conf[user] default=your_username - 徹底重啟: 在 Windows PowerShell 執行:
重新開啟後,身分就會恢復為一般使用者,測試環境也就大功告成了!wsl --terminate Testing