kdump 是 Linux Kernel 崩溃时的转储机制,简单理解就是在系统启动过程中如果 Kernel 因为某些原因崩溃了,kdump 就会负责记录日志以便排查原因。在 CentOS 6 等 Linux 发行版中,即便采用最小化安装, kdump 也会作为服务安装到系统中,此时可能因为我们对 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 所示:
图-2 kdump启动成功
当然,关于 kdump的知识还有很多,我们这里知识强迫症似的将系统内存 <= 8G 时其启动失败的问题解决,有关 kdump 我们之后继续跟进,深入了解。
参考资料:
http://zmyxn.blog.51cto.com/3029175/1620686
本文出自 “细桶假狗屎” 博客,请务必保留此出处http://xitongjiagoushi.blog.51cto.com/9975742/1651449