Windows10HomeのWSL2でディスクを解放する方法


環境

研究活動でLinux(Ubuntu)のほうが使い勝手がいいということで、Windows10HomeにWSL2を使ってUbuntuをインストールして使っていました。
使い始めは問題なかったのですが、研究分野の事情で大容量のデータを扱うことに...
全く気にせずに使っていたらいつの間にか.vhdxが100GBくらい使っていました。
どうやらWSL2はディスク容量をホストに返してくれないらしいです。
どうしたものかと調べていたら、Hyper-Vを有効にして
.vhdxを最適化しろ、とのこと。しかし、こちらはWindows10Home、Hyper-Vがない‼
ということで、いろいろと困ったので一応メモしておきます。

Windows10Homeでのディスク解放

-とりあえず、管理者権限でPowerShellを実行する。そして、WSL2を停止する。

>wsl --shutdown

-diskpartを起動する。

>diskpart

-次に*.vhdxファイルのパスを指定

DISKPART>select vdisk file="C:\Users\[user_name]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
DISKPART>attach vdisk readonly

-最適化して終了

DISKPART>compact vdisk
DISKPART>detach vdisk
DISKPART>exit

これで、WSL2が余分なディスク容量を解放してくれる。

ふぅ、めんどくさい。