Windows11 の wsl2 へ RHEL10 をインストールして VSCode で利用する

Table of Contents

背景

前々から wsl2 上で RHEL10 を利用していたが、別の Windows11 の端末の wsl2 上にもインストールすることになったので、手順をメモ。
VSCode で直接 wsl2 を操作できるので、開発が捗る。と思う。

手順

wsl2 の有効化

PowerShell を管理者として実行し、以下コマンドを実行。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再起動後に以下を実行。

wsl --install

Activation Key の取得

以下がわかりやすい。
RHEL 10 on WSL2 #redhat - Qiita

概要としては、 RHEL を利用するためのサブスクリプションを無償で利用するため、 Red Hat Developer Program へ参加し、 Red Hat Hybrid Cloud Console から Activation Key の払い出しを行う。
今回利用するのは、個人開発用途の Red Hat Developer Subscription for Individuals を想定。

その他の種類も以下で説明がある。
Getting started with RHEL on WSL | Red Hat Developer

16ノードまで利用でき、個人的に利用する分にはこのサブスクリプションで十分そう。
詳細は以下。

RHEL イメージの作成

Red Hat Hybrid Cloud Console の Image Builder からOSイメージを作成する。
https://console.redhat.com/insights/image-builder から Create image blueprint ボタンを押して、適切な項目を設定していく感じ。

Target environments で WSL を選択し、Registration method では Automatically register to Red Hat Hybrid Cloud Console and enable advanced capabilities. として、先に作成した Activation Key を選択する。

Next で進んでいくと、タイムゾーンやロケール、ホスト名、ログインユーザが Advanced Settings として選択できる。

各種設定を施したら、 Create blueprint & build image(s) を押下して、イメージを作成する。
しばらくすると、 Red Hat Hybrid Cloud Console の画面上からイメージがダウンロードできるようになるので、取得する。

wsl2 を RHEL10 イメージを読み込ませて起動

PowerShell を管理者として実行し、以下コマンドを実行。

wsl --import <DistroName> <InstallLocation> <InstallTarFile>

DistroName は wsl2 が識別する任意の名前をつけ、インストール先とターゲットとなる .wsl ファイルを指定する。
インストール先は Windows 側のパスになるので、事前に mkdir $HOME\wsl などで、適当なフォルダを作成するのがよさそう。

また、次回の wsl2 の起動時にデフォルトで今回の RHEL10 を利用したい場合には以下も実行しておく。

wsl -s <DistroName>

さらに、先のイメージ作成時に Advanced settings でログインユーザを作成している場合には、デフォルトのログインをそのユーザに設定することも以下コマンドで実施可能。

wsl --manage rhel10 --set-default-user <UserName>

具体的な作業ログ
PS C:\WINDOWS\system32> mkdir $HOME\wsl


    ディレクトリ: C:\Users\gryu7


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2026/05/19     21:40                wsl


PS C:\WINDOWS\system32> wsl --import rhel10 $HOME\wsl C:\Users\gryu7\Downloads\composer-api-362e5f5c-4274-48ab-a95c-504f97d3f7ff-image.wsl
この操作を正しく終了しました。
PS C:\WINDOWS\system32> wsl -s rhel10
この操作を正しく終了しました。
PS C:\WINDOWS\system32> wsl --manage rhel10 --set-default-user gryu7
この操作を正しく終了しました。
PS C:\WINDOWS\system32> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
rhel10 (既定値)
Ubuntu
PS C:\WINDOWS\system32> wsl
[gryu7@hostname system32]$

ちなみに、 Activation Key はイメージに組み込んでいるため、起動初期から subscription-manager に登録されている。

[gryu7@hostname system32]$ sudo subscription-manager status
+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Registered

[gryu7@hostname system32]$

VSCode で wsl2 を開くための設定

PowerShell スクリプトが実行できるようにする

PowerShell スクリプトを実行することで、 wsl2 上の VSCodeワークスペース を開きたいので、以下コマンドを PowerShell の管理者権限で実行して、 PowerShell スクリプトの実行を許可する。

Set-ExecutionPolicy RemoteSigned

VSCodeワークスペース・PowerShell スクリプトの作成

VSCodeワークスペース、および、 Windows 上で実行することで wsl2 上の VSCodeワークスペース を開くためのスクリプトを作成する。

VSCodeワークスペース は wsl2 内に配置する。
hoge.code-workspace みたいなやつ。

{
  "folders": [
    {
      "uri": "vscode-remote://wsl+rhel10/home/gryu7" # エクスプローラで開くフォルダ、 rhel10 の部分は wsl2 の DistroName
    }
  ],
  "remoteAuthority": "wsl+rhel10",
  "settings": {
    ... 中略 ...
    }
  }
}

そして、上記のワークスペースを開くための PowerShell スクリプトを Windows 上に ps1 ファイルで作成する。

Start-Process "code" -ArgumentList "--remote","wsl+rhel10","/home/gryu7/wsl2.code-workspace" -WindowStyle Hidden

上記の ArgumentList で渡している引数のうち、第2引数の rhel10 は DistroName, 第3引数は先に作成した VSCodeワークスペースファイルのパス を指定する。

VSCode が wsl2 へ接続できるように拡張機能をインストール

初回起動時にインストールが促されるが、以下をインストールする。

名前: WSL
ID: ms-vscode-remote.remote-wsl
説明: Open any folder in the Windows Subsystem for Linux (WSL) and take advantage of Visual Studio Code’s full feature set.
バージョン: 0.104.3
パブリッシャー: Microsoft
VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl

感想

  • 商用で利用しているのが RHEL であれば、自宅の環境も RHEL のほうが気持ちよいと思うのでぜひ
  • 以前やったときは image 作成するときに Activation Key 登録できたっけかな・・・便利になっていた気がする
    • デフォルトイメージを突っ込んだだけで、個別の image を作成していなかっただけかも
  • PowerShellスクリプト にしておくと、 Windows 起動時のスタートアップに組み込めたりするので、とても便利

参考