Armadilloフォーラム

SDブート,電源いきなり遮断場合

ma2013

2016年2月5日 18時56分

いつもお世話になっております。
MCSのマーと申します。

ルートファイルシステムをSDカードに構築して使いたいですが,
システム起動中に電源をいきなり切ってもSDカードは壊れないでしょうか?
弊社自作アプリでは,システム起動中にSDカードを書くことはありません。

Linux起動の仕組はあまり分かりませんので,
教えてくださると大変助かります。

コメント

at_yuma.arakawa

2016年2月8日 10時53分

> ルートファイルシステムをSDカードに構築して使いたいですが,
> システム起動中に電源をいきなり切ってもSDカードは壊れないでしょうか?
ルートファイルシステムをSDカードに構築しているならば、
syslogのログ保存もSDカード上に行われますので、ブート時に電源を切ると、
SDカード上のファイルシステムを破壊する可能性があります。

ma2013

2016年2月8日 11時37分

> > ルートファイルシステムをSDカードに構築して使いたいですが,
> > システム起動中に電源をいきなり切ってもSDカードは壊れないでしょうか?
> ルートファイルシステムをSDカードに構築しているならば、
> syslogのログ保存もSDカード上に行われますので、ブート時に電源を切ると、
> SDカード上のファイルシステムを破壊する可能性があります。

課題あること分かりました。ありがとうございました。

saitoh

2016年2月9日 16時14分

齊藤と申します。

一応確認ですが、SDカードが壊れると言っても,ファイルシステム構造に矛盾を来すと言う意味での「壊れる」であって物理的に壊れて交換が必要になると言う「壊れる」ことはまず無い、ということはご存じですよね。

「起動」というのが始動なのか稼働なのか曖昧なので両方コメントします。。
Linux起動(boot)の仕組みで言うと、起動の初期段階なら電源が切れても大丈夫です。ブートの有る段階でルートファイルシステムをreadwriteマウントし直すのですが、それ以降は電源が切れたらまずいです。

Linux稼働中に電源が切れても大丈夫にするには:

SDカードにルートファイルシステムを置くことにどれだけ執着しているか(手間暇コスト)、というかそもそもどのような利益を求めてSDカードをルートファイルシステムにしたいと考えておられるのかが分からないので的確なアドバイスとは言えないかもしれません。

実際にarmadilloで検証はしていませんがLINUX/UNIX一般論としてはこんな感じかな?

手段1 SDカードをルートファイルシステムとしながら書き込まないようにカスタマイズ(readonly マウント)する。
たとえば/tmpと/var(と/dev)をRAMディスク上に構築するなど。
参考資料 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」 lc.linux.or.jp/paper/lc2003/CP-06.pdf

手段2 電源断自動シャットダウン機能をいれる
 UPSとまでは言いませんが電気二重層コンデンサなどで停電しても10数秒~数分は稼働し続けられるように外部電源回路を整備した上で、GPIOに電源喪失検知信号を入れて自動シャットダウンdaemonを自作する。

的外れだったらごめんなさい

ma2013

2016年2月10日 16時25分

> 齊藤と申します。
>
> 一応確認ですが、SDカードが壊れると言っても,ファイルシステム構造に矛盾を来すと言う意味での「壊れる」であって物理的に壊れて交換が必要になると言う「壊れる」ことはまず無い、ということはご存じですよね。
>
> 「起動」というのが始動なのか稼働なのか曖昧なので両方コメントします。。
> Linux起動(boot)の仕組みで言うと、起動の初期段階なら電源が切れても大丈夫です。ブートの有る段階でルートファイルシステムをreadwriteマウントし直すのですが、それ以降は電源が切れたらまずいです。
>
> Linux稼働中に電源が切れても大丈夫にするには:
>
> SDカードにルートファイルシステムを置くことにどれだけ執着しているか(手間暇コスト)、というかそもそもどのような利益を求めてSDカードをルートファイルシステムにしたいと考えておられるのかが分からないので的確なアドバイスとは言えないかもしれません。
>
> 実際にarmadilloで検証はしていませんがLINUX/UNIX一般論としてはこんな感じかな?
>
> 手段1 SDカードをルートファイルシステムとしながら書き込まないようにカスタマイズ(readonly マウント)する。
> たとえば/tmpと/var(と/dev)をRAMディスク上に構築するなど。
> 参考資料 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」 lc.linux.or.jp/paper/lc2003/CP-06.pdf
>
> 手段2 電源断自動シャットダウン機能をいれる
>  UPSとまでは言いませんが電気二重層コンデンサなどで停電しても10数秒~数分は稼働し続けられるように外部電源回路を整備した上で、GPIOに電源喪失検知信号を入れて自動シャットダウンdaemonを自作する。
>
> 的外れだったらごめんなさい

MCSのマーです。
大変勉強になりまして,ありがとうございました。
SDブートはハドルが高そうですので,取りあえずやめております。