linux panic 日志,linux panic 记录文件

1     设计

1.1    技术

使用kdump(kexec)引导第二个内核启动,在第二个内核中捕捉panic信息,同时将系统内核的内存镜像存储到/proc/vmcore文件中,由于此文件与内存大小一致,故不能直接使用此文件。使用kexec 的一个工具vmcore-dmesg,可以将/proc/vmcore转换为dmesg的信息,然后存储到文件中即可。

1.2    步骤

1.2.1  制作小内核

制作一个小内核,即crash kernel,专门捕捉panic信息,必须足够小,如此可以少占用内存。

根据内核文件kdump.txt,编译小内核时,编译参数选中HIGHMEM、CRASH_DUMP、PROC_VMCORE、RELOCABLE,详细参考内核文档。

小内核使用自己的config文件编译,目前小内核加上文件系统总共2.1M(已经包含了网络和部分网卡驱动)。

1.2.2  修改大内核

大内核,即系统内核,增加KEXEC编译选项,注意openwrt中不仅仅选中内核参数,还需要选中openwrt的“Global build settings”的KEXEC编译参数,之前为此搞了近一个星期。

1.2.3  修改grub

引导大内核时,需要指定参数crashkernel,由于小内核足够小,目前仅仅预留32M。

小内核启动后,只能使用crashkernel指定的内存区域,大内核的内存内容不会被修改。

1.2.4  启动脚本

大内核启动脚本,启动时调用命令kexec -p PATH_TO_CRASH_KERNEL&


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部