WSL環境をバックアップしてみた

2026年8月14日

 

今回は、万が一WSL環境が壊れた時に備えて、バックアップ(とリストア)をやってみたいと思います。

 

1. 環境のバックアップ

PowerShell上で実行します。

WSLはシャットダウンしておきましょう。

PS C:\windows\System32> wsl --shutdown

インストールされているディストリビューションの名前を確認します。

PS C:\windows\System32> wsl -l -v
NAME STATE VERSION
* AlmaLinux-9 Stopped 2
Ubuntu Stopped 2

今回はUbuntuをバックアップします。

「wsl –export」の後に、上記で確認したディストリビューション名(NAME列)と、バックアップのファイル名を指定します。

PS C:\tmp> wsl --export Ubuntu ubuntu.tar
エクスポートが進行中です。これには数分かかる場合があります。 (1506 MB)

この操作を正しく終了しました。
PS C:\tmp>

Ubuntuがディストリビューション名、ubuntu.tarがバックアップのファイル名です。

約1.5GBくらいの容量を要しますね。

 

2. 環境のリストア

次はリストアしてみます。

まず、バックアップ後の変更点が分かるように、適当なテキストファイルを作成します。

minyaneko@Ubuntu:~$ vi test.txt
minyaneko@Ubuntu:~$ ls
test.txt

そしてWSLをシャットダウンします。

PS C:\tmp> wsl --shutdown

先ほどバックアップしたファイルをリストアしてみます。

PS C:\tmp> wsl --import Ubuntu C:\tmp\WSL C:\tmp\ubuntu.tar
指定された名前のディストリビューションは既に存在します。--name を使用して別の名前を選択してください。
エラー コード: Wsl/Service/RegisterDistro/ERROR_ALREADY_EXISTS

あれ?インポートできない・・・。

どうやら、同じディストリビューション名でインポートしようとすると、名前が重複するのでできないようです。

同じ名前のディストリビューションにする場合、一度、既存のディストリビューションを登録解除しないといけません。ただ、これは既存のディストリビューションが消えてしまうので注意。

PS C:\tmp> wsl --unregister Ubuntu
登録解除。
この操作を正しく終了しました。

再度インポートします。

PS C:\tmp> wsl --import Ubuntu C:\tmp\WSL C:\tmp\ubuntu.tar
この操作を正しく終了しました。

ところで、この時tarファイルと同じところにvhdx形式のファイルができます。

tarファイルがアーカイブファイルなのに対し、vhdx形式のファイルは仮想ファイルディスクのようなものになります。

vhdx形式ファイルの方がtarファイルより若干容量が多いです。

vhdx形式のファイルは、インポートする前はC:\Users\[ユーザ名]\AppData\Local\Packagesの下にあるそうですが、wsl –unregisterで登録解除した時点でそれが削除され、tarファイルをimportした時点でtarファイルと同じ場所に作成されるようです。

再度Ubunuを起動します。

PS C:\tmp> wsl -d Ubuntu
minyaneko@Ubuntu:/mnt/c/tmp$

あれ、ディレクトリがvhdxのディレクトリに変わってる・・・。

それはともかく、先ほど作成したファイルがあるかどうか確認します。

minyaneko@Ubuntu:/mnt/c/tmp$ cd
minyaneko@Ubuntu:~$ ls
minyaneko@Ubuntu:~$

ファイルが無いので、バックアップしたtarファイルがリストアできたようです。