WSL2で任意のディストリビューションを追加したり消したり
ディストリビューションという呼び方が正しくない気がして分かりづらいのですが、やりたいことは単純です。
既存のUbuntuとは別に、Ubuntuの入ってる任意の名前の付けたWSL環境が欲しいってことです。
コマンドを確認する
WSLを管理するコマンドはwslです。
たぶんwslを最初に使うときに、wsl -l -vとかやってると思うので、あーあったあったとなると思います。
これのコマンドのうち、任意のディストリビューションを作るっぽいオプションを探します。
(前略)
Linux 用 Windows サブシステムを管理するための引数:
--export <ディストリビューション> <FileName>
ディストリビューションを tar ファイルにエクスポートします。
標準出力の場合は、ファイル名を - とすることができます。
--import <ディストリビューション> <InstallLocation> <FileName> Options
指定した tar ファイルを新しいディストリビューションとしてインポートします。
標準入力の場合は、ファイル名を - とすることができます。
オプション:
--version <バージョン>
新しいディストリビューションに使用するバージョンを指定します。
(後略)
ってことで、importが期待したものっぽい。
説明を読むと、新しい名前でtarファイルのディストリビューションを作ることができそうです。
tarを手に入れる
ここにwslのtarがあったので、
とりあえず最新である20.04を取ります。
ページ内検索でwslって調べると該当するのがいくつかあるとおもう。
CPUの種類で選んで、tar.gzとってこればOK。
ちなみに僕の場合は、intell製CPUやからamd64を選択。
ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz
結構時間かかるので、今のうちにwslの他のオプションを確認しておきます。
ディストリビューションの一覧と削除のコマンド
一覧見る系。
--list, -l Options
ディストリビューションの一覧を表示します。
オプション:
--all
現在インストール中またはアンインストール中のものを含めて
すべてのディストリビューションを一覧表示します。
--running
現在実行中のディストリビューションのみを一覧表示します。
--quiet, -q
ディストリビューション名のみを表示します。
--verbose, -v
すべてのディストリビューションについての詳細情報を表示します。
動いてるのを見るだけなら、wsl -l --runningでいいですし、何も気にせずwsl -lでも良さそう。
バージョンとかまで見たければ、wsl -l -vですかね。
ディストリビューションを消す
--unregister <ディストリビューション>
ディストリビューションの登録を解除し、ルート ファイル システムを削除します。
ルートファイルシステムを削除って恐ろしいこと書かれてますけど、たぶんディストリビューション内の話でしょう。
tarの設置からディストリビューションをimportするまで
色々確認しながらうだうだしてると、ダウンロードが終わるはずです。
手に入ったtar.gzを適当でかつ管理しやすいところに置きます。
僕はwsl関連をC:\wslに置くことにしました。
あと、vmの中身を吐く場所がいるので、それも作っておきます。
僕はC:\wsl\distributions\にしました。
以上を踏まえて、ディストリビューションを作成します。
wsl --import ubuntu-test C:\wsl\distributions\ubuntu-test C:\wsl\ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz --version 2
和約すると、C:\wsl\ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gzを使って、
ubuntu-testという名前のディストリビューションを作るよ。
ubuntu-testの実体はC:\wsl\distributions\ubuntu-testに出すよ。
WSLのバージョンは2にするよ。
といった感じです。
すると、ubuntu-testというディストリビューションが作られているはず。
> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
ubuntu-test Stopped 2
そして、つくったのに入れたらOK
> wsl -d ubuntu-test
-dはディストリビューション指定
最後にお掃除
一応消すのも試しとく
> wsl --unregister ubuntu-test
登録を解除しています...
> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
消えてるね、OKそう。
更新履歴
2020/07/20 公開