当初 AlmaLinuxを作ろうとしたが挫折した... 触感的でうまい方法はないものか..
参照先 https://docs.rockylinux.org/guides/interoperability/rocky_to_wsl_howto/, https://daimaohsx.dip.jp/wordpress/2021/06/28/try-running-rocky-linux-on-wsl2/
すでにWSLでubuntu20.04な環境が整備されているのが前提. このubuntu20.04 on WSLにてRockyLinuxのイメージを作り上げ、WSLに載せる.
WSLで作ったubuntu20.04でRockyLinuxのイメージを作るのだが、調理器具をそろえる
saber@st200e:~$ sudo apt update
saber@st200e:~$ sudo apt install rinse
saber@st200e:~$ dpkg -L rinse <-- 「rinse」パッケージとしてどこに何がインストールされているか表示
/.
/etc
/etc/rinse
/etc/rinse/centos-4.packages
:
saber@st200e:~$ apt show rinse <-- 「rinse」パッケージの情報
Package: rinse
Version: 3.5
Priority: extra
Section: universe/admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Thomas Lange <lange@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 266 kB
Depends: wget, libterm-size-perl, libwww-perl, perl, rpm, cpio (>= 2.11+dfsg-4.1), rpm2cpio
Download-Size: 28.7 kB
APT-Manual-Installed: yes
APT-Sources: http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: RPM installation environment
This is a tool for bootstrapping a basic RPM-based distribution of
GNU/Linux.
.
It is comparable in purpose to the standard Debian debootstrap utility,
but works upon RPM-based distributions instead.
.
Rinse can setup 32 and 64-bit installations of:
* CentOS
* Scientific Linux CERN
* Fedora
* OpenSUSE
saber@st200e:~$
「/etc/rinse/」にイメージ作成のテンプレートが用意されている
saber@st200e:~$ ls -CF /etc/rinse/
centos-4.packages fedora-15.packages fedora-27.packages opensuse-10.2.packages opensuse-42.2.packages
centos-5.packages fedora-16.packages fedora-28.packages opensuse-10.3.packages rhel-5.packages
centos-6.packages fedora-18.packages fedora-7.packages opensuse-11.0.packages rinse.conf
centos-7.packages fedora-19.packages fedora-8.packages opensuse-11.1.packages slc-5.packages
centos-8.packages fedora-20.packages fedora-9.packages opensuse-11.2.packages slc-6.packages
fedora-10.packages fedora-21.packages fedora-core-4.packages opensuse-11.3.packages
fedora-12.packages fedora-22.packages fedora-core-5.packages opensuse-12.1.packages
fedora-13.packages fedora-25.packages fedora-core-6.packages opensuse-12.3.packages
fedora-14.packages fedora-26.packages opensuse-10.1.packages opensuse-13.1.packages
saber@st200e:~$
この中でRockyLinuxに近い「centos-8.packages」を「rocky-8.packages」とコピーしてRockyLinux向けの設定ファイルにする
saber@st200e:~$ sudo cp /etc/rinse/centos-8.packages /etc/rinse/rocky-8.packages
そしてこの「/etc/rinse/rocky-8.packages」に修正を加える
|
編集対象は「/etc/rinse/rinse.conf」です
rockyを作るにあたってのリポジトリの登録です
|
これもCentOS8向けをRocky8に仕立て修正を加える
saber@st200e:~$ sudo cp -R /usr/lib/rinse/centos-8 /usr/lib/rinse/rocky-8
っで修正(14行目に追加の文言を入れる)
|
対象は「/usr/sbin/rinse」
|
作ったイメージの保存先はどこでも、名称は問わないみたい。ここでは「$HOME/rocky_rc」とした
saber@st200e:~$ mkdir rocky_rc
saber@st200e:~$ sudo rinse --arch amd64 --directory ./rocky_rc --distribution rocky-8
Execute postcmd of *-release package
mount: ./rocky_rc/proc: mount point does not exist.
warning: /tmp/rocky-release-8.5-1.el8.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6d745a60: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:rocky-release-8.5-1.el8 ################################# [100%]
umount: ./rocky_rc/proc: no mount point specified.
Running post-install script /usr/lib/rinse/common/10-resolv.conf.sh:
Running post-install script /usr/lib/rinse/common/15-mount-proc.sh:
Running post-install script /usr/lib/rinse/common/20-dev-zero.sh:
Running post-install script /usr/lib/rinse/rocky-8/post-install.sh:
Extracting CA certs...
Updating package
Rocky Linux 8 - AppStream 10 MB/s | 8.2 MB 00:00
Rocky Linux 8 - BaseOS 5.7 MB/s | 3.5 MB 00:00
Rocky Linux 8 - Extras 20 kB/s | 10 kB 00:00
Dependencies resolved.
Nothing to do.
Complete!
cleaning up...
27 files removed
post-install.sh : done.
Installation complete.
saber@st200e:~$ ls -CF rocky_rc/
bin@ dev/ home/ lib64@ mnt/ proc/ run/ srv/ tmp/ var/
boot/ etc/ lib@ media/ opt/ root/ sbin@ sys/ usr/
saber@st200e:~$
rocky8に必要なrpmファイルが指定したリポジトリからダウンロードされシステムフォルダが作られる.
このフォルダをtarでまとめて、windows11からアクセス可能な場所に配置する
saber@st200e:~$ sudo tar --numeric-owner -c -C ./rocky_rc . -f /mnt/c/rocky_rc.tar
tar: /mnt/c/rocky_rc.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
saber@st200e:~$
っが「/mnt/c」の直下には置けないみたい. なのでフォルダを用意してみた
saber@st200e:~$ mkdir /mnt/c/rocky
saber@st200e:~$ sudo tar --numeric-owner -c -C ./rocky_rc . -f /mnt/c/rocky/rocky_rc.tar
saber@st200e:~$ ls -l /mnt/c/rocky/
total 317100
-rwxrwxrwx 1 saber saber 324710400 Nov 23 00:35 rocky_rc.tar
saber@st200e:~$
「wsl --import rocky_rc <path to folder from step 9> <path to tar file>」
と参照先では述べている.
どうも「rocky_rc」が「wsl -l」で表示される名前(NAME)で、「<path to tar file>」は文字通り作ったtarファイル「/mnt/c/rocky/rocky_rc.tar」でwindows11からは「C:\rocky\rocky_rc.tar」となる
このコマンドを実行するとWSLに組み込まれ即座に使えるようになる。
っで「<path to folder from step 9>」はいわゆる展開先である.
WSLgで構築したubuntu20.04はwindows11では「%LOCALAPPDATA%\Packages\」にて展開されている.
この展開先を特定の場所に指定できるようで、ここでは「C:\wsl-images\Rocky8.5」とする
コマンドプロンプトを立ち上げて下記を実行する
Z:\>wsl --import rocky-8.5 C:\wsl-images\Rocky-8.5 C:\rocky\rocky_rc.tar
Z:\>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
rocky-8.5 Stopped 2
Z:\>
っで起動させてみた
Z:\>wsl -d rocky-8.5
[root@st200e ~]#
[root@st200e ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@st200e ~]# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)
[root@st200e ~]#
無事起動できたみたい