美文网首页
关于Failed to start Crash recovery

关于Failed to start Crash recovery

作者: kevinhuangk | 来源:发表于2017-02-13 10:44 被阅读2044次

    某天挂载了一个新硬盘后,我的centos7系统第二天就出现了崩溃现象,报错如题“failed to start crash recovery kernel arming”.

    意思大致为“内存崩溃捕获机制未能成功启动”,一搜才知道这是因为一个叫做kdump的服务无法启动导致的。

    那么什么是kdump呢?

    kdump 是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。详细的在:http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/index.html#major3

    那接下来查找失败的原因:

    看到一个博文中说与启动文件配置有关

    查看/etc/grub.conf 文件,发现crashkernel=auto,

    系统对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。

    接下来就是改写配置,但是没能在系统中找到博文中所说的/etc/grub.conf这个文件,后来想到从Centos 7之后启动就采用grub2 了,所以vi /etc/grub2.cfg把其中的crashkernel=auto改成crashkernel=256M重启就成功了。

    相关文章

      网友评论

          本文标题:关于Failed to start Crash recovery

          本文链接:https://www.haomeiwen.com/subject/sqmzittx.html