kiwi-ngでRockstor 4のインストールイメージを作成する
Rockstor 4は2021年10月現在インストールイメージの配布を行っておらず、各々イメージ作ってねという状態。インストーラーの作り方とコンフィグは用意されているので、それに倣ってイメージを作成してみる。
環境
WSL2 Ubuntu 20.04 LTS
Making
code:console
$ ghq get git@github.com/rockstor/rockstor-installer.git
$ cd (ghq root)/github.com/rockstor/rockstor-installer
$ sudo apt update
$ sudo apt install gcc-5 btrfs-progs gfxboot qemu-utils qemu-system-x86 e2fsprogs squashfs-tools xorriso
$ sudo (which pip3) install kiwi
$ python3 -m venv kiwi-env
$ ./kiwi-env/bin/pip install kiwi kiwi-boxed-plugin
$ ./kiwi-env/bin/kiwi-ng --profile=Leap15.2.x86_64 --type oem system boxbuild --box leap -- --description ./ --target-dir ./images
できた ./images/Rockstor-NAS.x86_64-4.0.8-0-0.install.iso を Win32DiskImager でUSBに焼き、ブートディスクとしてPCに読み込ませるとインストーラーが動き出すのを確認できた。
Install
ただ、実際にインストールを始めると途中で画面が映らなくなる。多分死んでる。どうして。
原因
死んでいるのではなく、あまりに速いインストールのためあっという間にシャットダウンして死んだように見えるだけだった。
再起動すると問題なくOSが動く。ただ、インストール後はハードウェアの関係で大変苦労した。
Troubleshooting
画面が映らない
カーネルドライバがマシンのCPU内蔵グラフィック(Intel UHD Graphics 610)に対応してないため表示ができてないっぽい。どうせ初回セットアップ以外では画面使わないのでGRUBの設定でKMSを無効にする。
Grub Loaderの画面が表示されたら、ROCKSTORの起動オプションを選択し、e.
起動オプションの編集画面に入ったらlinuxコマンドの末尾にnomodesetを追加する。書き換えたら Ctrl-x.
code:grub
# オプション末尾に nomodeset
linux /boot/~~~ nomodeset
initrd ~~~
設定を永続化するには、ログイン後下記を実施する。
code:console
# vi /etc/default/grub
:
: # 末尾に nomodeset
GRUB_CMDLINE_LINUX_DEFAULT="plymouth.enable=0 rd.kiwi.oem.maxdisk=5000G nomodeset"
:
# update-bootloader
ネットワークにつながらない
マザーボードのLANが2.5Gbps LAN controllerのため、インストール時に入っているモジュールではデバイスを有効にできない。
ネットワークにつながらないからビルドツールをインストールしてモジュールビルドもできない。
詰んだと思ったけど、幸いにしてビルド済みのカーネルモジュールを有志が公開してくださっていたのでありがたく使わせていただく。
上記の openSUSE Leap 15.2 の Expert Download からopenSUSE Leap 15.2 Update向けの x86-64 のバイナリパッケージを直接取得し、USBメモリなどでマシンに持っていってインストール。
code:console
# zypper in ./r8125-ueficert-9.006.04-lp152.5.5.x86_64.rpm
# zypper in ./r8125-kmp-default-9.006.04_k5.3.18_lp152.95-lp152.5.5.x86_64.rpm
これで eth0 が有効になる。
code:console
# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether d8:bb:c1:41:7e:1b brd ff:ff:ff:ff:ff:ff
inet 192.168.0.30/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
valid_lft 84081sec preferred_lft 84081sec
inet6 fe80::bc58:bc60:533a:864c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
iperfを入れて転送速度を確認する。
code:console
$ iperf3 -c 192.168.0.30
Connecting to host 192.168.0.30, port 5201
5 local 172.29.51.226 port 55514 connected to 192.168.0.30 port 5201 ID Interval Transfer Bitrate Retr Cwnd 5 0.00-1.00 sec 283 MBytes 2.37 Gbits/sec 0 3.01 MBytes 5 1.00-2.00 sec 281 MBytes 2.36 Gbits/sec 0 3.01 MBytes 5 2.00-3.00 sec 280 MBytes 2.35 Gbits/sec 0 3.01 MBytes 5 3.00-4.00 sec 281 MBytes 2.36 Gbits/sec 0 3.01 MBytes 5 4.00-5.00 sec 280 MBytes 2.35 Gbits/sec 0 3.01 MBytes 5 5.00-6.00 sec 281 MBytes 2.36 Gbits/sec 0 3.01 MBytes 5 6.00-7.00 sec 280 MBytes 2.35 Gbits/sec 0 3.01 MBytes 5 7.00-8.00 sec 281 MBytes 2.36 Gbits/sec 0 3.01 MBytes 5 8.00-9.00 sec 280 MBytes 2.35 Gbits/sec 0 3.01 MBytes 5 9.00-10.00 sec 280 MBytes 2.35 Gbits/sec 0 3.01 MBytes - - - - - - - - - - - - - - - - - - - - - - - - -
ID Interval Transfer Bitrate Retr 5 0.00-10.00 sec 2.74 GBytes 2.36 Gbits/sec 0 sender 5 0.00-10.01 sec 2.74 GBytes 2.35 Gbits/sec receiver 2.5Gbps出た。