
こんにちは iizuka です。
今回は WSL2 (Windows Subsystem for Linux 2) で、既存のディストリビューションを複製する方法について紹介します。
なぜ複製するのか?
私の場合は以下のような理由でディストリビューションを分けたくなりました。
-
社内プロジェクト用の環境と、個人で実験する環境を切り分けたい
-
本番用と検証用の設定を分けて管理したい
-
新しいライブラリを試したいけど、既存環境を壊したくない
こうしたケースでは、既存のディストリビューションを コピー して使うのが便利です。
手順
1. 複製元のディストリビューションを確認
まずは現在インストールされているディストリビューションを確認します。
$ wsl --list --verbose
NAME
の欄に表示されたものが利用可能なディストリビューションです。
2. 複製元をエクスポート
次に、複製したいディストリビューションを .tar
ファイルとしてエクスポートします。
$ wsl --export Ubuntu C:\Users\xxxxx\Downloads\ubuntu.tar
Ubuntu
の部分は複製元のディストリビューション名C:\Users\xxxxx\Downloads\ubuntu.tar
は保存先のパス
※エクスポートには数分かかる場合があります。
3. 新しい名前でインポート
エクスポートしたファイルを使って、新しいディストリビューションをインポートします。
$ wsl --import Ubuntu-Copy C:\Users\xxxxx\ubuntu-test C:\Users\xxxxx\Downloads\ubuntu.tar --version 2
Ubuntu-Copy
が新しいディストリビューション名C:\Users\xxxxx\ubuntu-test
がディスクイメージの保存先フォルダ
4. ubuntu-test でディストリビューションがコピーされているか確認
インポートが完了したら、再度一覧を確認してみましょう。
$ wsl --list --verbose
Ubuntu-Copy
が追加されていれば成功です。
5. コピー環境の動作確認
実際に起動してみます。
$ wsl -d Ubuntu-Copy
問題なくログインできれば複製は完了です。
補足: デフォルトユーザーを設定する
コピー直後は root ユーザーでログインする場合があります。
通常のユーザーをデフォルトにするには、以下の設定を行います。
1. 複製したディストリビューションを起動
$ wsl -d Ubuntu-Copy
2./etc/wsl.conf
を編集
$ vim /etc/wsl.conf
内容を以下のように設定
[user]
default={複製元のユーザー名}
3. WSL の再起動
wsl --shutdown
これで次回からは指定したユーザーでログインできます。
注意点
-
ディストリビューションの複製は OSごとコピー するため、ディスク容量を大きく消費します。
-
不要になった環境は適宜削除して管理しましょう。
まとめ
WSL2 では、簡単に既存の環境を複製できます。
-
複製元を
wsl --export
-
新しい名前で
wsl --import
-
必要なら
/etc/wsl.conf
でデフォルトユーザーを設定
ぜひ実験環境や検証用に活用してみてください!