WSL2 のディスクサイズを削減する

私の Windows 10 のラップトップのディスクが１００％に近付いてきた。この状況を解決するために、WSL2側のディスクサイズを削減したので、その手順を記録しておく。

# ディスクを消費している箇所を特定する

設定をクリックし、Storage で検索する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/b22521d8-d6a2-9d3a-cd8c-5be2e8a02afa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/638e4d57-1495-8d4b-4f6c-cecb1d58011c.png)

結構消したけど、Apps & features と Other の領域が多くを使っている様子。
Apps & features の方を見てみると、WSL2 が 80G 近く使っていることがわかる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/88ae8bee-7d05-372d-4046-671f58889a3e.png)

この元から入っているツールを見ながら沢山サイズを食っているところを削除していけばよい。私の場合だと、もう使っていない `.android` とかのサイズが大きかったので消したのと、開発環境や、不要のアプリを消した。

# WSL2 はディスクの掃除をしてもサイズが減らない

WSL2 のアプリのディスク消費は、残念ながらWSL2内部でファイルを消してもサイズが小さくならないとのこと。PowerShell の Windowを上げてみる。

## VHDファイルを見つける

`*Ubuntu*` でフィルタしてあげると、自分の WSL2 が見つかる。ここで注意したいのは、`CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc` このパッケージフルネームの場合 `C:\Users\tsushi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState` に vhd ファイルが存在する

```powershell
Get-AppxPackage -Name "*Ubuntu*"
Name              : CanonicalGroupLimited.Ubuntu18.04onWindows
Publisher         : CN=23596F84-C3EA-4CD8-A7DF-550DCE37BCD0
ResourceId        :
Version           : 2020.1804.7.0
PackageFullName   : CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc
InstallLocation   : C:\Program
                    Files\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_2020.1804.7.0_x64__79rhkp1fndgsc
IsFramework       : False
PackageFamilyName : CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
PublisherId       : 79rhkp1fndgsc
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
Status            : Ok
Name              : CanonicalGroupLimited.Ubuntu20.04onWindows
Publisher         : CN=23596F84-C3EA-4CD8-A7DF-550DCE37BCD0
Architecture      : X64
ResourceId        :
Version           : 2004.2020.812.0
PackageFullName   : CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_x64__79rhkp1fndgsc
InstallLocation   : C:\Program
                    Files\WindowsApps\CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_x64__79rhkp1fndgsc
IsFramework       : False
PackageFamilyName : CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc
PublisherId       : 79rhkp1fndgsc
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
Dependencies      : {CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_neutral_split.scale-100_79rhkp1fndgsc}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
```
## VHD を最適化する

見つけたVHDを見てみよう。がっつり 82G ぐらい確保されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/280a6093-b63e-245d-0e5e-94291a387771.png)

最適化しよう。まず WSL を停止させてしばらく待ってから、最適化を行う。

```powershell
wsl --shutdown
optimize-vhd -Path C:\Users\tsushi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode full
```

ちなみに再起動はこちら

```powershell
PS C:\Users\tsushi> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
docker-desktop
Ubuntu-20.04
docker-desktop-data
PS C:\Users\tsushi> wsl -d Ubuntu-18.04
```

うむ。小さくなった。もっとWSL2側のファイルを消してから実施したらもっと小さくなりそう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/b145d787-f6d5-10b2-eabe-080c763ecaff.png)

まずは 50G 程度あけることに成功した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/10594868-b327-d2fd-d172-f5d0dc7e9f3e.png)

Docker イメージを削除してディレクトリも消した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/3507bb4e-d95a-1c84-e73f-c1ea6beae927.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470/9867ae1b-e474-55dc-e20e-b80824cb51b0.png)

# 参考

* [Reduce WSL2 disk size](https://blog.suraj-mittal.dev/reduce-wsl2-disk-filesize/)