WSL2で利用しているディストリビューション環境を丸ごと別PCのWSL2に移行しようというもの。たまにしか確認しないので、現状での最新情報としてメモしておく。基本は、ディストリビューションのインポートとエクスポート | WSL の基本的なコマンド | Microsoft Learnのコマンドを実行なんだけど、.vhdx
ファイルを直接コピーでもいける。
移行元PCでの作業
移行先でデフォルトユーザーを引き継ぐ場合は、あらかじめ移行元PCのWSLで/etc/wsl.conf
を用意して移行すると、最初から同じユーザーで開始できる。
# /etc/wsl.confがなければ作成
cd ~/etc/
sudo touch wsl.conf
sudo chmod +x wsl.conf
wsl.confに下記の書式で利用したい{ユーザー名}を記載しておく。
[user]
default = {ユーザー名}
移行元PCで下記コマンドをPowerShellかコマンドプロンプトで実行し、WSL環境を停止する。
# ディストリビューションと起動状況の確認
wsl --list --verbose
# ディストリビューションの停止(ディストリビューション名を"Ubuntu"として記載)
wsl --terminate Ubuntu
WSL環境を停止したら、下記フォルダ内にあるext4.vhdx
ファイルをコピー。
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
なお、「CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc」フォルダ名の「Ubuntu」に相当する箇所にディストリビューション名があてはまる。例えば、ディストリビューションがUbuntu 22.04 LTSなら、「CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc」のようになる。
移行先PCでの作業
ext4.vhdx
ファイルを移行先PCのC:\wsl
フォルダにコピーした場合、下記コマンドをPowerShellかコマンドプロンプトで実行する。
# WSLのインストール
wsl --install
# ディストリビューションのインポート
wsl --import-in-place Ubuntu C:\wsl\ext4.vhdx
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)