なんかてきとうに

わりと個人的な忘備録的ですよ。

Windows10 の WSL で動かせる環境を増やす

WSLでUbuntuやKali LinuxDebianが動くようになりましたが、 Ubuntu を複数立ち上げても、すべて同じUbuntu環境になります。 topコマンドを複数立ち上げたUbuntuで実行してみるとわかるでしょう。

諸事情により、複数のUbuntu環境が欲しいような場合のやり方。

環境を見る

レジストリHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss 配下に 各WSL環境情報が入っています。 UUIDのキーが存在し

BasePath
DefaultUid
DistributionName
Flags
State
Version

などの情報が入っています。

環境を作る

  1. DistributionNameから、元となるインストールされたWSL環境を推測します。
  2. BasePathに書かれているパスを開きます。
  3. そこにあるファイル、フォルダをすべて、任意の(新しい環境を作りたい)場所にコピーします。
  4. レジストリに新しいUUIDなキーを作ります(素のやつの末尾を1文字変えるとかでいいでしょう)
  5. 上記6個の値を同じ用に作成します、ただしBasePathDistributionNameは値を変更します。
  6. BasePathをファイルをコピーした先にします。
  7. DistributionNameは他と被らない一意の名前にします。

これで新しい環境ができました。

同じようにいくらでも環境が増やせます。(上限はあるかもしれません)

作った環境を動かす

  1. コマンドプロンプトから wslconfig /l と実行します。
  2. リストの中にDistributionNameで指定したものがあるのを確認します。
  3. コマンドプロンプトから wslconfig /s 上記で確認した名前 と実行します。
  4. コマンドプロンプトからbashと実行します。

これで新しい環境が実行できているはずです。

作成した別の環境を動かしたい場合は、新しいコマンドプロンプトを起動して 同じ操作を繰り返します。

おわりに

任意のDistributionNameを持つものを起動させる方法もありそうですが、まだ見つけられていません。

見つかると作った環境を動かす手間が減って良いなぁと思っています。

知っている方いたら教えてください。