LoginSignup
80
71

WSL 上で同一ディストリビューションの環境を複数インストール・管理する

Last updated at Posted at 2020-07-01

Microsoft Storeから WSL 環境をインストールすると、1種類のディストリビューションは1個の環境としてしかインストールできない(と思う)。
image.png
だが同一ディストロの環境を気軽に複数作ったり壊したり消したり、使い捨てで使いたいこともあるだろう。ターミナルから簡単に環境を複製できるのでやり方を書いておく。

手順

WSL が入っているのは前提とする。まずターミナルで wsl -l --verbose を実行して、手元に存在する環境を確認する。

PS C:\Users\user01> wsl -l --verbose
  NAME                      STATE           VERSION
* Ubuntu-20.04              Running         2
  docker-desktop            Running         2
  docker-desktop-data       Running         2

例えばストアからインストールした Ubuntu-20.04 が入っていれば上記のように出力される。この、環境名 Ubuntu-20.04 としてインストールされている Ubuntu を使い捨て用に複製してみることにする。

WSL のエクスポート機能で、環境を丸ごと tar ファイルとして出力できる。wsl --export (エクスポートしたい WSL 環境名) (出力ファイル名) を実行すればよい。

PS C:\Users\user01\export_distro> wsl --export Ubuntu-20.04 FocalFossa_copy.tar

これで元の Ubuntu-20.04 の環境が tar ファイルとして出力されるので、あとはこれに別の環境名を付けてインポートすれば同一環境が得られる。wsl --import (WSL 下に登録する環境名) (インストール先パス) (インポートする環境.tar) を実行すればよい。

PS C:\Users\user01\export_distro> wsl --import FocalFossa_copy ..\wsl_manual_install\ FocalFossa_copy.tar

これで、指定した環境名で元の Ubuntu-20.04 と同一の環境が複製された。

PS C:\Users\user01> wsl -l --verbose
  NAME                      STATE           VERSION
* Ubuntu-20.04              Running         2
  FocalFossa_copy           Stopped         2
  docker-desktop            Running         2
  docker-desktop-data       Running         2

ターミナルから wsl -d (環境名) と打ち込んで起動してもよいし、もしくは Windows Terminal のタイトルバーの ボタンから表示できる環境リストから選んで起動するなりすればよい。
image.png

PS C:\Users\user01> wsl -l --verbose
  NAME                      STATE           VERSION
* Ubuntu-20.04              Running         2
  FocalFossa_copy           Running         2
  docker-desktop            Running         2
  docker-desktop-data       Running         2

無事、同一ディストロが別名環境として起動している。

なお、インポート時に指定したインストール先に環境の実体であるハードディスクイメージファイル ext4.vhdx が生成されているが、中身は \\wsl$\ 下にマウントされているのでそちらからエクスプローラーでブラウジングすることができる。(※ 実体ファイルは常に ext4.vhdx というファイル名になるので、1つのディレクトリには1つのハードディスクイメージファイルしか作成できず、同じところに複数作ろうとすると 指定されたインストール場所は、既に使用されています。 と出て拒否られる。環境ごとにディレクトリを用意すること。)
image.png
いらなくなった環境を削除したいときは、wsl --unregister (登録名) で削除できる。

わりと簡単に環境を複製・破壊・廃棄できるので、気兼ねなく遊んでみよう!

80
71
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
71