如何检查 Linux 中是否设置了内核崩溃转储

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本次实验中,你将学习如何检查 Linux 系统上是否已设置并配置了内核崩溃转储机制 kdump。我们将首先使用 kdumpctl status 命令检查 kdump 服务的当前状态。

接下来,我们将查看位于 /etc/kdump.confkdump 主配置文件,以了解其设置。最后,我们将检查 /proc/sys/kernel 目录中与崩溃相关的设置,以进一步验证内核的崩溃转储配置。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/cat -.-> lab-558720{{"如何检查 Linux 中是否设置了内核崩溃转储"}} linux/service -.-> lab-558720{{"如何检查 Linux 中是否设置了内核崩溃转储"}} end

使用 kdumpctl status 检查 kdump 状态

在这一步中,你将学习如何使用 kdumpctl 命令检查 kdump 的状态。kdump 是 Linux 中的一项功能,它提供了崩溃转储机制。当系统崩溃时,kdump 会捕获系统内存并将其保存到一个文件中,该文件随后可用于调试崩溃原因。

kdumpctl 命令用于控制 kdump 服务。你可以使用它来检查 kdump 当前是否正在运行以及是否已启用。

打开你的终端。记住,你可以在桌面左侧找到 Xfce Terminal 图标。

现在,输入以下命令并按回车键:

kdumpctl status

此命令将显示 kdump 服务的当前状态。输出会告诉你 kdump 是否已加载、是否处于活动状态以及是否已启用。

你应该会看到类似以下的输出:

kdump is loaded
kexec: loaded
kdump: active
kdump: enabled

此输出表明 kdump 已在你的系统上正确配置并正在运行。

如果你看到不同的输出,这可能意味着 kdump 未启用或未运行。在本次实验中,我们假设 kdump 已启用且处于活动状态。

了解 kdump 的状态是管理 Linux 系统上崩溃转储的第一步。

点击 Continue 进入下一步。

使用 cat /etc/kdump.conf 验证 kdump 配置

在这一步中,我们将查看 kdump 的主配置文件,该文件位于 /etc/kdump.conf。此文件包含控制 kdump 在系统崩溃时行为的设置,例如将崩溃转储保存到何处以及采取何种操作。

我们将使用 cat 命令来显示该文件的内容。cat 命令是一个基本的 Linux 实用工具,用于连接并显示文件内容。

如果终端尚未打开,请打开它。

现在,输入以下命令并按回车键:

cat /etc/kdump.conf

此命令将把 /etc/kdump.conf 文件的全部内容打印到你的终端上。

你会看到几行配置选项。你可能会看到的一些常见选项包括:

  • path:指定保存崩溃转储的目录。
  • core_collector:定义用于收集崩溃转储的程序(例如 makedumpfile)。
  • crashkernel:配置为 kdump 内核预留的内存量。
  • default:设置保存崩溃转储后要采取的默认操作(例如 reboot)。

以下是输出可能的样子的一个片段(确切内容可能会略有不同):

## This is a basic kdump configuration file.
#

#path /var/crash

#core_collector makedumpfile -l --message-level 1 -d 31
#core_collector_args -v --message-level 1 -d 31

#crashkernel 128M

#default reboot

# 开头的行是注释,系统会忽略它们。它们通常会对配置选项进行解释。

通过查看此文件,你可以了解系统上 kdump 的配置方式。你可以修改此文件来更改 kdump 的行为,但在对系统配置文件进行更改时要谨慎。

点击 Continue 进入下一步。

检查 /proc/sys/kernel 中的崩溃设置

在这一步中,你将探索 /proc/sys/kernel 目录下与系统崩溃和 kdump 相关的一些内核参数。/proc 文件系统是一个虚拟文件系统,它提供有关进程和其他系统信息。/proc/sys 目录包含一些文件,允许你在运行时查看和修改内核参数。

具体来说,你将查看与崩溃行为相关的文件。你可以再次使用 cat 命令来查看这些文件的内容。

如果终端尚未打开,请打开它。

首先,查看 panic 文件。该文件控制内核在发生严重且不可恢复的错误(即系统崩溃)时的行为。此文件中的值表示内核在崩溃后等待重启的秒数。

输入以下命令并按回车键:

cat /proc/sys/kernel/panic

你将看到输出为一个单独的数字,例如:

0

值为 0 表示内核在崩溃后不会自动重启。正值表示在重启前等待的秒数。

接下来,查看 panic_on_oops 文件。“oops”是一种比系统崩溃程度轻的错误,但它仍可能表示存在问题。此文件决定“oops”是否应触发完整的内核崩溃。

输入以下命令并按回车键:

cat /proc/sys/kernel/panic_on_oops

你将看到输出为 01

1

值为 0 表示“oops”不会导致系统崩溃。值为 1 表示“oops”将触发系统崩溃。

这些内核参数对于理解系统如何响应错误以及 kdump 如何参与捕获崩溃信息非常重要。

点击 Continue 完成本次实验。

总结

在本次实验中,你学习了如何检查 Linux 系统上的内核崩溃转储机制 kdump 是否已设置并正在运行。首先,你使用 kdumpctl status 命令来验证 kdump 服务的当前状态,确认它是否已加载、处于活动状态以及是否已启用。这能让你快速了解 kdump 的运行状态。

在检查状态之后,你使用 cat 命令查看了位于 /etc/kdump.confkdump 主配置文件。这一步骤使你能够检查在系统崩溃期间控制 kdump 行为的具体设置,例如转储位置和崩溃后的操作。理解此文件的内容对于配置和排查 kdump 问题至关重要。