Windows謹製WSLのバージョンが上がってかなり使いやすくなったのとこと。これまではVirtualBOX+Vagrantでテスト環境を作成していたのですが、WSL2を試して問題なければ移行しようかなと。
ということで早速WSL2を試していこうと思います。
PowerShellをアップデートする
標準でインストールされているPowerShellを起動すると、「アップデートしてください。」な感じのメッセージが表示されていました。Ctrlキーを押しながら表示されたURLをクリックします。
するとバージョンアップするためのページに飛ばされるので、ページに書かれている内容を確認しながらアップデートします。
インストーラーをmsi形式、zip形式から選択してダウンロードします。ちなみにGithubからもダウンロードできます。(今時点ではバージョン7.2.5がReleasedでした。)
インストールが終わったらWindows Terminalを開きます。聞き慣れていないかもしれませんが、コマンドプロンプトやPowerShellとはまたちょっと違ったものになります。Windows Terminalが起動しない場合はWindowsのストアから再インストールしてみてください。

このWindowsTerminalはコマンドプロンプトやPowerShellをタブで切り替えて表示することができ、とても便利です。GitBashを追加して使うこともできます。
WindowsTerminalを起動したら、タブの横にある下向きの三角マークをクリックして「Windows PowerShell」ではなく、「PowerShell」と書かれている方をクリックします。すると、先程インストールしたPowerShellが新しいタブで開かれます。

PowerShellとWindowsTerminalの準備はここまでです。次はHyper-Vなどの仮想化関係の機能を有効化します。
Windowsの機能でHyper-Vを有効化する
「Windowsの機能」から、Hyper-V、Linux用Windowsサブシステム、仮想マシンプラットフォームにチェックを入れます。


再起動を促されるので従います。
ここまででようやく下準備完了です。
WSLのインストール
まずはデフォルトのwslバージョンを2にしておきます。
> wsl --set-default-version 2それではLinuxをインストールします。
Windows11は下記コマンドでインストール可能なディストリビューションを確認できます。
> wsl --list --online–install -d オプションでディストリビューションを指定できますが、何も指定しない場合はUbuntuが選択されます。今回はUbuntuをインストールします。
> wsl --install -d Ubuntu最初にインストールした際、Ubuntuが起動すると「プロセスレコード1で終了しました。」と表示されて起動できませんでした。
そこで、エラー表示にあったURLから64bit用のカーネルをダウンロードしてインストールしたところ、起動できるようになりました。(ですが、完全な解決策なのか不明です…。)
とりあえず初期ユーザーとパスワードを入力して、一旦ログアウトしました。その後、PowerShellから下記コマンドでUbuntuのシェルに入れるか試します。
> wsl -u (作成したユーザー名)ログインできれば成功です。インストールされているディストリビューションが一つだけなら、”wsl”と入力するだけでもログインできます。
インストールはこれで完了なのですが、このままではSystemctlコマンドが使えません。なので次回はSystemctlコマンドを使えるようにしていきます。
(バージョンアップで使えるようになったようです。)

コメント