iwaya_matsumoto
2024年8月26日 16時06分
Armadillo-610を内製基板で作動させていた際に、Armadillo-610が作動途中で操作不能になり、SDカードへのログの書き込みも停止しました。
異常を確認後、電源を再起動することで、再度正常に動くようになりましたが、上記のような症状が発生する際には、どのような状況が考えられますでしょうか?
推測としては、電源の瞬断と再投入が繰り返させると、似たような症状になったことがあったのですが、それ以外にも原因がありますでしょうか?
at_ohsawa
2024年8月26日 17時04分
> Armadillo-610を内製基板で作動させていた際に、Armadillo-610が作動途中で操作不能になり、SDカードへのログの書き込みも停止しました。
> 異常を確認後、電源を再起動することで、再度正常に動くようになりましたが、上記のような症状が発生する際には、どのような状況が考えられますでしょうか?
>
> 推測としては、電源の瞬断と再投入が繰り返させると、似たような症状になったことがあったのですが、それ以外にも原因がありますでしょうか?
前提としてBaseOSではなく、debianユーザーランドを利用で、
ArmadilloのeMMCからブートした上で、eMMC上のdebian自体にはoverlayfsによる
書き込み保護を有効にしており、ログ書き込みのためにSDカードを別途マウントしている。
という状況であると仮定します。
その場合、SDカードをマウント状態で書き込みを適宜しつつ
正常なshutdown以外で電源を遮断されると、SDカードのファイルシステムに
障害が起きる可能性があります。
(書き込みはRAM上でバッファされるので、実際にSDカードに書き込まれる
タイミングは、ソフト的にファイルが書き込み済みに見えるタイミングより後
の不定な時間になります。実際にSDカードに書き込み処理が走るタイミングで
電源を切るとファイルシステムが破損する可能性があります)
SDカードのファイルシステムの種類が何かによりますが、linuxはファイルシステムが
破損している場合、最大限復旧させるようにfsckによるチェックと復旧を努力するため
一度失敗してエラー状態だと判断されても、再起動で復旧(というより一部データが
古いがファイルシステムとして矛盾の無い状態)に戻って稼働したと考えるのが
状況から聞く限りの可能性になります。