0
0

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】データ領域(vhdx)を圧縮する

Posted at

概要

WSL2(Windows Subsystem for Linux 2)を使って開発をしていると、Windows上でLinuxのファイルシステムを管理するvhdxファイルが肥大化していきます。放っておくと40GBとか超えちゃう上に、内部のファイルを掃除しても自動で縮小してくれないので、定期的にダイエット操作をしましょう。

Dockerリソースの削除を伴うので、場合により環境建て直しになっても困らないような、暇なときにやりましょう。

あらかじめDocker絡みのダイエットを行う

【Docker】いろいろpruneしてストレージを掃除するにしたがって、Dockerリソースの削除を実行しておきます。

WSLを停止する

管理者として実行したPowershellでwsl --shutdownを実行します。

vhdxファイルの在処を確認する

ユーザー毎のフォルダ配下、Appdata内にあるようです。手元のPCではC:\Users\<username>\AppData\Local\Docker\wsl\dataでした。Appdataフォルダはエクスプローラで隠しファイルを表示するよう設定していないと見えないので、適宜設定してください。

diskpartで圧縮

Powershellでdiskpartを実行して、diskpartのプロンプトを開きます。

diskpartで、以下の通り実行します。vdisk云々は、Windowsの仮想ディスク(vhd/vhdx)をローカルシステムにマウントして操作できるコマンドです。

select vdisk file="C:\Users\<username>\AppData\Local\Docker\wsl\dataext4.vhdx" # 実際にファイルがあるところに読み換えてね
attach vdisk readonly
compact vdisk # 圧縮が走る
detach vdisk
exit

ここまで実行したら、vhdxファイルが圧縮されているはず。今回、手順を記録しながら実施した結果、vhdxファイルのサイズは43GB→11GBになりました。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?