# 前言

在 WSL 環境下,發現即使將 linux 中的檔案刪除,windows 下的磁碟空間也沒有釋放。

# 將 Docker Build Cache 刪除

  1. 查看目前的建置緩存
sudo docker system df
  • 可以看到以下輸出
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          9         8         28.91GB   13.19GB (45%)
Containers      8         8         3.872GB   0B (0%)
Local Volumes   1         1         263.9kB   0B (0%)
Build Cache     64        0         44.79GB   44.79GB
  1. 刪除 Build Cache
sudo docker builder prune
  • 出現刪除警告後輸入 y 繼續
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N]

在這個步驟後發現 windows 下的磁碟空間沒有釋放。

# 釋放虛擬磁碟檔案

  1. 將 WSL 關機
wsl --shutdown
  1. 進入 diskpart
diskpart
  1. 選擇虛擬磁碟

請替換 user 為自己的使用者名稱
並且依 linux 版本不同 CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc 會有所不同。

虛擬磁碟可以在這裡找到 C:\Users\ user \AppData\Local\Packages\ CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc \LocalState\ext4.vhdx

select vdisk file="C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx"
  1. 以只讀模式附加磁碟
attach vdisk readonly
  1. 壓縮虛擬磁碟
compact vdisk
  1. 卸載虛擬磁碟
detach vdisk
  1. 離開 diskpart
exit

磁碟空間已經釋放後,重新啟動 WSL。