百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

系统崩溃怎么办?教你开启麒麟系统崩溃日志功能

nanshan 2025-05-26 17:44 5 浏览 0 评论

原文链接:「链接」

Hello,大家好啊!今天给大家带来一篇麒麟终端操作系统上安装配置 Kdump 的文章。在日常使用过程中,系统如果发生崩溃(Kernel Panic),将可能导致工作中断甚至数据丢失。为了及时获取崩溃现场信息,分析故障根源,我们可以使用 Linux 内核自带的 Kdump 崩溃转储机制。本篇文章将手把手教大家如何在麒麟终端系统中正确安装、配置并启用 Kdump,让系统在关键时刻拥有“黑匣子”一样的应急记录能力!欢迎大家分享点赞,点个在看和关注吧!


什么是 Kdump?

Kdump 是 Linux 提供的一种内核崩溃转储机制。当系统发生致命错误(如内核崩溃)时,会自动重启到一个事先准备好的最小内核(crash kernel)环境,并将出错时的内存镜像(vmcore)保存下来,供日后排查分析使用。


1.安装软件

pdsyw@pdsyw1024:~/桌面$ sudo apt install linux-crashdump apport crash -y

linux-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/cmdline 


cat /proc/cmdline 显示当前正在运行的内核所使用的启动参数。

如果您看到其中含有 crashkernel=512M,说明上面的配置和重启已生效。


9.查看kdump配置

pdsyw@pdsyw1024:~/桌面$ kdump-config show


kdump-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 = 1

pdsyw@pdsyw1024:~/桌面$ sudo sysctl -a |grep kernel.sysrq

kernel.sysrq = 1


sysrq(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 -i

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

相关推荐

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

干货 | 这 3 个超经典的Linux实战项目,让你分分钟入门Linux系统

编译安装nginx搭建小游戏网站编译安装流程下载nginx代码wget-P/server/tools/http:nginx.org/download/nginx1.22.0.tar.gz解压并进...

权限管理-树莓派linux⑦

前言当你在看这篇README,我感到非常荣幸。作为支持开源、分享的理念的我,给大家带来一些学习上的乐趣。由于本人并非专业的教育领域人士,很多时候天马行空,随心所欲的表达方式,可能让部分人感到不适。请根...

每天Linux学习:linux文件属性

ls-lih先通过这个命令来观察(-l列表显示目录内容详细,-i第一列显示inode,-h将文件大小显示为我们常见的kb,mb等单位)从截图中我们能看出文件属性由这9列信息组成:第1列:inod...

Linux ln、unlink命令用法

ln命令可以用来创建软链接或硬链接。1.创建软链接:ln-s源文件目标文件例如:ln-s/usr/lib/libc.so/usr/local/lib/libc.so.6这样就创建了一...

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。何为DevOps?来自wiki百科介绍DevOps是一系列软件开发实践,强调开发人员(Dev)和测...

hadoop集群搭建详细方法

第一步:搭建配置新的虚拟机格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除rm-rf/tmp/hadoop-centos*开启之后jps只有Java的进程:sudovi/et...

Linux 常用命令集合

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

inode文件索引,你了解嘛?你的Linux基础真的扎实嘛?

一、inode是什么?深入了解inode,就要从文件存储说起来!文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节。读取硬盘的时候,不会一个个扇区地读取,这样效率...

linux实例之创建service服务

前面我们讲过可以通过service命令来启动,重启,停止指定的服务程序。service服务可以在系统启动时,自动运行该服务,我们可以利用这一特点,创建service文件,并且让系统重启时,自动执行命令...

linux之软连接和硬连接的区别

硬连接硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的...

Linux inode 详解

简介索引节点(IndexNode)是Linux/类unix系统文件系统上的一种数据结构,用于存储有关文件或目录的元数据。它包含文件的所有信息,除了文件名和数据。inode在文件系统如何存储和检...

Bash 脚本实例:获取符号链接的目标位置

我们都熟悉Linux中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。本文将介绍Linux中符号链接的基础知识,并创建一个简单的bash脚本...

windows快捷方式,符号链接,软链接和硬链接

当一个软件大量的向C盘写入数据,而我们又无法修改软件保存数据的位置时,可以使用windows系统的“符号链接”(SymbolicLink)功能,将保存数据的位置修改到其它分区中。符号链接类似于我们熟...

取消回复欢迎 发表评论: