0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2を使っている時のディスク圧迫されたときの解放手順

Last updated at Posted at 2025-06-26

ディスクの圧迫・・・

私はwindows+wsl2の環境でdockerを動かしています。
ビルドイメージが1GBくらいあるので毎回ビルドするたびにディスクの空き容量が減っていきます。
この前開放する前までは容量がいっぱいになってしまい、正常に動作しないケースがあり大変でした。

そこで今回は、WSL2のUbuntu環境が肥大化したときに容量を削減する方法をまとめました。
{5777C76D-4207-4A8C-8B24-4BC1463CE959}.png

概要

  • Docker のキャッシュなどで肥大化した WSL2 のディスクを削減
    ^ ext4.vhdx(WSLの仮想ディスク)をコンパクト化
  • PowerShellとUbuntuを使って作業します

解放手順

1. Ubuntu を起動

インストールされているUbuntuを起動させます。
{2308567C-47BD-4303-97C0-2C0D2A5DFB4C}.png

2.使用していないイメージ、コンテナの削除

docker image prune -a -f
docker container prune -f

3.Dockerの不要なファイルを削除

まず、dockerのファイルがどこにあるのか確認しましょう。
以下のコマンドを実施して

sudo ls /var/lib/docker

以下のような結果が出てくると思います。

sudo ls /var/lib/docker
buildkit  containers  engine-id  image  network  overlay2  plugins  runtimes  swarm  tmp  volumes

※dockerフォルダ毎消すことになるので再構築が必要になります。イメージ、コンテナだけ削除で容量が空く場合は削除しなくても良いと思います。
dockerフォルダ以下を削除します。

sudo rm -rf /var/lib/docker

4. PowerShell を開く

PowerShell を開いてください。

5. Ubuntu のパッケージ名を確認

以下のコマンドを実行し、パッケージ名を確認します。

Get-AppxPackage -Name "*Ubuntu*"

PackageFullNameという項目があります。

PackageFullName: CanonicalGroupLimited.Ubuntu20.04LTS_2004.6.16.0_x64__79rhkp1fndgsc

6. ext4.vhdx のパスを確認

エクスプローラーでPackagesまでたどりましょう

C:\Users\<ユーザー名>\AppData\Local\Packages

その中に先ほどのPackageFullNameと同じフォルダが確認できます。
{9C4607F2-5D01-4EEC-9069-75FC56F01413}.png

その中のLocalStateext4.vhdxがあるのを確認できます。
{D029368A-53AA-497D-B9A0-77F90505C557}.png

このアドレスをコピーしておきましょう。以下のようになると思います。

C:\Users\<ユーザー名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

7. WSLをシャットダウン

poweshellにて以下のコマンドを実行してシャットダウンします。

wsl --shutdown

8. 仮想ディスクを選択して圧縮

powershellにて以下のコマンドを実行します。

diskpart

select vdisk fileコマンドを実行します。file=以降は先ほどコピーしたアドレスです。

select vdisk file="C:\Users\<ユーザー名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"

その後、以下のコマンドを実行していきます。successfully ~~~のログが出ていたらOKです。

attach vdisk readonly
compact vdisk
detach vdisk
exit

9. ディスクの確認

ここまで完了して、ディスクを確認してみます。
20GBほど容量が空いていることが分かります。
私は以前WSLが300GBほど使っていたことがあったのでその際はかなり助かりました。
{5FBFDF45-3142-4252-B5BE-141F1C411984}.png

ディスク圧迫で困っている方がいらっしゃったらぜひ試してみてください。

参考

https://qiita.com/Yorozuya59/items/6aadee6bb6108e08741d
https://qiita.com/TsuyoshiUshio@github/items/7a745582bbcd35062430

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?