WSL2のストレージ使用量を減らす(vhdxファイルの手動シュリンク)
Ubuntu (%localappdata%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx) 等のディストリビューション以外にも、Docker Desktop (%localappdata%\Docker\wsl\data\ext4.vhdx) などに使える 事前に
wsl --shutdown する
wsl --manage [シュリンクしたいディストリビューション名] -s false しておく
していないと「仮想ハード ディスク ファイルの圧縮と暗号化が解除されている必要があります。」のエラーになる
Optimize-VHD コマンドを使う場合
「Windows の機能の有効化または無効化」からHyper-Vを有効にしていることを確認する
していなければ有効にする (再起動を要求される) か Diskpart を使う
サービスから Hyper-V Virtual Machine Management を起動していることを確認する
していなければ起動する
PowerShell を管理者権限で開いて、該当フォルダに行って optimize-vhd -Path "ext4.vhdx" -Mode Full する
Diskpart コマンドを使う場合 (Hyper-V を有効にしなくてもよい)
管理者権限で PowerShell かコマンドプロンプトを開いて diskpart を実行する
以下を1行ずつ実行
code:txt
select vdisk file="(vhdxファイルのフルパス)"
compact vdisk
exit