利用 WSL 內建的 Export / Import 機制進行環境封裝與路徑重導。
1. 檢查與關閉環境
在 Windows PowerShell 中確認目前發行版名稱,並強制關閉 WSL。
# 1. 檢視現有 WSL 清單與狀態
wsl -l -v
# 2. 強制關閉所有執行中的 WSL 實例
wsl --shutdown
2. 環境打包(Export)
將 C 槽的 Ubuntu 環境封裝成靜態 .tar 檔案。
# 語法:wsl --export <分發版名稱> <目標備份路徑>
wsl --export Ubuntu-22.04 D:\wsl_backup\ubuntu.tar
Note: 若過程跳出
pax format cannot archive sockets警告,屬正常現象(Socket 檔案不需備份),看到「操作順利完成」即可繼續。
3. 解除舊環境註銷(Unregister)
抹除 C 槽的舊實例,釋放系統碟空間。
# ⚠️ 注意:執行後 C 槽資料會永久刪除,請確保上一步的 tar 檔已產出
wsl --unregister Ubuntu-22.04
4. 佈署新環境(Import)
將打包好的環境解壓至 D 槽指定資料夾。
# 語法:wsl --import <新分發版名稱> <D槽安裝路徑> <備份路徑\檔名.tar>
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu-22.04 D:\wsl_backup\ubuntu.tar
5. 修正預設登入用戶(Default User)
新匯入的環境預設會以 root 登入,需手動修正 wsl.conf。
- 以 root 身分登入 WSL:
wsl -d Ubuntu-22.04 -u root
- 編輯設定檔:
vim /etc/wsl.conf
- 寫入以下配置(將
user替換為原本的帳戶名稱):
[user]
default=user
- 重啟生效:
在 WSL 內輸入
exit退出,並於 Windows PowerShell 執行:
wsl --shutdown
6. 驗證與清理
# 1. 重新登入,確認是否回歸一般用戶與環境完整度
wsl
# 2. 確認無誤後,刪除 D 槽的暫存打包檔
Remove-Item D:\wsl_backup\ubuntu.tar
留言