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