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