重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 323|回复: 0

[系统安全] centos7系统出现崩溃现象之“failed to start crash recovery kernel arming”.

[复制链接]
发表于 2023-10-31 16:02:01 | 显示全部楼层 |阅读模式
本帖最后由 jiawang 于 2023-10-31 16:02 编辑

操作系统重启出现了崩溃现象,报错如题“failed to start crash recovery kernel arming”.
72338653f3e19423ef.png
意思大致为“内存崩溃捕获机制未能成功启动”,一搜才知道这是因为一个叫做kdump的服务无法启动导致的。

那么什么是kdump呢?

kdump 是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。启用kdump需要你通过kdump专用储备系统存储器的一部分。这段内存不可用作其他用途。这和以前的diskdump,netdump是同样道理.cent 5之后的版本出现的.


启动失败的原因
查看 /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。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2023-12-9 16:43 , Processed in 0.104495 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表