问题现象
执行systemctl status kdump命令,显示状态信息如下,提示无预留内存。
原因分析
kdump服务需要系统预留一段内存用于运行kdump内核,而当前系统没有为kdump服务预留内存,所以无法运行kdump服务。
解决方法
已安装操作系统的场景
- 修改/boot/efi/EFI/openEuler/grub.cfg,添加crashkernel=1024M,high。
- 重启系统使配置生效。
- 执行如下命令,检查kdump状态:
systemctl status kdump
若回显如下,即kdump的状态为active,说明kdump已使能,操作结束。
参数说明
kdump内核预留内存参数说明如下:
表 1 crashkernel参数说明
内核启动参数 | 描述 | 默认值 | 备注 |
---|---|---|---|
crashkernel=X | 在4G以下的物理内存预留X大小的内存给kdump使用 | 无,用户根据实际情况调整 | 该配置方法只在4G以下内存预留,必须保证4G以下连续可用内存足够预留 |
crashkernel=X@Y | 在Y起始地址预留X大小的内存给kdump使用 | 无,用户根据实际情况调整 | 需要确保Y起始地址的X大小内存未被其他模块预留 |
crashkernel=X,high | 在4G以下的物理内存中预留256M大小,在4G以上预留X大小内存给kdump使用 | 无,用户根据实际情况调整,推荐值为1024M,high | 确保4G以下内存有256M连续可用内存,4G以上有连续X大小内存可预留。实际预留内存大小为256M+X |
crashkernel=X,low |
crashkernel=Y,high|在4G以下的物理内存中预留X大小,在4G以上预留Y大小内存给kdump使用|无,用户根据实际情况调整|需要确保4G以下有X大小连续可用内存,4G以上有Y大小连续可用内存。实际预留内存大小为X+Y|