在原生未启用kdump的BCLinux 8系列服务器上启用kdump及报错处理

avatar
作者
猴君
阅读量:0

本文记录了在原生未启用kdump的BCLinux 8系列操作系统的服务器上手动启用kdump服务及报错处理的过程。

一、问题描述

BCLinux 8系列操作系统,系统初始化安装时未启用kdump服务,手动启动时报以下“No memory reserved for crash kernel”或“ConditionKernelCommandLine=crashkernel was not met”的错误信息,无法启动。

1、现象1

报“No memory reserved for crash kernel”错误:

 2、现象2

根据系统小版本差异,可能会有另一种“ConditionKernelCommandLine=crashkernel was not met”报错: 

二、问题分析

kdump需要一块预留的内存区域来在内核崩溃时捕获内存转储。因此需要在GRUB配置文件中为kdump保留一部分内存。对于系统初始安装时未启用kdump服务,则对应GRUB配置文件会略过预留内存的相关配置。核查当前配置:

# cat /etc/default/grub|grep GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX="rd.lvm.lv=bel/root rhgb quiet

可见确实没有crashkernel选项。问题就是这样所引起的

三、问题处理

1、GRUB配置文件添加crashkernel选项

crashkernel参数配置在GRUB引导加载器的配置文件中(如/boot/grub/grub.conf或/etc/default/grub),系统中只会存在一个,可以检查当前系统是使用的哪一个文件。

本例为/etc/default/grub文件,编辑该文件在GRUB的命令行参数中添加crashkernel选项,编辑前请先备份原文件。

例如,为kdump保留512MB内存,可以将“GRUB_CMDLINE_LINUX”行修改如下:
GRUB_CMDLINE_LINUX="rd.lvm.lv=bel/root rhgb quiet crashkernel=512M"

预留内存的大小与系统自身的物理内存大小有关系,应根据系统的总内存大小来设置,以确保在转储过程中有足够的内存资源。

2、更新GRUB配置

保存对/etc/default/grub的更改后,需要更新GRUB配置并重启系统以使更改生效。

注意:GRUB的更新配置文件的路径因系统配置而异,根据服务器的引导方式可能会是“/boot/grub2/grub.cfg”或是“/boot/efi/EFI/bclinux/grub.cfg”,两个文件系统中只会存在一个,可以检查当前系统是使用的哪一个文件——操作前请先备份原文件。

对于前者,执行命令及结果如下:

对于后者,执行命令及结果则如下:

[root@localhost ~]# grub2-mkconfig -o /boot/efi/EFI/bclinux/grub.cfg
Generating grub configuration file ...
done

3、核查GRUB配置文件差异

两种启动模式的服务器配置文件对比情况如下:

[root@localhost ~]# diff /boot/efi/EFI/bclinux/grub.cfg{,.bak}      
140c140
<   set kernelopts="root=/dev/mapper/bel-root ro rd.lvm.lv=bel/root rhgb quiet crashkernel=512M "
---
>   set kernelopts="root=/dev/mapper/bel-root ro rd.lvm.lv=bel/root rhgb quiet "

可见均是在对应启动命令行参数的末尾添加了crashkernel配置项。

4、重启系统

启动kdump服务以确保它在系统启动时自动运行。

[root@localhost ~] systemctl enable kdump 

然后对服务器进行重启,可以看到kdump服务在服务器重启后已经能正常运行了。

5、验证kdump是否工作正常
为了验证kdump是否配置正确并能在系统崩溃时捕获内存转储,可以手动触发一个内核崩溃来进行测试(系统会重启)。
[root@localhost ~] echo 1 > /proc/sys/kernel/sysrq   [root@localhost ~] echo c > /proc/sysrq-trigger

然后,检查你指定的vmcore文件保存位置是否有新的vmcore文件生成。

以上为在BCLinux 8系列服务器手动启用kdump服务的过程,供参考。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!