在VMware中安装了centos,重启时报错:Failed to start Crash recovery kernel arming
本质是kdump服务启动失败
先来说一下,什么是kdump
Kdump是一个内核崩溃转储机制,在系统崩溃的时候,Kdump将捕获系统信息,这对于针对崩溃的原因非常有帮助。注意,Kdump需要预留一部分系统内存,而且这部分内存对于其他用户是不可用的。
启动失败的原因
查看 /etc/grub.conf文件,发现crashkernel=auto,问题就出在这儿:
注:centos7后为:vi /etc/grub2.cfg
系统对crashkernel=auto的定义为:
如果系统的内存 <= 8 GB 对kdump kernel不会保留任何内容;也就是说,crashkernel=auto 等
于关掉了机器上的kdump功能;
如果系统的内存> 8 GB 但是<= 16 GB,crashkernel=auto会保留256M,等同于crashkernel=256M;
如果系统内存> 16GB,crashkernel=auto会保留512M,等同于crashkernel=512M。
安装虚拟机时,给虚拟机设置的内存为1G,所以说系统关掉了kdump功能,造成了kdump服务启动失败。
找到了原因,重新给crashkernel设置参数即可:
在 kdump 的配置中,往往困惑于 crashkernel 的设置。“crashkernel=X@Y”,X 应该多大? Y
又应该设在哪里呢?实际我们可以完全省略“@Y”这一部分,这样,kernel 会为我们自动选择
一个起始地址。而对于 X 的大小,般对 i386/x86_64 的系统, 设为 128M 即可;对于 powerpc
的系统,则要设为 256M。
将crashkernel=auto 改为crashkernel=128M 后保存,如果还不能解决问题,改为256m试试
重新启动系统,kdump服务启动成功。