WSL2の肥大化したext4.vhdxの空き領域を開放して、際限なく増えたUbuntuのストレージを適正サイズにする
100GB……?!
ファイルは消したのに、どうして……。
https://scrapbox.io/files/65216b056f744c001c5dd3ee.png
↑仮想ハードディスク(vhdx)
WSL上でUbuntuの内部データを開放しても全体容量は開放されず、こやつが肥大化する……!
ということで、空き領域をちゃんと開放します。
PowerShell(ターミナル)にて、以下のコマンドで一度 WSL: Ubuntu をシャットダウンします。
code:powershell
wsl --shutdown
diskpart.exe を起動します。新しいウィンドウで diskpart が開きます。
code:powershell
diskpart
vhdx のパスを指定します。" "内は好きな場所を選択。
code:diskpart.exe
DISKPART> select vdisk file="C:\wsl\ext4.vhdx"
→「DiskPart により、仮想ディスク ファイルが選択されました。」
書き込み操作できないように attach します。
code:diskpart.exe
DISKPART> attach vdisk readonly
→「100% 完了しました」
→「DiskPart により、仮想ディスク ファイルがアタッチされました。」
ディスクの空き領域を開放(物理サイズを削減)します。
code:diskpart.exe
DISKPART> compact vdisk
→「100% 完了しました」
→「DiskPart により、仮想ディスク ファイルは正常に圧縮されました。」
attach を解除します。
code:diskpart.exe
DISKPART> detach vdisk
→「DiskPart により、仮想ディスク ファイルがデタッチされました。」
diskpart を終了します。
code:diskpart.exe
DISKPART> exit
※実際の様子
https://scrapbox.io/files/6533a506af6b14001c2bbefa.png
以下、私用(diskpartで一括実行)
code:Mdrive-diskpart
select vdisk file="C:\Users\harup\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit