kdump Linux Kernel 崩溃时的转储机制,简单理解就是在系统启动过程中如果 Kernel 因为某些原因崩溃了,kdump 就会负责记录日志以便排查原因。在 CentOS 6 Linux 发行版中,即便采用最小化安装, kdump 也会作为服务安装到系统中,此时可能因为我们对 Linux分配的内存的限制导致 kdump 服务开机启动失败,如图 1 所示:

多学一点(十三)——解决Linux kdump服务启动失败_第1张图片

-1 kdump启动失败

解决 kdump 启动失败其实很简单,只要修改 grub.conf 文件,改变crashkernel 的值(默认值为 crashkernel=auto),为其自定义预留内存即可。对于不同内存的 Linux 操作系统其预留内存一般遵循以下原则:

1. 如果系统内存 <= 8G crashkernel=auto 即为关闭 kdump,只要为其预留 128M 内存即可解决问题:

[root@localhost ~]# vim /boot/grub/grub.conf  //或者
[root@localhost ~]# vim /etc/grub.conf

找到crashkernel ,将 crashkernel=auto 修改为 crashkernel=128M ,重新启动 Linux 即可。

2. 如果8G < 系统内存 <= 16G crashkernel=auto 会预留 256M 内存,即等同于 crashkernel=256M kdump 不会启动失败。

3.如果系统内存 > 16G crashkernel=auto 会预留512M 内存,即等同于crashkernel=512M ,同样 kdump 不会启动失败。

修改完成后再重新启动系统,发现之前 kdump 的启动失败已经变为成功,如图 2 所示:

多学一点(十三)——解决Linux kdump服务启动失败_第2张图片

-2 kdump启动成功

    当然,关于 kdump的知识还有很多,我们这里知识强迫症似的将系统内存 <= 8G 时其启动失败的问题解决,有关 kdump 我们之后继续跟进,深入了解。

 

参考资料:

http://zmyxn.blog.51cto.com/3029175/1620686