怎么样建设公司网站,哈尔滨seo优化排名免费咨询,互站网源码商城,《30天网站建设实录》本文记录了在原生未启用kdump的BCLinux 8系列操作系统的服务器上手动启用kdump服务及报错处理的过程。
一、问题描述
BCLinux 8系列操作系统#xff0c;系统初始化安装时未启用kdump服务#xff0c;手动启动时报以下“No memory reserved for crash kernel”或“ConditionK…本文记录了在原生未启用kdump的BCLinux 8系列操作系统的服务器上手动启用kdump服务及报错处理的过程。
一、问题描述
BCLinux 8系列操作系统系统初始化安装时未启用kdump服务手动启动时报以下“No memory reserved for crash kernel”或“ConditionKernelCommandLinecrashkernel was not met”的错误信息无法启动。
1、现象1
报“No memory reserved for crash kernel”错误 2、现象2
根据系统小版本差异可能会有另一种“ConditionKernelCommandLinecrashkernel was not met”报错 二、问题分析
kdump需要一块预留的内存区域来在内核崩溃时捕获内存转储。因此需要在GRUB配置文件中为kdump保留一部分内存。对于系统初始安装时未启用kdump服务则对应GRUB配置文件会略过预留内存的相关配置。核查当前配置
# cat /etc/default/grub|grep GRUB_CMDLINE_LINUX
GRUB_CMDLINE_LINUXrd.lvm.lvbel/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_LINUXrd.lvm.lvbel/root rhgb quiet crashkernel512M 预留内存的大小与系统自身的物理内存大小有关系应根据系统的总内存大小来设置以确保在转储过程中有足够的内存资源。 2、更新GRUB配置
保存对/etc/default/grub的更改后需要更新GRUB配置并重启系统以使更改生效。
注意GRUB的更新配置文件的路径因系统配置而异根据服务器的引导方式可能会是“/boot/grub2/grub.cfg”或是“/boot/efi/EFI/bclinux/grub.cfg”两个文件系统中只会存在一个可以检查当前系统是使用的哪一个文件——操作前请先备份原文件。
对于前者执行命令及结果如下 对于后者执行命令及结果则如下 [rootlocalhost ~]# grub2-mkconfig -o /boot/efi/EFI/bclinux/grub.cfg Generating grub configuration file ... done 3、核查GRUB配置文件差异
两种启动模式的服务器配置文件对比情况如下 [rootlocalhost ~]# diff /boot/efi/EFI/bclinux/grub.cfg{,.bak} 140c140 set kerneloptsroot/dev/mapper/bel-root ro rd.lvm.lvbel/root rhgb quiet crashkernel512M --- set kerneloptsroot/dev/mapper/bel-root ro rd.lvm.lvbel/root rhgb quiet 可见均是在对应启动命令行参数的末尾添加了crashkernel配置项。
4、重启系统
启动kdump服务以确保它在系统启动时自动运行。
[rootlocalhost ~] systemctl enable kdump
然后对服务器进行重启可以看到kdump服务在服务器重启后已经能正常运行了。 5、验证kdump是否工作正常 为了验证kdump是否配置正确并能在系统崩溃时捕获内存转储可以手动触发一个内核崩溃来进行测试系统会重启。
[rootlocalhost ~] echo 1 /proc/sys/kernel/sysrq
[rootlocalhost ~] echo c /proc/sysrq-trigger
然后检查你指定的vmcore文件保存位置是否有新的vmcore文件生成。
以上为在BCLinux 8系列服务器手动启用kdump服务的过程供参考。