私の組み込みLinuxデバイスは、特定の診断データを保存するためにSDカードを使用しますが、内部フラッシュにはあまりにも多すぎます。
問題は、デバイスの電源が予期せずオフになった場合、カードのファイルシステム(FAT32)が破損することです。
予期しない停電やユーザーがそのように電源を切ることを防ぐ方法はなく、デバイスは比較的メンテナンスフリーである必要があります。さらに悪いことに、データは継続的に書き込まれるため、破損は非常に頻繁に発生し、Linuxは障害のあるFSを検出すると、読み取り専用でサイレントに再マウントします。
これを軽減するためにどのような方法を提案しますか?起動時にfsck.vfatを自動的に実行するだけで十分ですか?
詳細情報:
- ユーザーがカードを取り外し可能と見なさないでください。それは内部ディスクと考える必要があります。その上に保存されたデータはすべて、ネットワーク経由またはusbドライブ経由でダウンロードできるようになり、システムは自動的に最も古いエントリを削除します。つまり、平均的なPCで読み取る必要はありません。
- システムは現在、FAT、yaffs、jffs2をサポートしています。カーネルに他のファイルシステムを追加することは可能ですが、他の手段が存在する場合は、最初にそれらを優先します。
- 書き込みは、データ損失なしで数分間でもオンデマンドで中断できます。
- 部分的なデータ損失または軽微な破損は許容されます。ロギングの完全な停止はそうではありません。
- ほとんどの場合、電源オフイベントは完全に予測不能です。
- システムはARM9、200MHZ、64MB RAM、32MBの内部フラッシュで実行されており、主な役割のためにCPUパワーのほとんどを使い果たします。凝ったリソースを大量に使用するソリューションを検討する際には、これを考慮してください。