WSL2にMIRACLE LINUX 8.4(CUI)を導入してSLを走らせる

WSL2でMIRACLE LINUXを使えるようにしよう。まずはCentOS 8.4をインストールしてから移行ツールで移行します。

注意: この手順では公式に用意されていない手順で行っているためきちんと動く保証はありません。人柱だと思ってください。もちろん無保証です。少なくともsystemdはWSLの都合で使えません。

手順

  • PowerShellを開く
  • WSL2の確認と準備(不必要な事もある)
  • CentOSの導入
  • 移行ツールを使ってのMLへの移行
  • SLを走らせる

PowerShellを開く

スタートメニューの検索窓に、powershellと入力してPowerShellを起動します。下から続くコマンドはすべてPowerShellのウィンドウに打ち込むかコピペしてください。また、行頭の>はプロンプトを表すので、入力しないでください。PowerShellの画面上、行頭にはPS C:\XXXXXX\XXXX>と表示されていると思いますが、その部分を表す為に>と表示しています。

WSL2の確認と準備(環境によっては必要が無い場合があります)

> wsl --set-default-version 2
Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。
詳細については、https://aka.ms/wsl2-install を参照してください

Windowsの機能の有効化または無効化で仮想マシンプラットフォームのチェックが外れていたのでチェックをして再起動しました。

仮想マシンプラットフォームの有効化

もう一度実行すると切り替えができました。

> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
この操作を正しく終了しました。

CentOSの導入

WSL公式にはCentOSが用意されていません。またCentOSの公開されているWSL向けイメージも古いものが多い状況です。その為CentOS 8.4を用意したので使ってみてください。(無保証・β)

まずはCentOS 8.4のイメージをダウンロードして解凍します。

> Invoke-WebRequest https://github.com/tmya/WSL-CentOS8/releases/download/v0.0.1-8.4.2105/centos8.zip -OutFile ((Convert-Path .) + "\\centos8.zip")
> Expand-Archive -Path ((Convert-Path .) + "\\centos8.zip") -DestinationPath (Convert-Path .)

CentOSを導入する為のフォルダを作成します。今回はC:\wsl\ML以下にインストールします。後程MIRACLE LINUXに移行するのでMLという名前にしています。好きな場所でも良いと思いますが、その場合は後に続くコマンドのパスを直してください。

> New-Item -ItemType Directory -Force -Path C:\wsl\ML

NOTE: インポートせずに通常通りWSLでインストールする場合は%homepath%\AppData\Local\Packages\以下になる模様です。

そしてWSLにインポートします。以下の様なメッセージが表示された場合はリンクに従ってパッケージをインストールしてください。表示されなければもう一度このコマンドを実行する必要はありません。

> wsl --import ML c:\wsl\ML .\centos8.tar
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

手順4 - Linux カーネル更新プログラム パッケージをダウンロードする

Kernelのアップデート

もう一度実行するとエラーは表示されません。

> wsl --import ML c:\wsl\ML .\centos8.tar

ディストリビューション一覧を表示してみます。インポートできているようです。

>  wsl -l
Linux  Windows サブシステム ディストリビューション:
ML (既定)

wslコマンドに-dオプションと名前を与えると、そのディストリビューションで起動します。

> wsl -d ML
[root@PC user]#

LINUXらしいプロンプトに切り替わりましたので、LINUXコマンドで確認してみましょう。

# cat /etc/redhat-release
CentOS Linux release 8.4.2105
# pwd
/mnt/c/Users/user

どうやらCentOSになっているようです。カレントディレクトリはWindowsユーザのホームフォルダになっています。作業するのに分かりやすくするためLinuxのホームディレクトリに移動しておきましょう。

# cd
[root@pc ~]#
# pwd
/root

CentOSとして使用する場合はここまでの手順で完了です。

移行ツールを使ってのMLへの移行

移行ツールをダウンロードします。

# curl -LO https://repo.dist.miraclelinux.net/miraclelinux/migration-tool/migrate2ml.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20833  100 20833    0     0  98734      0 --:--:-- --:--:-- --:--:-- 98734

マイグレーションツールを実行します。ブートローダーはありませんし切り替える必要がないので./migrate2ml.sh --minimalでも良いのですが、商標の入ったパッケージの切り替えを行いたいので--coreオプションにしています。そのため最後にgrub2パッケージのエラー表示がありますがおそらく大丈夫だと思います。

# bash ./migrate2ml.sh --core

~略~
Failed to upgrade grub2 packages
Exit.

確認してみましょう。商標やリポジトリが切り替わっています。localeはそのうち直しましょう。

# cat /etc/redhat-release
MIRACLE LINUX release 8.4 (Peony)
# dnf repolist
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:03:08 ago on Mon Nov 22 02:06:52 2021.
repo id                                           repo name                                                       status
ML8-AppStream                                     MIRACLE LINUX  - AppStream                                      14445
ML8-BaseOS                                        MIRACLE LINUX  - BaseOS                                          6170

パッケージのアップデートを行います。

# dnf -y update

これでMIRACLE LINUXの導入はひと段落です。

SLを走らせる

我々はいつの時代にもlsをslと打ち間違える必要があるのです。

豊田正史とslコマンド (Masashi Toyoda and SL command)

導入しましょう。

# dnf -y install git gcc make ncurses-devel
# git clone https://github.com/mtoyoda/sl.git
# cd sl
# make
# ./sl

wslsl

あとは作者の案内に従いバイナリを/usr/local/binに設置しましょう。

# mv ./sl /usr/local/bin

これでlsを打ち間違えるといつでもslを走らせることができます。

By @Akio Tomita in
Tags :