大規模なNANDデバイスで実行されるJFFS2ルートファイルシステムがあります。コンピュータを再起動すると、/sbin/initまたは/bin/loginが/libフォルダから動的にリンクされた共有ライブラリをロードしようとすると、誤ったELFヘッダーに関するエラーメッセージが表示されることがあります。
これらのエラーはカーネルパニックを引き起こし、コンピュータを再起動して実行するためにNANDを再フラッシュする必要がありました。
例:
/sbin/init: error while loading shared libraries: /lib/libc.so.6: invalid ELF header
Kernel panic - not syncing: Attempted to kill init!
Call Trace:
[dffc1d20] [c0007c74] (unreliable)
[dffc1d60] [c0020d68]
[dffc1db0] [c0025074]
[dffc1e80] [c00250bc]
[dffc1f40] [c000f340]
/ libフォルダのダイナミックリンクライブラリが破損しているようです。私はいません。考えるダイナミックリンクライブラリは、アップデートを行わない限り、通常の動作中でもディスクに書き込まれます。したがって、停電により破損した部分書き込みは除外されます。
もしそうなら、私が考えることができる唯一の理由は、JFFS2に記録されていないファイルを破損する恐れのあるバグがあるということです。それとも、NAND自体が破損しているのでしょうか?
誰にも異なるアイデアがありますか?それともベースから遠く離れていますか?
答え1
ルートパーティションまたはライブラリを含むパーティションをマウントするために "noatime"オプションを使用しましたか?それ以外の場合は、アクセスするたびに書き込みが行われます。