Raspberry PiでもBlynkサーバーダウンからの復旧手順備忘録のお話。
Raspberry PiでBlynkとNode-redを動かして自宅内自作スマートホームを実現しているという話は前に述べたんだけど、ときどきサーバーが動かなくなる。原因は不明。頻度は4ヶ月に1度くらいか。
そうなると短気なワシは単純にRaspberry Piの電源を強制的に切るという荒業をなんどかやってみる。
本当は直接コンソール操作ができるならちゃんとシャットダウンして再起動すればいいのかもしれないが、外出先で動かないということが判明するとスマートプラグで気軽にオン・オフしちゃっていたのだ。
サーバーが反応しなくなるたびにこのような電源強制断をやる。そうしたらある日突然起動しなくなる。
そんなときの対処の方法をここに残しておく。試行錯誤で戻り作業最小限でできたのでまたあるかもしれないからちゃんと記録しておく。
経緯
Raspberry PiとNode-redとBlynkでの自作無限IoT実現方法の話はこちら。
かれこれもう2年以上は便利に使っていて徐々に端末デバイスも増えたりしてマジ便利だけどBlynk Legacyっていうのがすでに終わっているサービスだからセキュリティの面で少々心配が残る。今回も動かなくなったのは外部から攻撃されたのか?なんて考えてしまったがそうではなさそうだった。
経緯を軽く述べておくと、
- Raspberry Piが突然ダウン
- サーバー不応答による強制電源断が原因でのカーネルパニックで起動しない
- せっかく構築した環境がパーか?また最初から作り直しか?
- いくつかのサイトを参考にRaspberry Pi起動ディスク復旧試してみるもうまく行かなかった
- 仕方なく別のMicroSDにRaspberry Pi起動システム入れて新規にサーバー構築
- 一応カーネルパニックのMicroSDはまだ上書きせず保管
- 新Raspberry Piで旧MicroSD読めて設定ファイルを無事復旧できたので備忘録
まあ簡単にいってしまえば上記のことをこれからくどくどと簡潔に述べる。
用意するもの
- MicroSD16GB以上
新Raspberry Piで旧MicroSDの中身を見てみたら10GB程度は使っていたので8GBのものでは無理みたい - MicroSDアダプター
MicroSDをRaspberry Piで読むためにUSBに刺すためのアダプターが要る
Raspberry Pi ZEROでサーバー構築している人がいるとしたらここで詰む?USBが標準タイプじゃないからさらなるアダプターが必要。
Raspberry Pi Zero 2 W ラズベリーパイ Zero W(2代)日本技適取得 RAM容量 512MB CPU速度1GHz クアッドコア 64ビット Arm CPUタイプ Cortex-A53 コンピュータ
¥4,980(2024/02/13 08:05時点の価格)
平均評価点:
>>楽天市場で探す
>>Yahoo!ショッピングで探す
手順
主にBlynk復旧方法
- 新しいMicroSDにRaspberry Piを入れる
できれば同じバージョン
違っていても動くかもしれないけどわからん。
参照先Raspberry Piのインストール方法 - 新しいMicroSDでRaspberry Piを起動する
- 固定IPアドレスにする、Wi-Fi設定をする、VNC設定をするなど
このページに一通り書いてある。 - Node-RedとBlynkをそれぞれ新規にインストール
参照先Node-redのインストール方法
参照先Blynk Legacyのインストール方法
それぞれ起動できることを確認
一旦停止(タスクキル) - USBにクラッシュしたRaspberry PiのMicroSDをUSBに入れる
カーネルパニックだけならホーム下の設定ファイルは見えるはず - 設定ファイルコピー
USBに挿入したMicroSDのホームディレクトリ下のBlynkディレクトリ内の設定ファイルをコピペ
Blynk設定ファイルの名前は・・・ - Blynkサーバーを再起動
Blynkは復活できた。 - スマホアプリでBlynk Legacyを起動してみるとクラッシュ前の画面が復活して元通り使える。
主にNode-red
これはちょっと面倒だった。
結論をいうとBlynkほどに簡単には復旧できず、各イベント1個ずつ(あるスイッチオンとかオフとか)について設定しなおしだ。
とはいえ根気よくやれば簡単で面倒なだけ。
設定ファイルの場所は~/.node-red配下にsettings.jsというのがあるからクラッシュしたRaspberry Pi起動ディスクからそれをコピーできれば新しく作った起動ディスクのNode-redインストールディレクトリの同じ場所にコピーする。
これでNode-redを起動したらそれらしいノード群が現れるのだがそのままでは動かないっぽい。
どこがどううまく行かないのか自分ではわからず、ChatGPTに聞いてもわからなかったのでうまくいかなかった方(Node-red Alexa Skill Bridgeとの連携)をやりなおした。
まとめ
ということでまとめるとRaspberry Piがカーネルパニックで起動できなくなったときの対処として
- ググりながらディスク復旧を試みる
- それでだめなら別のMicroSDにRaspberry Pi起動ディスクをつくりBlynkとNode-redを入れ直す
- Blynkの設定ファイルは旧ディスクからコピペで完全復活可能
- Node-redは部分的に設定をやり直す必要あり
という感じだ。再びこの経験をしたくないが、もう慣れたから大丈夫ともいえる。
Raspberry Pi 5 ラズベリーパイ5 8GB RAM シングルプレート Broadcom BCM2712 quad-core Arm Cortex A76 プロセッサー @ 2.4GHz
¥19,900(2024/02/13 08:06時点の価格)
平均評価点:
>>楽天市場で探す
>>Yahoo!ショッピングで探す
Raspberry Piもランクが上がってくると価格も上がってきてちょっと手が出しにくい。こうなるともうちょっと払えばwindowsのミニPC変えるじゃん、みたいな。
▼嫁氏のパソコンが古くなったからこれ買ってみたら頗る快適みたいで、これサーバーにしちゃっていんじゃね?ってちょっと思った。
TRIGKEY ミニPC インテル第12世代 N100 プロセッサー 最大3.4GHz TRIGKEY Green G4 小型 装備11 Pro OS, 16GB DDR4 500GB M.2 NVME SSD 2TBの拡張をサポートする 4K@60Hz 2画面同時出力, 有線LAN(1000M), 高速WiFi 6, Bluetooth 5.2, 2*HDMI 省電力
¥30,800(2024/02/13 07:58時点の価格)
平均評価点:
>>楽天市場で探す
>>Yahoo!ショッピングで探す