追风 2009.03.05
概述
当系统出现panic的时候,kdump(内核崩溃转储机制)会通过调用kexec来快速的启动
预先准备好的dump-capture kernel.该启动方式与快速启动机制类似,不会经过BIOS,属于热启动。dump-capture
kernel 启动后,前一个内核运行时的内存镜像会被保存到/proc/vmcore,可以通过cp
或者scp将其vmcore文件拷贝到磁盘上。重启系统后,即可通过分析工具对刚才保存的vmcore文件进行分析,查找导致panic的原因。
dump-capture
kernel
启动只是使用少量的内存,并且这些内存由第一个内核提供。这样设计保证了第一个内核启动且正在运行中的DMA不会破坏第二个内核的运行。在内核崩溃之前所
有有关于核心映像的必要信息都用ELF格式编码并储存在预先保留的内存区域中。
目前kdump和kexec只支持x86,x86_64,ppc64,ia64这四种架构。
设置
1.安装kexec-tools工具,至于如何安装,在此不再多说。
2.编译支持kdump的系统内核,我们叫他primary kernel。
确认以下内核选项已经被打开并重编内核。
1) 使能"kexec system call => Processor type and features." ,使内核支持kexec系统调用
CONFIG_KEXEC=y
2) 使能"Filesystem" => "Pseudo
filesystems."=> "sysfs file system support"
CONFIG_SYSFS=y
注
意:如果"General Setup."=>"Configure standard kernel features (for small
system)" 没有打开的话,"sysfs file system support"可能并不会在"Pseudo
filesystems."中出现,如果是这种情况,可以直接检查.config文件,确认CONFIG_SYSFS是不是已经开启。
grep