1.安装必要的包

我们需要安装与所安装产品的 Service Pack 相匹配的软件包“kdump”和“kexec-tools”。
最简单的方法是使用 YaST 应用程序来安装这个包。
使用以下命令从控制台启动命令“yast2”:

# yast2 -i kdump
# yast2 -i kexec-tools

这将安装必要的软件包,或者我们可以使用图形系统安装程序 YaST 来安装适当的软件包。

更多: zhilu jiaocheng

2.配置Kdump捕获dump

首先,我们需要为捕获内核保留内存。
这将在引导命令行传递到系统内核。
SuSE 为 x86 和 x86_64 架构推荐如下设置: crashkernel=64M@16M

要更改此设置,我们可以启动 YaST,在系统下,选择引导加载程序。
在选项卡部分管理上,选择默认部分并按编辑。
将设置添加到标有“其他内核参数”的字段,然后按“确定”和“完成”保存设置。

接下来,我们需要激活 Kdump 以启动系统引导

# chkconfig kdump on

最后,我们需要重新启动系统以激活内核命令行的更改。
有关 Kdump 配置的更多信息可以在“/usr/share/doc/packages/kexec-tools/README.SUSE”中找到

在 SLES 的更高版本中,还有一个用于 YaST2 的模块 (yast2-kdump-*.rpm),可在系统上配置和激活 kdump。
只需运行

# yast2 kdump

要遵循的步骤

从版本 SLES 10 开始,Suse 使用 kdump 作为默认的故障转储捕获方法。
内核核心转储存储在“/var”下,因此我们需要注意分区“/var”有足够的空间来存储这些信息,至少比系统内存的物理量稍大。
当系统尝试存储多达 5 个核心转储时,磁盘空间应该是最佳的,能够保存所有这些信息。

3. 检查配置

为确保配置正常工作,我们可以使用内核的神奇 SysRq 功能进行测试。

警告:在执行下一步之前,请确保没有其他用户登录系统并保存所有工作,否则可能会导致数据丢失。

首先,我们需要使用以下命令启用它:

# echo 1 > /proc/sys/kerne/sysrq

接下来,我们应该同步硬盘的数据,以最大程度地减少丢失数据的风险

# echo s > /proc/sysrq-trigger

最后你可以强制系统“崩溃”

# echo c > /proc/sysrq-trigger

系统将保存故障转储数据。
这将需要一些时间,具体取决于系统内存量和转储写入设备的速度。
转储完成后,系统将重新启动,恢复正常服务。
成功生成coredump后,我们可以在目录“/var/log/dump/[YYYY-MM-DD-HH:MM]/vmcore”中找到core dump。

如何在 SuSE Linux Enterprise System 10 和 11 上配置 Kdump

这篇博文描述了如何在 SuSE Linux Enterprise System (SLES) 10 和 11 上设置 kdump,以从内核崩溃和崩溃中捕获核心转储。
当内核出现严重问题时,Kdump(内核转储)将内存转储到名为 vmcore 的文件中。
通常需要 Vmcore 来调查该问题。
崩溃转储是从新启动的内核的上下文中捕获的,而不是从崩溃内核的上下文中捕获的。
每当系统崩溃时,Kdump 使用 kexec 引导到第二个内核。
Kexec 是一种快速启动机制,它允许从正在运行的内核的上下文中重新启动新的 Linux 内核,而无需通过任何固件或者热启动。

日期:2020-09-17 00:13:20 来源:oir作者:oir