相关的原理 kexec是一个快速启动机制,允许通过已运行的内核的上下文启动一个linux内核,不需要经过BIOS。实现kdump机制的关键,包括二个组成部分:一是内核空间的系统调用kexec_load,负责在生产内核启动时将捕获内核加载到指定的地址。二是用户空间的工具kexec-tools,将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到捕获内核的地址并运行。 kdump是一种先进的基于kexec的内核崩溃转储机制。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫捕获内核,以很少内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二个内核启动用。由于kdump利用kexec启动捕获内核,绕过了BIOS,所以第一个内核的内存得以保留,这是内核崩溃转储的本质。

需要安装的软件 kdump-tools kexec-tools makedumpfile

以ubuntu系统为例 查看kdump服务状态 service kdump-tools status

查看kdump状态 kdump-config show

修改grub.cfg文件 BOOT_IMAGE=/boot/vmlinuz-4.14.0-generic root=UUID=70764d69-1d67-4f16-a6cc-fe54ab4510a5 ro crashkernel=512M quiet 配置完成后,重启主机生效。 注意:crashkernel=512M 设置大小跟服务器型号相关