我的電腦有安裝 WSL 2 與 Docker Desktop WSL 2 backend,這兩個分別各使用了一個 ext4.vhdx
虛擬硬碟,我在使用 WSL 2 與 Docker 一段時間之後,這兩個虛擬硬碟變的非常大,分別佔用了 39GB 與 79GB 之多,我想是時候來壓縮這兩個虛擬硬碟了。這篇文章我就來說明壓縮 vhdx 的方法。
-
首先,先透過 Everything search engine 找到你的 ext4.vhdx
檔案路徑
在我的電腦分別是以下兩個路徑:
$env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
$env:LOCALAPPDATA\Docker\wsl\data\ext4.vhdx
-
先將 WSL 2 完整關閉 (這個過程也會把 Docker Desktop 關閉)
wsl --shutdown
確認所有 WSL 2 實體都已經是停止狀態,確保 VHDX 檔案沒有被鎖定
wsl --list --verbose
-
以系統管理員身分執行 PowerShell 視窗,並執行 Optimize-VHD
最佳化 VHDX 虛擬硬碟
Optimize-VHD -Path $env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode Full
Optimize-VHD -Path $env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode Full
Optimize-VHD -Path $env:LOCALAPPDATA\Docker\wsl\data\ext4.vhdx -Mode Full
光是這兩個命令,我省下了將近 50GB 的磁碟空間喔!👍
注意事項
如果你的 Docker 有許多沒用到的 Docker Images 的話,建議可以先移除。詳見 如何快速刪除所有已經無用的 Docker 資源 (容器,容器映像,網路) 文章!
相關連結