原文链接:
Hello,大家好啊!今天给大家带来一篇麒麟终端操作系统上安装配置 Kdump 的文章。在日常使用过程中,系统如果发生崩溃(Kernel Panic),将可能导致工作中断甚至数据丢失。为了及时获取崩溃现场信息,分析故障根源,我们可以使用 Linux 内核自带的 Kdump 崩溃转储机制。本篇文章将手把手教大家如何在麒麟终端系统中正确安装、配置并启用 Kdump,让系统在关键时刻拥有“黑匣子”一样的应急记录能力!欢迎大家分享点赞,点个在看和关注吧!
什么是 Kdump?
Kdump 是 Linux 提供的一种内核崩溃转储机制。当系统发生致命错误(如内核崩溃)时,会自动重启到一个事先准备好的最小内核(crash kernel)环境,并将出错时的内存镜像(vmcore)保存下来,供日后排查分析使用。
1.安装软件
pdsyw@pdsyw1024:~/桌面$ sudo apt install linux-crashdump apport crash -ylinux-crashdump:提供开启和使用 kdump(内核崩溃转储)的支持。
apport:Ubuntu 的故障报告工具,可以收集并上报崩溃信息。
crash:内核转储分析工具,用于分析生成的 vmcore 文件。
-y:在安装过程中自动回答“是”,无需再次手动确认。

2.选择是

3.选择是

4.编辑日志文件存储位置
pdsyw@pdsyw1024:~/桌面$ sudo vim /etc/default/kdump-tools 输入密码 pdsyw@pdsyw1024:~/桌面$ grep KDUMP_CORE /etc/default/kdump-tools # KDUMP_COREDIR - local path to save the vmcore to.KDUMP_COREDIR="/var/crash"KDUMP_COREDIR="/var/crash"/etc/default/kdump-tools 文件中包含了 kdump-tools 的默认配置,如转储保存路径、启动选项等。
KDUMP_COREDIR="/var/crash" 指定内核崩溃转储文件(vmcore)要保存到 /var/crash 目录下。
grep KDUMP_CORE 用于查看文件中的 KDUMP_COREDIR 行,确认其配置值。


5.编辑crashkernel大小
pdsyw@pdsyw1024:~/桌面$ sudo vim /etc/default/grub.d/kdump-tools.cfg pdsyw@pdsyw1024:~/桌面$ cat /etc/default/grub.d/kdump-tools.cfg GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT crashkernel=512M"这条配置会追加在系统的内核启动参数中。 在 /etc/default/grub.d/kdump-tools.cfg 文件中,设置了 crashkernel=512M。
这表示在内核启动时,预留 512MB 内存给 kdump 使用,一旦出现内核崩溃,kdump 会利用这部分预留的内存来生成转储文件。
常见的经验/参考值
小内存系统(少于 4GB):一般设置为 crashkernel=256M 或者 crashkernel=384M 即可。
中等内存系统(4GB~16GB 左右):可以设置为 crashkernel=512M,对于大部分场景足以完成转储操作。
大内存系统(16GB 以上):通常可适当增大到 crashkernel=1G 或更多,比如 crashkernel=2G。在非常高内存(上百 GB)场景中,如需完全转储所有内存,可能需要预留更多。
使用 auto 或 auto指定值(某些发行版支持):某些发行版(如 RHEL/CentOS 7+)支持在 grub 中配置 crashkernel=auto,系统会根据总内存自动计算预留大小。Ubuntu 默认并不一定启用这个功能,但可以查看发行版文档。

6.更新grub
pdsyw@pdsyw1024:~/桌面$ sudo update-grub更新 grub 的配置文件使前一步的 crashkernel 参数生效。
update-grub 会读取 /etc/default/grub 及相关 grub.d 目录内容,生成最终的 /boot/grub/grub.cfg。

7.关机并且重启
需要重启系统,才能使新设置的内核启动参数(如 crashkernel=512M)真正生效。

8.查看cmdline
pdsyw@pdsyw1024:~/桌面$ cat /proc/cmdlinecat /proc/cmdline 显示当前正在运行的内核所使用的启动参数。
如果您看到其中含有 crashkernel=512M,说明上面的配置和重启已生效。

9.查看kdump配置
pdsyw@pdsyw1024:~/桌面$ kdump-config showkdump-config 是管理 kdump 的工具,可以查看或控制其运行状态、配置等。
show 子命令会列出当前的 kdump 设置,例如:
是否启用 kdump
内存保留大小
转储存放路径
内核启动参数等

10.查看kdump-tools状态
pdsyw@pdsyw1024:~/桌面$ systemctl status kdump-tools检查 kdump-tools 服务是否处于激活状态,如果正常配置并运行,状态应该是 active 或类似状态。
如果未启动,可以使用 sudo systemctl start kdump-tools 来启动。

11.打开sysrq功能
pdsyw@pdsyw1024:~/桌面$ sudo sysctl -w kernel.sysrq=1输入密码 kernel.sysrq = 1pdsyw@pdsyw1024:~/桌面$ sudo sysctl -a |grep kernel.sysrqkernel.sysrq = 1sysrq(Magic SysRq Key)是 Linux 内核提供的一种紧急控制机制,可以通过 /proc/sysrq-trigger 来触发某些内核操作。
sysctl -w kernel.sysrq=1 表示允许通过 sysrq 触发一系列特殊操作(包括模拟崩溃)。
sudo sysctl -a | grep kernel.sysrq 查看当前 sysrq 的设置值是否为 1(已启用)。

12.模拟内核崩溃
pdsyw@pdsyw1024:~/桌面$ sudo -iroot@pdsyw1024:~# echo c > /proc/sysrq-trigger切换到 root(sudo -i),然后执行 echo c > /proc/sysrq-trigger,这是一个触发命令,会让内核“主动”崩溃。
当系统收到这个命令,kdump 会在您之前预留的内存空间中启动第二内核,并生成转储文件(vmcore)。
警告:这条命令会直接导致系统崩溃重启,不要在生产环境随意使用。

13.查看日志
pdsyw@pdsyw1024:~/桌面$ cd /var/crash/重启后,可以在 /var/crash 目录中查看是否生成了崩溃转储文件以及相关的日志信息。
如果成功捕获内核转储,会在这里看到相应的文件或目录。

通过安装并配置 Kdump,麒麟终端操作系统在面对突发内核崩溃时,就能像飞机“黑匣子”一样记录“事故现场”,为后续分析故障提供第一手资料。对于企业级用户、开发者、测试人员来说,这无疑是提高系统可靠性的重要手段。如果您觉得这篇文章对您有帮助,欢迎分享点赞,记得点个在看和关注哦!