Dyuichi Blog

WSL2の仮想ディスク容量を削減する方法

WSL2の仮想ディスク内のファイルを削除しても,仮想ディスクが1度確保した容量は解放されない(これまじで改善してほしい).

そこで,今回はWSL2が確保した容量を解放する方法を紹介する.

仮想ディスク(VHD)ファイルのパス確認

WSL2 のVHDファイルは Microsoft Store からインストールされた Ubuntu であれば以下のパスにある。ファイルエクスプローラーなどで確認するとよい.

C:\Users\{USERNAME}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_xxxxxxxxx\LocalState\ext4.vhdx

VHDファイルの圧縮

Windows PowerShell か Command Prompt を立ち上げ,以下のコマンドを実行していく.

WSLの停止
powershellwsl --shutdown

diskpartの起動・圧縮

diskpartの起動.

powershelldiskpart

仮想ディスクの選択・圧縮.

powershellDISKPART> select vdisk file="C:\Users\{USERNAME}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_xxxxxxxxx\LocalState\ext4.vhdx"

	DiskPart により、仮想ディスク ファイルが選択されました。
DISKPART> compact vdisk

	100% 完了しました
DISKPART> exit

ちなみに

ここにあるスクリプトを実行するだけでもできるみたい.

動作確認はしていないので自己責任で.

参考文献