WSL2 (Windows Subsystem for Linux 2) は、Windows環境でLinuxをネイティブに実行できる強力なツールです。しかし、新しいPCへの移行やWindowsのクリーンインストール後など、既存のWSL2環境をまるごと新しい環境へ移したい場面は少なくありません。
この記事では、事前にバックアップしておいたLinuxディストリビューションのtarファイルを、wsl --importコマンドを使って新しいWindows環境に復元(インポート)する具体的な手順を、初心者の方でも迷わず実行できるよう詳細に解説します。この手順をマスターすれば、手間なくWSL2のLinux環境を移行・復旧できるようになります。
WSL2環境移行の前に:なぜwsl --importを使うのか?
WSL2の環境移行にはいくつか方法がありますが、wsl --importコマンドは、既存のLinuxディストリビューションをtarファイルとしてバックアップし、それを別の場所や別のPCに復元する際に非常に強力なツールです。
- 完全な環境移行: ファイルシステム全体をtar形式で保存・復元するため、元の環境を忠実に再現できます。
- 柔軟な配置: インストール先のパスを自由に指定できるため、Cドライブ以外に配置することも可能です。
- バックアップとリカバリ: 万が一のシステムクラッシュや誤操作に備え、定期的なバックアップと復元を容易にします。
前提条件と準備
1. WSL2が有効化されていること
新しいWindows環境でWSL2が利用できる状態になっている必要があります。まだ設定していない場合は、以下の手順で有効化してください。
- Windowsの機能の有効化または無効化から「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」を有効にする。
- WSL2カーネルの更新パッケージをインストールする。
詳細は公式ドキュメントを参照してください。
2. バックアップ済みのLinuxイメージ(tarファイル)を用意する
移行したいWSL2のLinuxディストリビューションが、すでに.tar形式でバックアップされている必要があります。もしバックアップがまだの場合は、以下のコマンドで作成できます。
wsl --export <DistributionName> <FileName>
# 例: wsl --export Ubuntu-22.04 C:\wsl_backup\ubuntu2204_backup.tar
このtarファイルを新しいWindows環境の任意の場所(例: C:\wsl_backup\)に配置しておいてください。
3. 復元先のパスを決める
新しいWSL2環境をどこにインストールするかを決めます。例えば、D:\WSL\Ubuntu-22.04 のようなパスです。このパスは事前に作成しておく必要はありません。wsl --importコマンドが自動で作成します。
wsl --importコマンドの基本
wsl --importコマンドの基本的な構文は以下の通りです。
wsl --import <DistributionName> <InstallLocation> <FileName> [Options]
<DistributionName>: 新しくインポートするディストリビューションの名前です。既存の名前と重複しないように、分かりやすい名前を付けましょう(例:Ubuntu-22.04-Restored)。<InstallLocation>: 新しいディストリビューションのルートファイルシステムがインストールされるWindows上のパスです。ここに仮想ディスクイメージ(ext4.vhdx)が作成されます。<FileName>: インポート元となるバックアップ済みのtarファイルのパスです。[Options]: オプション引数です。例えば、--version 2でWSL2としてインポートできますが、通常はデフォルトでWSL2になります。
ステップバイステップ:Linuxイメージを復元インポートする手順
ステップ1: 既存のWSLディストリビューションを確認する
念のため、現在WindowsにインストールされているWSLディストリビューションを確認します。新しい環境であれば何も表示されないか、ごく基本的なものだけが表示されるはずです。
wsl --list --verbose
または
wsl -l -v
出力例:
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
ステップ2: wsl --importコマンドでLinuxイメージを復元する
準備しておいたtarファイルと、決めておいたインストールパスを使って、wsl --importコマンドを実行します。
実行例:
- バックアップファイル:
C:\wsl_backup\ubuntu2204_backup.tar - 新しいディストリビューション名:
Ubuntu-22.04-Restored - インストールパス:
D:\WSL\Ubuntu-22.04-Restored
wsl --import Ubuntu-22.04-Restored D:\WSL\Ubuntu-22.04-Restored C:\wsl_backup\ubuntu2204_backup.tar
コマンド実行後、しばらく時間がかかります。tarファイルのサイズやPCの性能によって異なりますが、数分から数十分かかる場合があります。完了すると、特にメッセージは表示されず、プロンプトが戻ります。
ステップ3: 復元したディストリビューションを起動し、デフォルトユーザーを設定する
インポートしたディストリビューションは、デフォルトではrootユーザーで起動します。通常の作業のためには、既存のユーザーをデフォルトに設定し直すか、新しいユーザーを作成する必要があります。
3-1. 復元したディストリビューションをrootで起動する
wsl -d Ubuntu-22.04-Restored -u root
これにより、復元したLinux環境がrootユーザーで起動します。
3-2. デフォルトユーザーを設定する
元の環境に存在したユーザー(例: your_username)をデフォルトユーザーとして設定するには、以下の手順を実行します。
まず、/etc/wsl.conf ファイルを編集(または新規作成)します。
nano /etc/wsl.conf
以下の内容を追記または変更します。
[user]
default=your_username
your_username の部分は、元の環境で使用していたユーザー名に置き換えてください。
ファイルを保存してエディタを終了したら、WSLをシャットダウンして設定を適用します。
exit # Linuxシェルを終了
wsl --shutdown # WSL全体をシャットダウン
これで、次回から wsl -d Ubuntu-22.04-Restored または wsl コマンドで、your_username でログインするようになります。
もし元の環境にユーザーが存在せず、新しくユーザーを作成したい場合は、rootでログイン中に以下のコマンドを実行します。
adduser new_user_name
usermod -aG sudo new_user_name # sudoグループに追加(任意)
その後、上記と同様に /etc/wsl.conf を編集して、default=new_user_name と設定してください。
ステップ4: 復元されたことを確認する
再度 wsl --list --verbose コマンドを実行し、新しくインポートしたディストリビューションがリストに表示され、WSL2として動作していることを確認します。
wsl --list --verbose
出力例:
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
Ubuntu-22.04-Restored Stopped 2
これで、新しいWindows環境へのWSL2 Linux環境の復元インポートは完了です。必要に応じて、元の環境で行っていた設定(パスワードのリセット、SSHキーの再設定など)を確認してください。
よくある質問と注意点
インポートしたディストリビューションのバージョンがWSL1になる場合
稀に、wsl --importでインポートしたディストリビューションがWSL1として登録されることがあります。その場合は、以下のコマンドでWSL2に変換できます。
wsl --set-version <DistributionName> 2
# 例: wsl --set-version Ubuntu-22.04-Restored 2
ディスク容量について
wsl --importで作成される仮想ディスクイメージ(ext4.vhdx)は、最初はtarファイルのサイズに近いですが、利用するにつれて動的に拡張されます。インストールパスに十分なディスク空き容量があることを確認してください。
古いディストリビューションのアンインストール
もし古い環境が不要になった場合や、同じディストリビューション名で再インポートしたい場合は、以下のコマンドでアンインストールできます。
wsl --unregister <DistributionName>
# 例: wsl --unregister Ubuntu-20.04
注意: このコマンドはディストリビューションを完全に削除します。実行する前に必要なデータがバックアップされていることを確認してください。
まとめ
wsl --importコマンドは、WSL2のLinux環境をバックアップから復元したり、新しいWindows環境へ移行したりするための非常に強力で便利なツールです。この記事で紹介した手順を踏むことで、複雑な作業をすることなく、あなたの開発環境をスムーズに移行・復旧させることができます。
この知識を活用して、より柔軟で堅牢なWSL2環境を構築し、日々の開発や業務自動化に役立ててください。


コメント