春雨日記 about me tags

起動させっぱなしにしているG-Clusterくんが停電によってファイルシステム破損を起こしてしまったので、腰を据えてroで動作できるようにしました。

はじめに

我が家ではG-Clusterを使った防犯カメラシステムを構築しています。 ですが、実験運用だからええかとrootfsをrwにしまたま放置していたところ、先日早速停電してしまい無事に起動しなくなりました…

なのでroに変更してみた記録

方法

いろいろ試した結果、fstabでroにして再起動するだけでよさそうです。

まったくubiに触っていない状態ではubiattachをする方法がわからなかったのですが、カーネルパラメータによって起動時にubi0が生成されているため普通に書けばOKでした。

1. fstabに追記

こんな感じにします。

log等の書き換えられる領域にはtmpfsをマウントしておきます。さらにほしい場合は下に追記。

ubi0:rootfs     /               ubifs   defaults,ro     0  0
tmpfs           /tmp            tmpfs   defaults        0  0
tmpfs           /var/log        tmpfs   defaults        0  0
tmpfs           /var/lock       tmpfs   defaults        0  0

2. 元々のディレクトリを空に

1
2
3
rm -rf /tmp/*
rm -rf /var/log/*
rm -rf /var/lock/*

3. 再起動

再起動後、mountを実行してroになっているか確認します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
ubi0:rootfs on / type ubifs (ro,relatime,assert=read-only,ubi=0,vol=0)
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=10240k,nr_inodes=22489,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=49148k,nr_inodes=819200,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /var/log type tmpfs (rw,relatime)
tmpfs on /var/lock type tmpfs (rw,relatime)

成功のようです。

今のところ何もエラーメッセージ等は表示されていません。

おわりに

以前Raspberry Piで何も考えずにcmdlineでroにした所エラーで起動しなくなった記憶があったのでできるか不安だったのですが、案外普通にできました。

roにしておけば常時起動でもかなり安心で、メモリの寿命も伸びるはずなので皆さんもぜひ。