これは私が質問したもう一つの質問についての後続の質問です。ここ。
要約すると:Linux From Scratch(LFS)のインストールの一部として直接設定し、構築した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がある場所を知らせない場合は、次のように表示されます。
- /boot/system.map
- /system.map
- /usr/src/linux/System.map
Linuxカーネルのコンパイル出力が/usr/src/linux-version/System.mapに移動しますが、klogdがそこにはまったく表示されない場合があります。問題がある場合は、ファイルのコピーをすぐにお知らせします。
答え2
私の質問に答える:マッピングファイルが完全に削除されたとしても、私が作成したカスタムカーネルが起動して正しく実行されているようです。したがって、これはブートシステムの観点からは重要な要件ではないようです。しかし、Matt O.が答えで述べたように、メモリの場所がSystem.mapファイルに含まれているシンボルと一致しない場合、デバッグがより困難になる可能性があります。