かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Grooy スクリプトをそのまま渡して実行する Spring Boot+Picocli ベースのコマンドラインアプリを作成する ( 番外編 )( ConEmu 上で WSL 2 の Ubuntu-20.04 の bash を起動する+Ubuntu-20.04 の別インスタンスを作成する )

概要

記事一覧はこちらです。

GraalVM で groovy-script-executor の Linux 用の Native Image を作成するために WSL 2 で稼働する Ubuntu-20.04 に容易にアクセスする方法等を調べます。

参照したサイト・書籍

  1. Bash on Ubuntu on Windows (WSL)
    https://conemu.github.io/en/wsl.html

  2. WSL: Am I running version 1 or version 2?
    https://askubuntu.com/questions/1177729/wsl-am-i-running-version-1-or-version-2

  3. Windows への PowerShell のインストール
    https://docs.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2

  4. PowerShell / PowerShell - Releases
    https://github.com/PowerShell/PowerShell/releases/

  5. How to install multiple instances of Ubuntu in WSL2
    https://cloudbytes.dev/snippets/how-to-install-multiple-instances-of-ubuntu-in-wsl2

  6. WSL の基本的なコマンド
    https://docs.microsoft.com/ja-jp/windows/wsl/basic-commands

  7. Developing on Amazon Linux 2 using Windows
    https://aws.amazon.com/jp/blogs/developer/developing-on-amazon-linux-2-using-windows/

  8. yosukes-dev / AmazonWSL - Releases
    https://github.com/yosukes-dev/AmazonWSL/releases

目次

  1. Ubuntu-20.04 を以前インストールはしていたが、WSL 1 or WSL 2 のどちらで動いているのか?
  2. ConEmu で {Bash::bash} を起動しようとすると wslbridge error: failed to start backend process のエラーが出力されて起動しない問題を解消する
  3. Ubuntu-20.04 の別インスタンスを起動する

手順

Ubuntu-20.04 を以前インストールはしていたが、WSL 1 or WSL 2 のどちらで動いているのか?

WSL: Am I running version 1 or version 2? を読むと wsl -l -v コマンドで分かるそうなので実行してみると、Ubuntu-20.04 は VERSION 1(WSL 1) になっていました。

f:id:ksby:20211223041509p:plain

wsl --set-version Ubuntu-20.04 2 コマンドを実行して VERSION 2(WSL 2)に変換します。

f:id:ksby:20211223041739p:plain

ConEmu で {Bash::bash} を起動しようとすると wslbridge error: failed to start backend process のエラーが出力されて起動しない問題を解消する

WSL 2 に変換後、ConEmu で {Bash::bash} を起動しようとすると以下のエラーメッセージが表示されて起動できなくなるので、起動できるようにします。

f:id:ksby:20211223042248p:plain

まず ConEmu の左上のアイコンをクリックしてメニューを表示後、「Settings...」を選択します。

f:id:ksby:20211223043105p:plain

「Settings」ダイアログが表示されるので、左側のツリーから「Startup」-「Tasks」を選択した後、中央のリストから {Bash::bash} を選択し、右側の「Commands」を

  • set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mntwsl.exe -cur_console:pm:/mnt

に変更して「Save settings」ボタンをクリックして保存します。

f:id:ksby:20211223043430p:plain

再度 {Bash::bash} を起動しようとすると今度は無事起動しました。タブのアイコンもペンギンになっていました。

f:id:ksby:20211223043918p:plain

Ubuntu-20.04 の別インスタンスを起動する

作業するのに PowerShell を使用します。PowerShell のバージョンを確認すると 5.1 だったので 7.2.1 にバージョンアップします。

f:id:ksby:20211226201316p:plain

https://github.com/PowerShell/PowerShell/releases/tag/v7.2.1 から PowerShell-7.2.1-win-x64.msi をダウンロードしてインストールします。

ConEmu の {Shells::PowerShell}{Shells::PowerShell (Admin)} の設定を変更します。

f:id:ksby:20211226202256p:plain

  • powershell.exepwsh.exe

f:id:ksby:20211226202602p:plain

  • powershell.exe -new_console:apwsh.exe -new_console:a

f:id:ksby:20211226203107p:plain

D:\WSL\Ubuntu-20.04-2\ ディレクトリを新規作成した後、以下のコマンドを実行して Ubuntu-20.04-2 インスタンスを作成します。

PS> cd D:\WSL\Ubuntu-20.04-2\
PS> Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/releases/hirsute/release/ubuntu-21.04-server-cloudimg-amd64-wsl.rootfs.tar.gz -OutFile $env:TMP\ubuntu-21.04.tar.gz
PS> wsl --import Ubuntu-20.04-2 D:\WSL\Ubuntu-20.04-2 $env:TMP\ubuntu-21.04.tar.gz

wsl -l -v コマンドを実行すると作成した Ubuntu-20.04-2 インスタンスは VERSION 1 になっていたので、wsl --set-version Ubuntu-20.04-2 2 コマンドを実行します。

f:id:ksby:20211227013957p:plain

WSL の基本的なコマンド を見ると wsl --set-default-version コマンドで既定の WSL バージョンを設定できるそうなので、wsl --set-default-version 2 コマンドを実行して WSL 2 がデフォルトになるように設定します。

wsl -d Ubuntu-20.04-2 コマンドを実行すれば作成した Ubuntu-20.04-2 インスタンスに接続できます。

f:id:ksby:20211227015945p:plain

wsl --unregister Ubuntu-20.04-2 コマンドを実行すると作成したインスタンスが削除されます。

f:id:ksby:20211227020305p:plain

履歴

2021/12/29
初版発行。