將 WSL 中的 Ubuntu 遷移到其他磁盤可有效釋放 C 盤空間并優化系統性能。以下是詳細步驟及注意事項:
📍 ??遷移步驟??
??備份 WSL 數據(防止意外丟失)??
以管理員身份打開 PowerShell 或命令提示符。
導出 Ubuntu 實例為壓縮包(替換
<目標路徑>
為備份位置,如D:\backup\ubuntu.tar
):wsl --export Ubuntu <目標路徑>.tar
??示例??:
wsl --export Ubuntu D:\backup\ubuntu.tar
??注銷原 Ubuntu 實例??
關閉所有 WSL 進程:
wsl --shutdown
注銷 Ubuntu(??此操作將刪除 C 盤的原數據??):
wsl --unregister Ubuntu
??在新磁盤創建安裝目錄??
在目標磁盤(如 D 盤)新建文件夾(如
D:\WSL\Ubuntu
)。New-Item -ItemType Directory -Path "D:\WSL\Ubuntu" -Force
??導入 Ubuntu 到新位置??
使用備份文件導入到新目錄(指定 WSL 版本為 2):
wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\backup\ubuntu.tar" --version 2
?? 確保路徑無空格或特殊字符,避免導入失敗。
??設置默認用戶(可選)??
若遷移后默認登錄用戶變為
root
,需恢復原用戶:ubuntu.exe config --default-user <原用戶名> # 如 "ubuntu2004.exe" 需替換為實際發行版名稱
??示例??:
ubuntu2004.exe config --default-user jason
??驗證遷移結果??
啟動 Ubuntu 并檢查磁盤掛載點:
wsl -d Ubuntu df -h # 查看根目錄是否為 `/`,且容量匹配新磁盤空間
在 Windows 中檢查新目錄(如
D:\WSL\Ubuntu
)是否生成ext4.vhdx
虛擬磁盤文件。
?? ??關鍵注意事項??
??權限與路徑要求??
??管理員權限??:所有命令需在管理員權限的終端執行。
??目標磁盤格式??:必須是 NTFS 或 ReFS,支持大文件存儲。
??路徑規范??:避免使用中文或空格(如
D:\開發環境
可能導致異常)。
??遷移后清理??
確認遷移成功后,可刪除備份文件(如
D:\backup\ubuntu.tar
)釋放空間。若原 C 盤殘留數據(路徑:
%LOCALAPPDATA%\Packages\CanonicalGroupLimited*
),可手動刪除。
??多發行版處理??
若系統存在多個 WSL 發行版,遷移前通過
wsl -l -v
確認名稱,避免誤操作。
🔧 ??故障排除??
??導入失敗??:檢查備份文件完整性(如通過 SHA256 校驗),或重新導出導入。
??用戶配置丟失??:若未執行步驟 5,手動創建用戶并遷移數據:
sudo adduser <新用戶名> sudo usermod -aG sudo <新用戶名> # 賦予sudo權限 sudo cp -r /home/<原用戶>/* /home/<新用戶>/ sudo chown -R <新用戶>:<新用戶> /home/<新用戶>
??WSL 無法啟動??:嘗試重置默認版本:
wsl --set-default-version 2
💎 ??總結??
通過導出-注銷-導入流程,可安全遷移 Ubuntu 至新磁盤。遷移后需驗證文件系統掛載點及用戶配置,確保環境完整。若需進一步優化存儲,可結合 Docker 數據路徑遷移(參考 )全面釋放 C 盤壓力。