Re:シルの日々の戯言。

散財が生き甲斐になりかけている、デジタルガジェット大好き自称黄色いネズミの戯言。

BrainuxのためにBrain(電子辞書)を買った

私がRaspberry Pi Zero 2 Wを抱き合わせで衝動買いする前、AmazonでBanana Pi M2 Zeroと言うRaspberry Pi Zeroのパクリスペクトなものを見つけて、なにか遊べないかネットの大海を漁っていました。

正直Raspberry Pi Zero 2 Wが全く手に入らない・割高な抱き合わせ販売しか手立てが無いので、これでもいいかな・・・と思ったり思わなかったりしていました。
性能としてはRaspberry Pi Zero以上・Raspberry Pi Zero 2以下、Quad Coreなので手持ちのRaspberry Pi Zero WHよりは高性能だけどメモリ容量はRaspberry Pi Zeroシリーズと同じ512MBに抑えられています。
規格はRaspberry Pi Zeroシリーズと完全同一のようで、手持ちのRaspberry Pi Zero向けケースが使えます。・・・ただ、調べる限り動作可能なOSに難があるようで、はてな村の住人も四苦八苦しているご様子です。
pocketgriffon.hatenablog.com

結局Raspberry Pi Zero 2 Wを抱き合わせ販売で購入したのでBanana Pi M2 Zeroを買うことはありませんでした・・・が、参考にしたはてな村の方が割とマニアックな方で、非常に興味を惹かれるガジェットを多数紹介されていること・・・。
そんな訳で今回はBanana Pi M2 Zeroの情報を漁ったが為に毒された訳です・・・。

今回衝動買いした電子辞書について

  • 入手元: ブックオフ
  • 商品名: SHARP Brain PW-SJ3
  • 浪費金額: 税込み4,180円(中古)+2,483円(USBハブその他)+1,240円(microSD2枚)

どうやらWindows CE(Windows Embedded CE)が搭載されている電子辞書のようで、割と好き放題できるらしい・・・とのこと。ただ、ブームも終息して落ち着きを取り戻した頃に猛者がLinuxを動かせるようにしたようで、界隈では大盛況・・・とのお話です。
pocketgriffon.hatenablog.com

遅ればせながら興味を抱いたので、4,000円チョットで叩き売りされていた中古電子辞書を衝動買い。よくよく見ると液晶が劣化してホワイトスポットなりかけが数点、ヒンジのボディー割れ、スレによる塗装ハゲと結構な程度の悪さです。

当然Linuxを動かす関係上、別途キーボードが使えたほうが入力しやすいですし、USB-NICでネットワークにつながったほうがSSH経由でコマンドを叩けるのでUSBハブも購入。ついでに電源供給可能なOTGケーブルも必要とのお話だったので、妙にマニアックな補助電源付きOTGアダプタを確保しました。
・・・なんでUSB-C to USB-Aアダプタ買ってんだよ!となりそうですが、手持ちのRaspberry Pi Zero 2 Wと共有を見越して+今はUSB-Cなら変換アダプタでmicroBだろうがUSB-Aだろうが変換しやすいのでUSB-Cのハブを買ったのが原因です・・・。*1

microSDカードについては、ハードウェアがSDHC止まりなので32GBのmicroSDカードです。もっと言うと、2枚も買う必要性はありませんが結構な酷い用途(!?)で頻繁に書き換える可能性を考えると手持ちの使い古しよりは・・・と言うことで予備を含めて2枚確保しています。*2

今回利用するLinuxについて

驚くことにSHARP Brain専用のLinuxディストリビューションのBrainuxと呼ばれるLinuxが存在するので、コチラを利用していきます。
brainux.org

対応機種ならば、PC上でmicroSDにイメージファイルを書き込むだけでOKと非常にお手軽です。
更にmicroSDカードから直接起動させる方法と、電子辞書のメニューからLinuxを起動させる方法の2種類があり、Brainuxの動作対象機種ならばほぼ無改造でLinuxを起動させることが可能です。

詳細は公式Wikiに情報が集約されているのでそちらを参照ですが、電子辞書でLinuxを動かすのは(先陣を切る開発者さんは当然ながら利用させて頂く我々も)大変な苦労を伴うものと考えていましたが、まるでRaspberry Piを動かすのと同じようなレベルで簡単に導入できるとは驚く限りです・・・。
wiki.brainux.org

まだまだ発展途中のため難はそこそこありますし、本体キーボードも電子辞書特化のため記号入力には四苦八苦を強いられますが、電子辞書でLinuxが動くと言うのは本当に面白おかしい不思議な感覚に襲われます。

軽く触れて感じた問題点

簡単に動かせて遊べるLinuxですが、今回動かしているPW-SJ3ではいくつか問題も発生しています。

  • 記号が正しく入力できない
    • 主に「,」「.」「/」辺り、本体キーボードの記号ボタンとの同時押しパターンで一部うまく入らない。
    • 入力出来るときは入力できるが、何故か連続入力として認識されてしまい、今のところ上手く制御できていません。
  • 動作があまりに緩慢過ぎる
    • メモリ128MBの機種に何を言ってんだお前?と言われてしまえばそれで終了ですが、メモリが少ないのでGUI動作は厳しい限りです。
    • WMでJWMが含まれていますが、現状では「とりあえず動きます」と言う認識の方が身のためです。
    • CUIで利用する分には(遅いと言えば遅いですが)まだ違和感なく使えるので、CUI前提でアレコレ遊べるスキルを身に付けたいところ・・・。
  • IPアドレスの固定化が上手く行かない
    • 中身はほぼDebian GNU/Linux 11(Bullseye)なので、Debianの作法に従って設定をするものの、上手くIPアドレスの固定化ができません。
      • Bullseyeだと/etc/network/interfacesに設定を書き込めば良いとされているのですが、設定値を書き込むとIPアドレスを取得してくれなくなります・・・。
    • DHCPの自動取得は(手持ちのUSB-NICだと)設定なしでIPアドレスを取得できるので、なんとも腑に落ちない・・・。

個人的に、キーボード周りの挙動が怪しいのがツラいところ・・・。単純に私の入手個体の問題なのか、Brainux側の問題なのかの完全切り分けがまだ出来ていませんが、本体キーボードは「使えなくはないけれど・・・」の認識でいると幸せなのかも知れません。

あと、公式Wikiにも記載されていますが、microSDカードから直接起動するとCPUクロック数が半減する問題もあります。
将来的に修正される予定とのことなので、CPUクロック数半減がどうしても気になると言う方はmicroSDカードからの直接起動は避けたほうが良さそうです。

どう活用していこう?

私の技術力では十分活用は難しい状況です・・・が、なんとか上手く活用していきたいところです。

最初はRemmina辺りを突っ込んでシンクライアントチックに使えないかと試してみましたが、Remmina自体はapt経由で入ったもののメモリの少なさからセッションを接続するに至らず・・・。
ブラウザ利用に関してはいくつかプリインストールされていますが、いずれも軽量さに定評があり「クリックする前から読み込みが完了していた!!!11」と言われている公式ホームページの表示さえも時間を要すると言われているので、Web閲覧端末として利用するのも現実的では無いでしょう・・・。*3
abehiroshi.la.coocan.jp

CUIでの操作も、私の場合は一部の記号入力が上手く機能してくれないので内蔵キーボードでの操作は結構絶望的・・・。
まだまだ発展途中なので、今後に期待しつつなんとか使えるようにならないかと頑張って使い道を模索していこうと思います・・・はい・・・。

*1:今のところRaspberry Pi Zero 2 WはRetroPieでアマゾンのダイエット大作戦専用機ですが、将来的に遊べるようにRaspberry Pi Zero 2 Wで使いやすいUSBハブと言うのも念頭に調達しました。

*2:過去にRaspberry Piでお遊びしているときに、イメージを書き込んだらmicroSDがぶっ壊れること2回連続と言う悲しい事故がありまして・・・。

*3:Brainux公式Wikiによると「表示に15秒かかりました・・・」とのこと。

Raspberry PiをNASにするヘンテコグッツがあった

Raspberry Pi Zero 2 Wを衝動買いした流れで秋葉原を徘徊していると、Raspberry Piを利用したNASキットが転がっていました。
Raspberry Piを利用した・・・となると、スターターキット名目の抱き合わせ販売で割高金額でRaspberry Pi Zero 2 Wを買う羽目になった千石電商*1・みんな大好き秋月電子通商・個人的に気に入ってたが売り場面積が減っちゃったマルツ(マルツエレック)*2のいずれかで見かけたように思われそうですが、秋葉原ハードオフ(1号店/GENOの2階にある方の店舗)で見かけました。
www.hardoff.co.jp

結構前から「Raspberry Pi 4 NAS」と書かれたステッカーが貼られた帯電防止袋に入った商品がありまして、最近になって気になって調べてみるとRaspberry Pi 4 Bで利用可能なSATA HAT(アドオンモジュール)+専用ケースのNASキットで、2.5インチHDD/SSDを最大4本搭載可能になると言うシロモノです。
当初は情報の探し方が悪くてあまり細かい情報が得られませんでしたが、なんとか公式販売ページと公式Wikiを見つけ出してしまったので、悪い意味で思い切ってしまった次第です・・・。

今回衝動買いした変なNASについて

QUAD SATA KIT for Raspberry PI 4shop.allnetchina.cn

改めて端的に概要を綴ると、Raspberry Pi 4 Bを利用したNASが作成できるキットです。
付属品は小物のケーブル・ネジなどを除外すると、ケース・SATA HAT・CPU冷却用のファン・HDD/SSD冷却ファン一体型のOLEDボードです。
上記のメーカー直販価格が焼く100ドル=草稿を書いているタイミングでは約14,500円*3と結構お高いキットなので、約4,500円で入手できたのは結構ラッキーだった・・・のかも知れません。・・・が、なんで(まだまだ電気街を名乗ってる秋葉原とは言え)ハードオフに流れてきたのやら・・・。

HDD/SSDについて、ちょうど秋葉原のark(個人的にメモリをよく買ってる印象のあるゲーミングPC重視のPCショップ)でノート向け(2.5インチ)のWD Blue 750GBが頭一つお安かったので4本一気に衝動買いしました。・・・WD Blueなので、NASとして使うのは間違ったどころの次元ではない愚かな行動ではありますが、令和の時代はM.2 SSD全盛期なので選択肢がほぼありません・・・。*4
今回はお遊びメインと言う言い訳+NAS用を称する2.5インチSSDのWD Redはとてつもない金額*5なので、気難しい原理主義者や少しばかり知恵を付けたパソコンの大先生辺りが罵声を浴びせてきそうですが、今回はWD Blueで行きます。

microSDカードについては・・・、・・・まぁ、適当に高耐久にしておけば・・・と言う雑な考えです。Pi-holeで利用している超高耐久を謳うmicroSDでも良かったのですが、流石に先立つもの(お金)がHDD4本で消し飛んでいるので、今回は高耐久で妥協です。

必要な情報の収集

このNASキットは、あまり国内で利用されている人がいないようで日本語圏で書かれた情報がほぼ皆無です。*6

そのため、まずは情報収集が必要です。
最低限必要なのは販売元の公式Wiki、この情報が無いと何も始まりません。
wiki.radxa.com

SATA HAT有効化に必要となるソフトウェアの導入方法は当然ですが、リビジョン次第では必要となるファームウェアの更新方法も(別途公式フォーラムの該当記事リンクですが)掲載されています。
また、組立方法もYouTubeの動画リンクが貼られているので、組み立て〜SATA HAT向けソフトウェア導入までは公式Wikiで必要な情報をゲットできます。

なお、公式WikiではRaspbian(Raspbery Pi OSの旧名)のbuster(32bit)またはUbuntu Server 20.04 LTS(32bit/64bit)の3つのみに対応と掲載されていますが、現在はRaspberry Pi OS buster(64bit)にも(β版扱いですが)対応しています。
更に、現行OSであるRaspberry Pi OS Bullseye(32bit/64bit)も動くと言えば動くと言う情報がフォーラムに掲載されています。(なんかオーディオにノイズが乗ると言う文句がついてますが、NASでオーディオ?)*7
forum.radxa.com

重要な注意点が1つ

今回、NASとして利用するためにOpenMediaVault(OMV)*8を利用しようと考えましたが、重大な問題が1つ・・・。

上記の販売元公式Wikiで以下の文言が太字強調で書かれています。

OpenMediaVault
OMV does not support using USB storage as RAID device. If this is your use case you will have to create the RAID yourself (using either MD-RAID or btrfs), update /etc/fstab to mount on boot, and use openmediavault-sharerootfs package to share it via OMV.

OMVはNASシステムなので、本来ならばRAID構築時はOMV側で好きな設定をやりたい放題できます・・・が、OMV側の設計思想として「USB接続と言うものが信頼に値しない接続規格なので、何が何でもOMVではUSB接続のストレージではRAID組ませません!」・・・と言うことです。*9
SATA HATなのにナンデ!?と思われそうですが、実はこのSATA HATシレッとUSB3.0側のポートを4つ専有する特殊ドングル*10を利用してRaspberry Pi 4 BとSATA HATを接続しているので、実はUSB接続のストレージだったりします・・・。

そのため、SATA HATに4つHDD/SSDを接続してRAID5/10を組みたい場合、手動でソフトウェアRAIDを構成して、OMVから認識させる必要があります・・・。

それってOMV使う意味あるの?と問われるとツラいところですが、sambaでシコシコ設定を入れ込んでいくのも面倒なので、今回は手動でRAID5を組んでOMVで認識させる方向で行くこととします。

組み立て時の注意事項

NASキットの組み立て自体はYouTubeの組み立て動画をみれば悩むことはほぼ無いと思います。

www.youtube.com

注意点としては大きく2つ。

  • 冷却ファン一体型のOLEDボードは、取り付け位置の微調整が必須
    • 小さな押しボタンがあり、そのボタン穴の調整が結構シビアです。
    • 調整に失敗すると、押しボタンが穴に引っ掛かりスムーズなボタン押下ができません。
    • このボタン、長押しすると(デフォルト設定だと)冷却ファン停止なので、ボタンが引っかかって実質長押しになると冷却ファン停止からの熱暴走の危険があります。
  • カバーが分厚いのでケース取り付け後はmicroHDMIケーブル接続が不可
    • microHDMIケーブル次第かも知れませんが、ケースの厚みからmicroHDMIケーブルが半指しとなりモニター出力ができなくなります。
    • そのため、「OS上がってこない!?!?」と勘違いして起動途中で(Raspberry Pi 4 Bは電源ボタンが無いので再起動・停止のために)電源ケーブル引っこ抜きと言う最悪の行為を行いかねないので注意が必要です(2敗)*11
    • 動作検証中はカバーを取り付けず、最終的な確認が終わってからカバー装着が無難です。

特に後者のカバー問題について、カバーを付けてしまうとmicroSDカードへのアクセスもできなくなるので、ある程度のセットアップが進むまではカバーを外した状態のほうが何かと安全です。*12

ソフトウェア導入後の注意点

Raspberry Pi OSの基本的なセットアップ*13を済ませてから、SATA HATのソフトウェア導入を行いますが、導入自体は簡単です。

curl -sL https://rock.sh/get-rockpi-sata | sudo -E bash -

あとは画面の指示に従うだけでOKで、導入が終われば冷却ファンの動作・OLEDの表示が始まります。
また、同じくSATA HATが認識され接続したHDD/SSDが動き始め、SATA HATのLEDが点滅・点灯を始めます。

SATA HATのソフトウェアは「rockpi-sata.service」と言う名称でsystemdに登録され、以降システムサービスの1つとして機能します。
・・・このサービスを何らかの理由で再起動を行いたい場合に、再起動するとSATA HAT自体も再起動します=アクセスランプがピッカピカと点滅しててもぶった切られます。
えぇ、RAID構成に時間を要するからと冷却ファン設定・OLED設定をこねくり回して、反映のためにサービス再起動したら「プシュン!」とHDDが停止・SATA HATのアクセスランプが消灯して酷い目に遭いましたわ・・・。*14

ちなみに、ファームウェアの更新はSATA HATのソフトウェア導入後に実施してください。
どうやらファームウェアを更新しないとOMV経由で2つほどディスクを見失ったり、好ましくない自体になる場合がある・・・らしい。
forum.radxa.com

ファームウェア更新後、再起動を求められますが「reboot」などではなく、一度シャットダウンして電源プラグ*15を引っこ抜いてください。
単純なrebootではSATA HATの電源が落ちず、SATA HAT自体が再起動したことになりません。

RAID周りがなかなかの鬼門

OLEDに情報が表示され、冷却ファンが本格的に動き出し、あと少し!・・・と思いそうですが、このNASキットを利用する場合は手動でRAIDを組まなければなりません・・・。

RAID構築のためには(公式Wikiでは)ツール使えと書かれていますが、(OMVを導入する想定ならば)先にOMVを入れておくとRAID構築に必要なツール(mdadmコマンド)も一緒に入れてくれます。

Raspberry Pi OSへのOMVインストールは、公式から専用のスクリプトが用意されているため、専用スクリプトを利用してインストールします。
github.com

sudo curl -sSL https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

その後RAID構築を進めていきますが、相当に時間を要するため時間的余裕があるタイミングで実施するようにしてください。
もし、まだ本体カバーを取り付けていない場合は、一度シャットダウンしてこのタイミングで本体カバーを取り付けてください。

RAID構築は、同じはてな村で分かりやすくまとめてくださった方がいますので、詳細はわかりやすい記事を参照してください。
ただしRaspberry Pi 向けSATA HATのNASキットの場合、参考サイトの手順を最後まで実施するとemergency modeに入ってしまうので、自動マウントのfstab編集は絶対に行わないでください。/etc/fstabの編集は絶対禁止です。(超重要な部分なので2回書きました)
vild.hatenablog.com

各ディスクへのファイルシステムの作成

SATA HATを利用した場合、接続したディスクは(差し込むポート次第ですが)/dev/sda〜sddとして認識されます。*16
手始めにそれぞれのディスクに対し、ファイルシステムの作成を実施します。その際、RAIDフラグを有効化することを忘れず実施してください。LinuxソフトウェアRAIDは今回が初めてなので、RAIDフラグなんてものが存在することを、このNASキットを組み立てるに辺りワタクシ初めて知りましたわ。
ディスクは新規に購入した直後のディスクを前提としています。もし手元の雑なディスクを使い回す場合はひと手間(ディスクの初期化)が必要になると思いますので、ゆっくり(Googleで検索)していってね!!!11*17

下記の入力例では/dev/sdaに対して操作をしていますが、sdb/sdc/sddの残り3つに対しても同じように操作を進めます。

sudo parted /dev/sda
# 以降プロンプトがpartedと表示されることを確認
mklabel gpt Y
mkpart ext4 0% 100%
set 1 raid on
quit

また、ファイルシステムの作成も実施しておきます。これも入力例では/dev/sda1(sdaの第1パーティション)を指定していますが、同様にsdb1/sdc1/sdd1に対しても実施してください。

sudo mkfs -t ext4 /dev/sda1

RAID構築

ここから時間の掛かる処理です。もしNASキットのケースをまだ閉じていない方は、今のうちに閉じないと数時間は何もできなくなります。
SATA HATのユーティリティでOLEDや冷却ファンの動作設定を行おうと考えている方、RAID構築中に設定反映するとSATA HAT自体が再起動するのでRAID構築中だろうがぶった切られるので辞めておいてください。(1敗)

今回はRAID5構成の予定なので以下のコマンドを入力してRAID構築を進めます。

sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sd[abcd]1
# 中略
continue creating array? (y/n) ---> Y応答

mdadmコマンドのチョットした解説を綴っておきます。

  • --create /dev/md0
  • --level=5
    • RAID種別、RAID5の場合は「5」を指定、もしRAID10(RAID1を2つ作成した上で、RAID0を構築)を作りたい場合は「10」を指定
  • --raid-devices=4 /dev/sd[abcd]1

処理開始後プロンプトは戻ってきますが、SATA HATのディスクアクセスランプが激しく点滅しはじめ、裏(バックグラウンド)でRAID構築が行われます。(しつこいですが、これ以降SATA HATのOLED/冷却ファン設定の反映はRAID構築完了まで厳禁です。)
構築状況については、以下のコマンドで確認できますが、ディスクのサイズ・種類(HDD/SSD)次第ですが下手すると十数時間要します。

cat /proc/mdstat

進捗率が100%になるまで適宜確認してください。時間的な余裕があるならばしばらく放置で大丈夫です。

作成したRAID領域の初期設定

RAID構築が終わっても、まだ利用開始することはできません。

最初にmdadmの設定ファイルに今回作成したRAID領域の情報を追記する必要があります。

sudo bash -c  'mdadm -Es | grep md/0 >> /etc/mdadm/mdadm.conf'

続いてRAID領域の確認・パーティション作成を進めていきます。
参考サイトでは「パーティション作成は不要?」と記載されていますが、ソフトウェアRAID初心者のワタクシは(このタイミングでは)人様の情報を鵜呑みにするしかないので、パーティション作成も含めて実施しています。*18

# 作成したRAID領域を確認
sudo parted -l
# ---> /dev/md0が存在することを確認
# ---> 初期設定がまだなのでErrorとか出るが気にしない

# パーティション作成
sudo parted /dev/md0
# 以降プロンプトがpartedと表示されることを確認
mklabel gpt Y
mkpart ext4 0% 100%
quit

# ファイルシステム作成(フォーマット)
sudo mkfs -t ext /dev/md0

以上でRAID構築は完了、マウントテストは任意で実施ですが、最終的にOMV側でマウント処理を行うので(マウントテストを行った場合は)必ずアンマウント処理を行ってください。
また、参考サイトではこのあとで自動マウントの設定を投入する流れになっていますが、今回はOMV側で処理するため設定投入を行わないでください。
参考サイトの情報に従って/etc/fstabの設定を投入してしまうと、SATA HATを利用した環境だとSATA HATがシステム側に認識されるタイミングの都合上、再起動した時点でemergency modeが発動して起動しなくなります。*19

OMV周りの設定

ここからはOMV経由で設定・操作を進めます。

OMVの基本的な操作方法を知っている大前提で横着して綴っていくので、OMVの基本操作なんて分からないよーと言う方は、以下のサイトを参考にしてください。
immedeep.com

sharerootfsプラグインの導入

最初にSATA HATの公式Wikiで触れられている通り、sharerootfsプラグインを導入しておきます。
・・・ただ、旧バージョンのOMVでは必要とされていたプラグインのような気するのですが、大本営発表として必須とされているので導入しておくことにします。

OMVにログインし、左側メニューからシステム -> プラグインから、「openmediavault-sharerootfs」の項目を探し出しクリック、クリックした項目がオレンジ色でアクティブになるのでダウンロードボタン(下矢印のボタン)をクリックして導入します。

導入後、個別にメニューが追加されるわけではないので、とりあえず導入さえすればOKです。

RAID領域のマウント

続いてRAID領域をOMV経由でマウントさせます。

左側メニューからストレージ -> ファイルシステムから、プラス(+)ボタンを押下して「マウント」をクリックします。
ファイルシステムのリストボックスからRAID領域の/dev/md0が表示されるのでクリック、その後「保存」ボタンをクリックします。確認ダイアログが表示されるので、「はい」を押下してマウント設定は完了です。

しかし画面上部に黄色い帯状の警告メッセージが出てきます。設定は完了したけど、反映がまだ行われていないと言うメッセージなので、チェックボタンをクリックして明示的に適用処理を実施します。
OMVでは設定→反映のフローが必須で、なにか設定を変更するたびに黄色い帯の警告メッセージ(反映していいかい?のメッセージ)が出てくるので、必ず設定反映を行ってください。

共有フォルダ・ユーザー・サービスなどの設定

これ以降は共有フォルダを設定したり、NASにアクセスするユーザー設定、Windowsとのファイル共有(Samba)などのサービス設定を投入していきます。
詳細は上記に挙げた参考サイトを参照して設定してください。

注意点として、ユーザーはデフォルトでRaspberry Pi OSで作業用ユーザーが登録されていますが、(OMVのユーザーとしての)パスワードは設定されていません。そのため、ユーザー -> 登録済みユーザーを選択し、明示的にパスワードを設定しておいてください。*20

ちなみに、OMVとの疎通のために(脆弱ゆえにデフォルトで無効化された)SMB1.0/CIFSの有効化が必要とされていますが、少なくとも最新のOMV6.xでは設定不要です。単純にSMB/CIFSの設定を有効化すればWindows11から参照できます。
SMB1.0/CIFSは黎明期のファイル共有規格で将来的には廃止される想定のプロトコルのため、(参考サイトではどのような事情で有効化必須とされているのかは不明ですが)SMB1.0/CIFSを有効化せずとも疎通は可能なので、絶対にWindows側のSMB1.0/CIFSを有効化しないようご注意ください。*21

/etc/fstabの手動書き換え

OMVの設定を一通り済ませたあとに、/etc/fstabの手動書き換えを実施します。
OMVでマウント設定を行うと/etc/fstabにマウントの設定が反映されますが、デフォルトの内容だと再起動をした際に(SATA HATが認識されるタイミングの都合で)90秒の無駄な待ち時間が発生してしまいます。

具体的にはSATA HATがfstab読み込み後に認識される関係上、認識されていないSATA HAT上のRAID領域を頑張って読み込もうとしてしまい、タイムアウトになるまで起動が一時停止してしまいます。*22

そのため、OMVが書き込んだfstab設定に一筆加えて起動に多大な時間を要しないようにカスタマイズを加える必要があります。

具体的には以下のように書き換えます。

### Before
# >>> [openmediavault]
/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx          /srv/dev-disk-by-uuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx      ext4    defaults,nofail,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
# <<< [openmediavault]

### After
# >>> [openmediavault]
/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx          /srv/dev-disk-by-uuid-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx      ext4    defaults,nofail,x-systemd.device-timeout=1ms,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
# <<< [openmediavault]

「nofail」の後に「x-systemd.device-timeout=1ms」と言う設定を追加しています。
このパラメータは、通常は90秒のタイムアウト時間を1ミリ秒(0.001秒)に設定すると言う意味です。このオプションはArch Linuxのfstab記事にて、外部デバイスをfstabに設定した場合にオススメと称される設定値です。
今回のSATA HATは結果的にはUSBデバイス(外部デバイス)として認識され、少なくともfstab読み込み時点では絶対に認識されないデバイスのため、この設定を入れておく必要があります。

注意点として、OMVでfstabに変更が加わる設定*23を行うとfstabの設定値が強制的に書き換えられて追記した「x-systemd.device-timeout=1ms」のパラメーターが削除されてしまいます。
何かマウント周りの設定を書き換えた場合は、手動で上記設定を改めて書き加えるようにしてください。もしfstabの書き換えを(面倒臭いこと極まりないので)行わないとの場合は、NAS再起動時に90秒の待ち時間が発生する=都合2分近い再起動時間を要すると認識しておいてください。

苦労したがなんとかなった

四苦八苦しましたが、なんとかSATA HATを利用したRaspberry Pi NAS(QUAD SATA KIT for Raspberry Pi 4)を使えるようになりました。
とりあえず作った実質自作NASですが、ちょうどデジタル放送録画サーバーのデータ保存用に利用しようと思います。・・・えぇ、録画データの保存で結構メインのNAS領域*24が喰い潰されてしまい、新しいNAS欲しいなぁ・・・と思っていたので、それはもうガッツリと活用させて頂きます。

ただし、利用している部品が普通のノートPC向け2.5インチHDD(WD Blue)なので、耐久性に難があると言うのは忘れないように心掛けたいところです。次の瞬間には故障・・・と言うのは流石にアレですが、24時間常時稼働の状態で半年後・1年後に無事に動き続けてくれるかどうかは部品的には保証されないので、ガッツリ活用はしつつも極端に依存して利用はしないよう心掛けたいところです。

あとは、今のところは基礎中の基礎的な部分しか触れていないのでOMVでどのようなことが出来るのかも把握しておきたいところ・・・。なにやらDocker辺りも使えそうなので、使いこなせられるようになれば個人的に利用しているナレッジ管理の(オープンソースの名称の)KnowledgeをOMV上のDockerで動かせるようになりそうなので、無茶してNASの動作に影響を及ぼさない程度には遊んでいこうと思います。

・・・しかし、2.5インチHDDでNAS用がもう売ってないからとは言えど、あまり耐久性が無いと思われるNASに合計2万円近い金額をつぎ込んでしまうとは、コスパ悪いことやってるなぁ・・・。いや、RAID5を組める環境を(手元にRaspberry Pi 4 Bが余ってると言う前提条件で)2万円で入手出来たと考えれば案外安いかいもの・・・なのかも知れないですが・・・。

*1:妙にネッチネチで刺々しい酷い表現の理由はRaspberry Pi Zero 2 Wの衝動買い日記参照、恐らく転売対策なんでしょうが現在Raspberry Pi Zero 2 Wは抱き合わせでしか売ってくれません・・・。

*2:店舗名が「マルツ」なので、屋号も「マルツ」と思ってましたが、実は「マルツエレック」が正しい屋号のようです。

*3:この戯言日記を綴っている時点では、異常な円安爆進で1ドル140円〜150円をウロウロしていました・・・ので、1ドル145円で計算しています。

*4:少し前まで2.5インチHDDでWD Red(NAS用)があったような気がしますが、今は2.5インチSSDのWD Redが辛うじて残ってるくらいですね・・・。

*5:今回の2.5インチHDD WD Blue 750GBが単価3,500円くらいなのに対し、2.5インチSSD WD Red 500GBは普通に単価7,000円以上なので、4本買おうとすると3万近い金額が吹き飛びます・・・。

*6:厳密には、品薄欠品著しいRaspberry Pi 4 Bを所有してて・マイナーの極地のようなこのNASキットを個人輸入などで入手して組み立てて・その結果をブログなどにまとめて情報発信を行うユーザーがどのくらいいるのかと言うお話になりまして・・・。

*7:GUI前提で使う場合はBusterでも発生するが・・・と書かれているので、純粋にNASとして使う場合はあまり気にしなくて良い?気になるので私はオーディオの無効化を実施しましたが・・・。

*8:Debian GNU/Linuxに狙いを定めたNASシステム、完全にDebianを狙い撃ちしているのでUbuntuでは利用不可ですが、Raspberry Pi OSは中身Debianなので動作対象になってます。

*9:詳細までは漁ってませんが、言いたいことは分かる。USBは簡単に引っこ抜けますので・・・。

*10:厳密にはRaspberry Pi 4 B側のUSB3.0端子2つと、SATA HAT側のUSB3.0端子2つを接続するドングルです。

*11:初回起動でmicroSDカードの領域拡張など様々な処理が走るので、下手なタイミングで電源ブッチは俗に言う「危険が危ない」状態です。

*12:SATA HATのソフトウェアを導入して、天板OLEDの表示・冷却ファンの動作が確認できるまでは外しておいたほうが良いかも。

*13:raspi-configを使ってロケールやらホスト名、NASとして使うのでIPアドレスの固定化、とりあえず初回のapt実行でシステム最新化辺りでしょうか。

*14:RAID構成中に全ディスクロストかーらーのーRAID再構成のため中途半端に構成したRAID解除・残存情報の処理と本当エライ目に遭いました・・・。

*15:最大でHDD/SSDを4本搭載するため、12V/4Aの丸プラグ電源をSATA HATに差し込み、SATA HAT経由でRaspberry Pi 4 Bに電源が供給されています。

*16:決め打ちとか、そんな話なんざぁ信頼できねえ!・・・と言う方は、「sudo parted -l | grep /dev/sd」でどこに認識されているのかをチェックしてください。

*17:既存のパーティション消して作り直したり、面倒ならwipefsを引っ叩いたりすればいいかと・・・。

*18:一応Arch Linuxの提供するWiki情報でソフトウェアRAID情報も合わせて確認していますが、こちらではRAID構築後に速攻でフォーマット処理を行っているので、パーティション作成は不要なのかも知れません・・・。

*19:Raspberry Pi OSではrootパスワードが設定されていないためemergency modeに入れず、シングルユーザーモードで立ち上げて/etc/fstabを修正する羽目になります。

*20:最初「全部設定正しいのに認証弾かれる?」と疑問に思って少し時間を無駄にしました・・・。

*21:どうしても必要性があると言うのなら、説明が欲しいところです・・・が、もしかすると古いOMVの情報をそのままリライトしているのかも知れませんね・・・。

*22:この戯言日記内で何度か「先に/etc/fstabに参考サイトの通り書くとemergency modeに入るぞ!」と言うのはこれが原因です。参考サイトの内容をそのまま書いてしまうと、タイムアウト以前に「読み込めない!異常事態だ!」と起動処理が止まってしまいます・・・。

*23:マウント設定以外にも、NFSの共有設定を行うと同じくfstabの書き換えが発生するようです。

*24:メインはRAW現像前の完全生データな写真保存が目的なので、あまり他の用途で喰い潰されるのは都合が悪いと言うか、4TBも領域があるのに足りないって・・・。

Raspberry Pi Zero 2 Wを超絶割高金額で買った

昨年たまたまRaspberry Pi Zero WHを(Game Pi 20とセットで)衝動買いしましたが、色々とあり部屋の肥やしと化しています。
厳密にはセットで購入したGame Pi 20の液晶性能があまりに酷く、みんなでまもって騎士 アマゾンのダイエット大作戦*1をまともにプレイできないことが起因ですが、それ以外の使い道が見出だせずに放置していました。・・・と、言うか既にGame Pi 20はどうしようも無いので破棄してたり・・・。
www.ancient.co.jp

そうこうしている間にRaspberry Pi Zero 2 Wが発売開始・・・しているものの、超絶欠品で入手できず、秋葉原界隈では抱き合わせ販売と言う結構悪質な販売手法で僅かばかり流通している始末です。
当初は(既に手元でRaspberry Pi 4 Bを持て余していますし)あまり気にしていませんでしたが、Raspberry Pi 3 B相当品と言うお話を聞いたため、手持ちのRaspberry Pi Zero用のケースを有効活用すべく興味を持ってしまいました・・・。

今回衝動買いしたRaspberry Pi Zero 2 Wについて

Game Pi 20を衝動買いした千石電商で抱合せと言う悪質な販売手法により、本体(Raspberry Pi Zero 2 W)だけなら3,000円程度で済むが多くの人からすると不必要な電源・microSDカード・ケースなどなどモリモリ盛った・品薄を良いことにやりたい放題しているセット商品に手を出してしまいました・・・。
www.sengoku.co.jp

大変なまでに酷いことを書いていますが、実際問題スターターキットとしては優秀な商品だと思います。これだけ買えば(ご親切なことにRaspberry Pi OS書き込み済みmicroSDまで付属しているため)何も考えずに遊び始めることができますし、親切丁寧にmini-HDMI変換アダプタやらmicroUSB変換ケーブルやらも付属しているので、必要なものを買い忘れて土日両日秋葉原訪問と言うことを行わずに済むので初心者の方には非常に有難い限りの商品だと思います。・・・ので、これ以上突っ込むのは辞めておきます。えぇ、既存の無印Zero WHユーザーなので本体だけあれば事足りるのに、3倍以上の金額を無駄に払ってスターターキットを買ったため俗に言う「ムシャクシャしていた」状態*2なだけかと思います。

セットアップはお手の物

今回はスターターキットを調達したのでRaspberry Pi OS書き込み済みmicroSDカードが付属していますが、32bit版に加えて少々バージョンが古め(2021年の日付)なので素直に最新版をダウンロード・・・と言うか、公式ツールのRaspberry Pi Imagerで作成可能なので明示的に自前でメディアを作成することとします。
www.raspberrypi.com

ただ、そのままRaspberry Pi OS(実質Debian GNU/Linux 11)を焼くのも面白みに欠けるため、今回はRetroPieを焼いています。
retropie.org.uk

RetroPieは(動作基盤はRaspberry Pi OSですが)ゲームエミュレータの実行に特化したイメージで、早い話が合法的なデータがあればファミコンだろうがファミコンだろうがファミコンゲームを動かせます。・・・なんでファミコン特化なんだよwwwなのは、合法的に所有しているのが冒頭に書いた(ファミコンエミュで動作する)アマゾンのダイエット大作戦だけなので・・・。*3

・・・しかし、アレです。以前(Raspberry Pi Zero WH+Game Pi 20買ったとき)もそうですが、これ合法的に生成したROMファイルをぶち込んで動かしたくなる衝動に駆られますね・・・。
今のところ私の手元にはROM吸い出しツールは無いですし、根本的にファミコンカセットも無いのでどうしようも無いのですが、エミュレーターで合法的にプレイする環境を整えたくなってきます。*4

閑話休題、そんな訳でRetroPieを焼いたわけですが、(この草稿を作成しているタイミングでは)RetroPieはRaspberry Pi OSのBuster(1世代型落ちバージョン)を利用しているので、EOLの観点で(すぐに打ち切られることは無いとは思いますが)大丈夫なのか今後が心配です・・・。

ドキュメントを見ると、たとえ手動で環境を作り込んだとしてもBullseyeには非対応と記載があるので、今後RetroPieのBullseye対応に期待です。
retropie.org.uk

どう遊ぼう?

Raspberry Pi 4 Bを持て余している中で購入する意義があるのかと問われると何も言えなくなっちゃいますが、Raspberry Pi 3レベルの性能が板ガムより一回り大きいくらいに詰まっているので夢が広がります。
今のところはRetroPie導入し、上記(Game Pie 20の液晶性能の酷さ)でショボーンとしていたアマゾンのダイエット大作戦(NES/FCエミュ向けゲーム)を「普通のディスプレイ」で満喫することとしますが、いつまでもゲームエミュ専用と言うのは勿体ない限りです。

Raspberry Pi 4 Bよりは性能は低いものの、超小型で雑なmicroUSB電源でも動作するので*5割と扱いが楽だったり・・・。
ネットワーク周りが(USB-NICを使わない限り)無線LAN限定になってしまいますが、超小型サーバーとして使っても良いですし、雑に走らせておくARM基盤のサーバーとしてもいいですし・・・。

まぁRAMが512MBしか無いのであまりヘンテコな用途には扱えませんが、大枚叩いて買ったRaspberry Pi Zero 2 W、有意義に使っていきたいところです・・・。

*1:3DS向けのみんなでまもって騎士 姫のときめきらぷそでぃ公式サイト・・・の最下部にあるオマケコンテンツで、合法的にエミュレータで動かせるファミコンゲームです。

*2:他に選択肢が無いので、結構足元を見た商売と言いますか・・・テンバイヤー対策なのかも知れませんが、流石にやり過ぎ・・・。

*3:厳密にはX68000向けの超連射68Kもあった気がするけど・・・どこに保存してたっけ?

*4:前回も思った=一応吸い出し環境を整えようと試みたことはあります・・・が、早い話がROM吸い出しツールが結構な金額なので、捨て値のファミコンカセットのROMデータを引っこ抜くのに(モノにもよりますが)1万円以上もするようなガジェットに手は出せねえって結論になりました。

*5:Raspberry Pi 4 Bはキッカリ5V/3Aを求められ、雑な電源を使うと電力不足と表示されたり結構シビアです・・・。