当前位置: 首页 > news >正文

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

本文记录了在原生未启用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服务的过程,供参考。

http://www.lryc.cn/news/426421.html

相关文章:

  • Android架构组件中的MVVM
  • 走向绿色:能源新选择,未来更美好
  • 鸿蒙装饰器的介绍
  • 零基础5分钟上手亚马逊云科技核心云架构知识 - 权限管理最佳实践
  • [数据库][知识]SQL Server、MySQL 和 Oracle 的默认端口和数据库链接
  • 【Unity教程】使用 Animation Rigging实现IK制作程序化的动画
  • OBS混音器(Mixers)的重要性和配置指南
  • Ubuntu安装Anaconda3
  • 数据类型解码:INT、VARCHAR、DATETIME的深度解析与实践
  • 基于单片机的智能晾衣系统设计
  • Python实战项目:天气数据爬取+数据可视化(完整代码)
  • 知识改变命运 数据结构【链表面试题】
  • 计算机毕业设计 医院问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 掌握CSS的:any-link伪类:统一链接样式的高效方法
  • 虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)
  • 防火墙技术与地址转换
  • C++11中的Lambda表达式
  • Unity图形系统
  • Ceph篇之利用shell脚本实现批量创建bucket桶
  • 周末总结(2024/08/17)
  • SQL高级编程:掌握自定义函数和过程的艺术
  • python监听环境内是否有声音
  • 合并两个有序链表--力扣
  • 【自用】Python爬虫学习(三):图片下载、使用代理、防盗链视频下载、多线程与多进程
  • #Datawhale AI夏令营第4期#AIGC方向Task3
  • 【docker综合篇】关于我用docker搭建了6个应用服务的事
  • 【sgCreateAPIFunction】自定义小工具:敏捷开发→自动化生成API接口方法代码片段脚本(接口方法代码生成工具)
  • Vue2图片懒加载(vue-lazyload)
  • Jenkins-拉取代码
  • 深度解析:.secret勒索病毒如何加密你的数据并勒索赎金