대형 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" 옵션을 사용하셨습니까? 그렇지 않으면 액세스할 때마다 쓰기가 발생합니다.