do-release-upgrade
などによるOS本体のアップグレードではなく、 新しいクリーンな環境にユーザーデータだけ移す 方法です。
WSL2をCドライブ外に引っ越しつつ、Ubuntu 22.04 → 24.04 にアップグレードする
最近、Cドライブの空き容量がやたらと少ないことに気づき、「ディスクの使用状況分析ツール」で調査してみたところ、 C:\Users\<ユーザー名>\AppData\Local\Packages\
以下に大きなファイルが多数存在。中でもWSL2の仮想ディスクファイル( .vhdx
)が数百GBを占有していて驚きました。
WSL2はデフォルトでCドライブに仮想ディスクを作成するため、Dドライブや他の高速なストレージに余裕があっても、Cドライブだけが圧迫されがちです。
そこで今回は、 Ubuntu 22.04 から Ubuntu 24.04 に移行しつつ、WSL2をCドライブ外に引っ越し する手順をまとめます。
移行の手順
移行先(Ubuntu 24.04)をインストール(入っていない人のみ)
まずは Microsoft Store から Ubuntu 24.04 をインストールします。
wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Running 2
 Ubuntu-24.04 Stopped 2
Ubuntu-22.04
(旧環境)と Ubuntu-24.04
(新環境)が並んでいることを確認します。
移行先 を Dドライブに引っ越す
Microsoft Store からインストールした Ubuntu-24.04
の仮想ディスクは、デフォルトで C ドライブに配置されてしまいます。
これも D ドライブに移動しましょう。
Ubuntu-24.04をエクスポート
これで現在の Ubuntu-24.04 環境が .tar
としてバックアップされます。
cd D:\wsl2\
wsl --export Ubuntu-24.04 ubuntu-24.tar
Ubuntu-24.04 をアンインストール
エクスポートが完了したら、Cドライブ上の旧インスタンスを削除します。
wsl --unregister Ubuntu-24.04
Dドライブに再インポート
wsl --import Ubuntu-24.04 D:\wsl2\ubuntu-24.04 D:\wsl2\ubuntu-24.tar
これにより、仮想ディスクは D:\wsl2\ubuntu-24.04 に配置されます。
移行元 - $HOME 配下だけをバックアップ
wsl -d Ubuntu-22.04

$ cd /home/your_user_name
$ tar czf /mnt/d/wsl2/home_backup.tar.gz .
移行元 - 念のためディストリビューション全体をエクスポート
保険として、Ubuntu-22.04 全体を .tar
でエクスポートしておきます。
cd D:\wsl2\
wsl --export Ubuntu-22.04 ubuntu-22.tar
移行元をアンインストール
バックアップが完了したら、WSL2から古いディストリビューションを削除します。
wsl --unregister Ubuntu-22.04
移行先へ $HOME を展開
Ubuntu-24.04 を起動し、さきほどバックアップした $HOME
を展開します。
wsl -d Ubuntu-24.04

cd /home/your_user_name
tar xzf /mnt/d/wsl2/home_backup.tar.gz --overwrite
--keep-old-files
を付けることで、既存ファイルを上書きしないようにもできます。
WSLの状態を確認
最後にWSLの状態を確認します。
wsl --list --verbose
NAME STATE VERSION
* Ubuntu-24.04 Running 2
これで、 Ubuntu 24.04 への移行とCドライブからの引っ越しが完了 しました。
おわりに
WSL2の仮想ディスクは想像以上に肥大化しやすく、 Cドライブに置きっぱなしにしておくとシステム全体のパフォーマンスに悪影響を与える 可能性があります。
特に、Windowsの更新やスワップファイル、テンポラリファイルとの競合が起きやすくなり、最悪の場合、OSの動作が不安定になるリスクすらあります。
今回紹介した手順で、 ディストリビューションのアップグレードとストレージ最適化 を同時に行うことが可能です。
そして、筆者が移行先として使用しているのが Intel Optane SSD 905P 。
シーケンシャル速度こそ最新のNVMe SSDには劣るものの、 非常に高いランダムアクセス性能と圧倒的な書き換え耐久性 を持っており、WSL2のように頻繁に細かいI/Oが発生する用途に最適です。