ラズパイのSDカードを縮小etc.
再構築した自宅サーバーは、気温のせいかやっぱりたびたびハングアップしてる。
GoProの書き込み速度にも対応してるマイクロSDにしたのが裏目に出たのかな。前まで使ってたやつは、同じようにハングするようになって新調したSDカードのはずだけど(手持ちのSDカードを再利用したんだったかな?)、そいつをを使ってる間はあまりハングしてない気がする。
と言うわけで、もう一度そのSDカードにしようと思ったんだけど、この前無駄に64GBにサイズアップしちゃったから、32GBのSDカードに書き戻すためには色々手間がかかる。
基本的な手順はこちらを参考にして、PiShrinkというツールを使った(イメージファイルをマウントしてパーティションを縮小するような処理をして、ついでに次回起動時にSDカード全体に領域を拡張するようなスクリプトを仕込んでくれてるようだ。)。
そのページのマネしてWSL (Windows Subsystem for Linux)を始めてまともに使ってみたけど、Cygwinみたいなもんかと思ったけど、ディストリビューションとかもあって思ったよりもちゃんとしてるのね。でもネットワーク上の共有フォルダをマウントするのは一癖あった。
$ sudo mount -t drvfs ‘\\nas\share’ /mnt/nas/
竹内電設.com
(メインのPCのストレージが足りてなくてNASに64GBのイメージを仮置きして、それをWSL上のPiShrinkで直接縮小したのだった。)
しかし、縮小したイメージを32GBのSDカードに書き込んで起動してみたら、MySQLがうまく起動しなくて、この辺の情報を鵜呑みにしてib_logfile0, ibdata1を削除したらMySQLも起動してきたんで一安心。
ところが、ブログのトップページを開いたらWordPressのインストールページが表示されて、一難去ってまた一難。DBの中身が見れなくなっていた。orz
この状態から簡単にリカバリできないかとググってみたけど、よく分からなかったので、元の64GBのSDカードを余ってたラズパイにツッコんで起動して、双方のMySQL(MariaDB)を停止した状態で/var/lib/mysqlを丸ごとコピーしてやって復旧。
あと、/var/logをtmpfsにしてSDカードと同期させるようなスクリプトを自前で用意してたけど、Anything-sync-daemonってのが同じようなことをもっとスマートにやってくれるようなので導入。/var/logだけじゃなくて/var/lib/monitorixもtmpfs化するといいらしい。具体的な手順はこのページを参考にした(arclinuxのサイトではダウンロードページが見つけられなかったので、GitHubからダウンロードした。)。
ただ、自前でtmpfs化してた状態のままAnything-sync-daemonを有効にしたせいか、rebootすると全く無反応で起動してこなくなっちゃって、縮小イメージの書き込みから何度かやり直す羽目に…。イマイチ原因はよく分からなかったが、自前tmpfsを無効化して再起動し、その後改めてAnything-sync-daemonを有効にして再起動する、のように順を追って進めていったら無事に起動できた。
ところで、Anything-sync-daemonと似て非なるProfile-sync-daemonと言うものもあって、Profile-sync-daemonはDebian(Raspberry Pi OS)のパッケージもあったんだけど、一般ユーザー権限でブラウザのキャッシュをtmpfs化するための物のようで、/var/logのようなシステムワイドの領域に使えるのかよく分からなかったので、Anything-sync-daemonを使うことにした。
さて、これでハングアップは収まるだろうか?
ていうか、休日にクルマのメンテやサーバーのメンテをしてると、遊んでると思われてるのが、なんだかなあ…って感じ。。。モチベーション保つのって難しい。
やっぱりハングアップするので、CPUクロックを600MHzに落としてみた。
/boot/firmware/config.txt に
arm_freq=600
を追記した。
それでもやっぱりハングした。
ヒートシンクにファンでも付けるか…。