【WSL2環境移行】wsl –importでLinuxディストリビューションをバックアップから新しいWindowsへ復元する完全ガイド

Windows

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環境を構築し、日々の開発や業務自動化に役立ててください。

コメント

タイトルとURLをコピーしました