The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何縮減 WSL 2 與 Docker Desktop WSL 2 backend 的 VHDX 虛擬硬碟大小

我的電腦有安裝 WSL 2 與 Docker Desktop WSL 2 backend,這兩個分別各使用了一個 ext4.vhdx 虛擬硬碟,我在使用 WSL 2 與 Docker 一段時間之後,這兩個虛擬硬碟變的非常大,分別佔用了 39GB 與 79GB 之多,我想是時候來壓縮這兩個虛擬硬碟了。這篇文章我就來說明壓縮 vhdx 的方法。

high-angle-hard-drive-still-life

  1. 首先,先透過 Everything search engine 找到你的 ext4.vhdx 檔案路徑

    在我的電腦分別是以下兩個路徑:

    $env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

    $env:LOCALAPPDATA\Docker\wsl\data\ext4.vhdx

  2. 先將 WSL 2 完整關閉 (這個過程也會把 Docker Desktop 關閉)

    wsl --shutdown
    

    確認所有 WSL 2 實體都已經是停止狀態,確保 VHDX 檔案沒有被鎖定

    wsl --list --verbose
    

    image

  3. 以系統管理員身分執行 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 資源 (容器,容器映像,網路) 文章!

相關連結

留言評論