私の組み込みLinuxデバイスは、特定の診断データを保存するためにSDカードを使用していますが、内部フラッシュには多すぎます。
問題は、デバイスが予期せずオフになっている場合、カードのファイルシステム(FAT32)が破損していることです。
予期しない停電やユーザーがそのように電源を切るのを防ぐ方法はありません。デバイスは比較的メンテナンスフリーである必要があります。さらに悪いことに、データは継続的に書き込まれるため、破損が非常に頻繁に発生し、Linuxは障害を検出するとFSは、データを読み取り専用でサイレントに再マウントします。
これを軽減するためにどのような方法を提案しますか?起動時にfsck.vfatを自動的に実行するだけで十分ですか?
さらに詳しい情報:
block2mtd
ドライバーを使用して、SDカードの他の場所で使用していると思われるトランザクションjffs2またはyaffs(2)ファイルシステムを使用できます。これにより、電源オフ時のデータ損失またはファイルシステム破損の問題が解決されます。
ただし、そうすると他の問題が発生する可能性があります。 SDカードには、ウェアレベリングとセクターの再マッピングのための独自のメカニズムがある可能性が高いため、これらはjffs2とyaffsの実装を妨害して、SDカードの寿命やパフォーマンスを低下させる可能性があります。これが問題ではない場合は、試す価値があります。
使用しているカーネルがvfatのフラッシュや同期フラグをサポートしているかどうかを確認します(一部のバージョンでは無視されているようです。注意してください)。
または、ファイルシステムを完全に廃止するすべてを1つのファイル(生のログストリームの場合のように!)またはいくつかの固定サイズのファイル(パーティションを使用;)に入れることができる場合