"지도 파일을 찾을 수 없습니다"는 정말 심각한 문제입니다. 메시지를 시작하시겠습니까?

"지도 파일을 찾을 수 없습니다"는 정말 심각한 문제입니다. 메시지를 시작하시겠습니까?

이것은 제가 질문한 또 다른 질문에 대한 후속 질문입니다.여기.

요약하자면: LFS(Linux From Scratch) 설치의 일부로 직접 구성하고 구축한 Linux 커널을 부팅하려고 합니다. 그러나 다음 줄이 표시됩니다 /var/log/kern.log.

Oct 9 17:24:17 <lee_lfs> kernel: Cannot find map file.

나는 klogd의 소스 코드(SysVinit를 사용하고 있음)를 읽었는데 문제는 매핑 파일에 klogd가 찾고 있는 "version" 행이 포함되어 있지 않은 것 같습니다.

어쨌든 내 질문은 이 문제가 얼마나 큰가 하는 것입니다. 이로 인해 어떤 유형의 문제가 발생할 수 있나요? 이 문제는 무시해도 됩니까? 시스템이 여전히 정상적으로 작동해야 합니까, 아니면 해결해야 할 문제입니까?

답변1

이게 얼마나 큰 문제입니까.

매우 중요합니다. 예를 들어 배포판이 작동하지 않을 수 있습니다.

이로 인해 어떤 유형의 문제가 발생할 수 있나요?

이것은 말하기가 약간 어렵지만 커널 로그를 보면 꽤 빨리 알 수 있습니다.

이 문제는 무시해도 됩니까? 시스템이 여전히 정상적으로 작동해야 합니까, 아니면 해결해야 할 문제입니까?

안정성을 중시한다면 이는 무시할 수 없는 문제라고 생각합니다. 제가 이렇게 말하는 이유는 그것 없이는 시스템을 디버깅하기가 어렵기 때문입니다.

글쎄요, 무슨 일이 일어나고 있는지 알 수 있어요.

커널이 system.map을 빌드하지 않았거나, 심볼릭 링크가 생성되지 않았거나, 일부 권한으로 인해 문제가 발생했습니다.

도움이 된다면 system.map을 기호 테이블이라고도 합니다. 앞서 안정성에 영향을 미친다고 언급했지만 시스템 디버깅을 더 어렵게 만드는 경우가 많습니다.

무슨 일이 일어나고 있는지 확인할 수 있는 Makefile의 항목은 다음과 같습니다.

nm /boot/vmlinux-2.4.18-19.8.0 > System.map
# Below is the line from /usr/src/linux/Makefile 
nm vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
cp /usr/src/linux/System.map /boot/System.map-2.4.18-14   # For v2.4.18

따라서 먼저 이 복사본이 발생하는지 확인하세요.

상황을 더 복잡하게 만들기 위해 klogd에 system.map이 있는 위치를 알려주지 않으면 다음과 같이 표시됩니다.

  1. /boot/system.map
  2. /system.map
  3. /usr/src/linux/System.map

Linux 커널 컴파일 출력이 /usr/src/linux-version/System.map으로 이동하지만 klogd가 거기에서 전혀 볼 수 없는 경우가 있습니다. 문제가 있는 경우 파일 사본을 통해 즉시 알려드립니다.

답변2

내 질문에 대답하자면: 매핑 파일이 완전히 삭제된 경우에도 내가 만든 사용자 정의 커널이 부팅되고 제대로 실행되는 것 같다는 것을 확인할 수 있습니다. 따라서 이는 부팅 시스템 관점에서 볼 때 중요한 요구 사항은 아닌 것 같습니다. 그러나 Matt O.가 답변에서 말했듯이 메모리 위치가 System.map 파일에 포함된 기호와 일치하지 않으면 디버깅이 더 어려워질 수 있는 것 같습니다.

관련 정보