@ledsun blog

無味の味は佳境に入らざればすなわち知れず

WSL2のディスクサイズを縮小する手順

WSL2のディスク(.vhdx)は動的拡張です。使っていると段々大きくなっていきます。 WSL内のファイル削除しても、Windowsからは空き領域が検知できずvhdxファイルの物理サイズは縮まりません。 exportで実データをtarに書き出す。importで再作成すると、未使用領域を除いた状態でvhdxを再作成できます。

事前準備

WSL内を掃除

sudo apt clean
sudo apt autoremove
docker system prune -a

TRIM

sudo fstrim -av

縮小手順

WSLを停止

wsl --shutdown

export

wsl --export Ubuntu D:\backup\ubuntu.tar

補足

  • pax format cannot archive sockets無視してOK(正常)
  • 実データ量だけtarになる

既存WSL削除

wsl --unregister Ubuntu

新しい保存先を作成

Microsoft StoreからインストールしたUbuntuはC:\Users\<ユーザー>\AppData\Local\Packages\...を使っています。 importするときは、使用ディレクトリを指定します。

mkdir C:\wsl\ubuntu

import

wsl --import Ubuntu C:\wsl\ubuntu D:\backup\ubuntu.tar --version 2

新しい ext4.vhdx が作られる

デフォルトユーザー復元

import後はrootになるので修正

sudo nano /etc/wsl.conf

内容:

[user]
default=ledsun
wsl --shutdown