びぃえるくぅと。

ガラケーは打楽器。

WSL2 でどうしても RHEL を動かしたかった

宗教上 Debian 系が使えないため。

基本的には https://docs.microsoft.com/en-us/windows/wsl/use-custom-distro に記載の通りの手順を踏むので、ほぼ雑和訳です。参照元CentOS を前提にしている個所を RHEL に読みかえています。

試した環境

  • Windows 11 Pro (10.0.22000 Build 22000)

前提

  • WSL2 がすでに有効化され、Ubuntu がインストールされていること
  • Docker Desktop がインストールされており、下記の設定が反映されていること
    • Settings > General > "Use the WSL 2 based engine" にチェックが入っている
    • Settings > Resources > WSL Integration > "Ubuntu" が有効化されている

手順

  1. WSL2 で Ubuntu 環境に入る
  2. docker run -t redhat/ubi8 bash ls / でいったん動かす
  3. dockerContainerID=$(docker container ls -a | grep -i redhat/ubi8 | awk '{print $1}') でコンテナ ID を取得する
  4. docker export $dockerContainerID > /mnt/c/お好きなディレクトリ/rhel8.tar で TAR ファイルを生成する
  5. Ubuntu から抜けて WindowsCUI 環境に戻る
  6. RHEL の置き場所となるディレクトリ(ここでは C:\wslrhel8 とする)を作る
  7. wsl --import RHEL8 C:\wslrhel8 C:\お好きなディレクトリ\rhel8.tar で RHEL8 をインポートする
  8. wsl -d RHEL8 で RHEL8 環境に入る
  9. dnf install sudosudo をインストールする
  10. adduser -G wheel yourusername で普段使いのユーザーを追加する
  11. echo -e "[user]\ndefault=yourusername" >> /etc/wsl.conf をすることで、Windows 側で bash と打って RHEL8 に入る際のユーザーを yourusername にする
  12. RHEL8 から抜けて WindowsCUI 環境に戻る
  13. wsl --terminate RHEL8 で一回 RHEL8 を殺す
  14. 再び wsl -d RHEL8 で RHEL8 環境に入り、ユーザーが yourusername であることを確認する
  15. 必要に応じて sudo subscription-manager registersudo subscription-manager attachsudo dnf update などをする

RHEL8 のインポート後になんか設定ミスった気がして吹っ飛ばしたくなったら

  1. wsl --unregister RHEL8 を実行する
  2. もう一度 wsl --import ... からやり直す

よく分からなかったこと

  • 参照元では Ubuntu に入った後に sudo service docker start しているが、自分の環境だと不要だった(というか docker: unrecognized service と怒られた)
Copyright © 2015 Yadex205