2
1

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 2024-03-31

はじめに

とあるゲームをインストールしようとした際にディスク容量が足りないとの警告が.確かに,ストレージに元々それ程の容量がある訳ではありませんでしたが,それでも130GBくらいはあったはずなのに……
ということで,容量を確認したところ,ほんの30GB程度しか残っていませんでした.
いつの間に使い果たしたのやら?

原因究明

とりあえず簡単に,可能性が高いと思われるアプリのサイズを確認してみました.(ストレージ全体を調査するのは時間がかかるので.)
設定 > アプリ > アプリと機能 > アプリの一覧から確認したところ,何とUbuntu 22.04.3 LTSのサイズが130GBも!

image.png

このサイズを見て,直ぐに1つ思い当たる原因が……
過去に一度やらかしており,Docker関連のディスク容量の圧迫を疑いました.そこで,使用していないimageやcontainerなどを削除するコマンドを実行しました.

docker_prunes
~$ yes | docker container prune
~$ yes | docker image prune 
~$ yes | docker volume prune 
~$ yes | docker network prune 
~$ yes | docker builder prune 

docker_system_df
~$ docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          0         0         0B        0B
Containers      0         0         0B        0B
Local Volumes   17        0         2.56GB    2.56GB (100%)
Build Cache     0         0         0B        0B

これで無事にディスクサイズが削減されたはず!
ということで,確認してみたところ……

image.png

減っていない!(画像は上のコピペです.驚きでスクショを忘れていました.)

【2024.4.1 追記】docker system dfで表示されていたディスク使用量は80GB近くあったので,上記のような作業をしました.その時のコピペはありませんが……

【本題】WSL2の容量開放

結論から述べると,WSL2のディストリビューション内の容量を削減してもWSL2自体が使用するディスク容量は変わらないようです.詳細な手順については参考文献を以下に掲示するので,そちらを参照されてください.

一応,私の環境でのコマンドも示しておきます.

(参考文献中でも言及されていますが)以下のコマンドを実行することでWSL2が起動しなくなる可能性があります.
各環境によって適切な操作が異なる可能性が高いため,コマンドの意味を理解した上で,(可能ならバックアップも取って)実行するようにしてください.

まずはWSL2のシャットダウンをおこないます.

wsl_shutdown
~$ wsl --shutdown

また,後のために,自身の環境にインストールされているディストリビューションの情報を確認しておきます.

check_distribution
~$ Get-AppxPackage -Name "*Ubuntu*"
Name              : CanonicalGroupLimited.Ubuntu
Publisher         : CN=23596F84-C3EA-4CD8-A7DF-550DCE37BCD0
Architecture      : X64
ResourceId        :
Version           : 2204.3.49.0
PackageFullName   : CanonicalGroupLimited.Ubuntu_2204.3.49.0_x64__79rhkp1fndgsc
InstallLocation   : C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2204.3.49.0_x64__79rhkp1fndgsc
IsFramework       : False
PackageFamilyName : CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc
PublisherId       : 79rhkp1fndgsc
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {CanonicalGroupLimited.Ubuntu_2204.3.49.0_neutral_split.scale-100_79rhkp1fndgsc}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

次に,diskpartを起動します.

run_diskpart
~$ diskpart

起動したdiskpartで以下のコマンドを実行します.

以下のコマンドの内,環境に依存する(と思われる)箇所については<>で示しています.

on_diskpart
~$ select vdisk file="C:\Users\<user_name>\AppData\Local\Packages\<PackageFamilyName>\LocalState\ext4.vhdx"
~$ attach vdisk readonly
~$ compact vdisk
~$ detach vdisk
~$ exit 

以上を実行してから確認すると……

image.png

無事に,ディスク容量が開放されました!(100GB近くも!)

最後に

ディストリビューション内のディスク容量を削減してもWSL2自体のディスク容量が削減されないという仕様は,寡聞にして知りませんでした.(なぜそんな仕様に?)
また1つ勉強になりました.

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?