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の停止

wsl --shutdown

diskpartの起動・圧縮

diskpartの起動.

diskpart

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

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

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

	100% 完了しました
DISKPART> exit

ちなみに

GitHub - mikemaccana/compact-wsl2-disk: A small script for Windows 10 Home users to compact their WSL2 disksA small script for Windows 10 Home users to compact their WSL2 disks - mikemaccana/compact-wsl2-diskGitHub

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

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

参考文献

WSL2 の仮想ディスクを圧縮する