Raspberry Pi Zero WHでNASしたい、失敗録1

配線

私はRaspberry Pi Zero WHを所有していて、これまで自宅の室温を記録してサーバーに送信していた。突然NASを組みたくなり、これを利用できないかと考えた。

ざっくりラズパイにストレージが接続さえできればあとはどうにでもなりそうだったので、アダプター類を購入して準備した。具体的には、Zero WHはUSB micro-B凹端子しかないので、ここから

  • USB micro-B凸 to USB A凹 変換
  • USB A凸 to USB A凹 ハブ(給電機能つき)
  • USB A凸 to SATA

の3段階を経てタンスに打ち捨てられていたHDDに接続。つないでlsblkするだけで認識できた。

HDDの準備

母艦側PCでHDDの中身を適当にサルベージしたあと、フォーマットしてLUKS暗号化しつつBtrfsでパーティションを作成。このあたりは全部UbuntuのdiskユーティリティでGUI操作可能だった。ただしGUI上でBtrfsを選択するためにはaptでbtrfs-progsを入れておく必要がある。

Raspberry Piのソフトウェアレイヤーの準備

よくあるチュートリアルのようにOpenMediaVaultを入れようとしたのだが、そのためにはRaspberry PiのOSがGUIをサポートしないバージョンでなければならない。そのために面倒な思いをしてOSを入れ直した。しかし改めてOMVを入れようとしたが、一般的なインストールスクリプトはRaspberry Pi Zeroには対応してないらしい。

RPi revision code :: 9000c1
This RPi1 is not supported (not true armhf).  Exiting...

仕方なくsambaに方針転換してインストールしてみた。

HDDをマウントする

LUKSで暗号化されたストレージは先に

sudo cryptsetup luksOpen /dev/sda storage

する必要があるのだが、なんとこれを実行するメモリが足りなかった(そんなことある!?)

Not enough available memory to open a keyslot.

ので、HDDを再フォーマットしてチャレンジします…

A/2=

1/28(火)

仕事が全然進まずつらい。帰りに同僚とラーメン。銀座のラーメンはお上品でどうも物足りない。ラーメンは野蛮なほうが好きだ。

とても寒い。自宅から出なくていいなら天気はハチャメチャになってくれたほうが楽しいのだが、会社員の身ではそうも言っていられない。寒いのも靴が濡れるのも嫌だ。

30日OS本はのんびり5日目の文字の描画をやっている。ピクセルデータをVRAMに投入していくだけなので簡単と思いきや、妙に小さく潰れた「A」が表示された。QEMUに解像度の設定などを渡す必要があるのかと思って精査してみると、単に上半分しか描画できてないだけだった。


Aが表示されるはずと思いこんで見るとAじゃないですかこれ?


これが本物のA

Aの上半分もAに見えるの、フラクタルだ。

定番外し/F4C3

1/14(火)

今日は昼食を食べに外に出て、いつもの店のいつもは頼まないメニューを頼んでみたのだがやはりいつものメニューのほうが良かった。冒険はリスクを伴う。

今日もぼちぼちOS30日本を進めた。3日目が終了。HLTRETをループするだけの関数をアセンブリで書き、それをCで読み込んで実行するプログラムを書いてコンパイルする。そうしてできたファイルをバイナリエディタで読んでみると、ちゃんと末尾がF4, C3になっていて感動。

もう2時か。さすがに遅い。

『第19回 自作OSもくもく会』に参加した

1/12(日)

https://atnd.org/events/110955

界隈の方に誘われ、同僚とともに参加した。フロントエンドエンジニアの自分が自作OSをやってどうなるのか。まだ初めたばかりなのであまり大きなことは言えないが、低レイヤーでも高レイヤー(?)でも共通する考え方のようなものがあって、低レイヤーの知識を得ることによって物事をより抽象的に捉えられるようになるかもしれないな、という感触がある。