Linux系统崩溃破案实录

现代计算环境中,系统的稳定性和可靠性至关重要。然而,即使是最优化的系统也可能会由于硬件故障、软件漏洞或配置错误而崩溃。为了解决这一问题,Linux系统提供了强大的内核崩溃转储机制,本文介绍如何收集和分析崩溃日志,定位系统崩溃的根本原因,从而采取适当的措施来防止此类问题的再次发生。

01安装及配置Kdump

1.1安装Kdump工具

如CentOS RedHat或者redhat中

配置命令:

sudo yum install kexec-tools

1.2配置内核参数

编辑GRUB配置文件,添加crashkernel参数以预留内存。例如,在/etc/default/grub文件中,对于主机内存较大的情况下可以适当增加:

配置命令:

GRUB_CMDLINE_LINUX="crashkernel=256M"

重新生成GRUB文件

配置命令:

sudo grub2-mkconfig -o   /boot/grub2/grub.cfg

1.3设置Kdump日志存储路径

编辑KDUMP配置文件/etc/kdump.conf,添加如下参数,指定内存转储文件的保存位置:

配置命令:

path /var/crash

启动并启用KDUMP服务

配置命令:

sudo systemctl start kdump&sudo systemctl enable kdump

1.4验证KDUMP配置

验证KDUMP是否正确配置,手动触发系统崩溃

配置命令:

echo c >   /proc/sysrq-trigger

系统将会崩溃并重启,KDUMP服务会生成内存转储文件

02Dump转储日志分析

2.1设置日志路径

查看/etc/kdump.conf 的path参数确认日志存放目录,收集故障时间的日志文件

如:

图片

2.2安装内核文件vmlinux

新建或编辑/etc/yum.repos.d/CentOS-Debuginfo.repo 加入如下内容:

配置命令:

[base-debuginfo]

name=CentOS-$releasever   - Debuginfo

baseurl=http://debuginfo.centos.org/$releasever/$basearch/

gpgcheck=1  

enabled=1

查看内核版本:

配置命令:

uname -r

清理 Yum 缓存以确保使用最新的仓库信息,然后安装相同内核版本的vmlinux:

配置命令:

sudo   yum clean all

sudo   yum  --enablerepo=base-debuginfo

install   kernel-debuginfo-3.10.0-1160.el7.x86_64 -y

2.3使用crash工具打开vmcore

指定当前版本vmlinux读取vmcore:

配置命令:

sudo crash   /usr/lib/debug/lib/modules/$(uname -r)/vmlinux vmcore

2.4crash常用命令

log:使用命令查看系统发生BUG的详细信息,包括无法处理的空指针引用错误。

图片

bt:使用命令查看堆栈信息,显示了进程ID(PID)、任务结构地址(TASK)、CPU编号及进程名称(COMMAND)。

图片

ps:使用命令显示系统中所有进程的信息,包括进程 ID、状态、优先级等。

图片

files:使用命令列出进程打开的文件描述符

图片

vm: 显示虚拟内存信息

图片

mount: 显示挂载的信息

图片

help: 显示可用命令的列表

图片

03案例分析

3.1模块加载导致系统异常

堆栈信息查看:

crash视图下执行bt查看堆栈信息:

图片

PID: 17114  TASK: ffff8cab78456300  CPU: 5   COMMAND: "insmod"

表明系统在尝试加载模块(insmod命令)时遇到了一个致命错误,导致了系统崩溃。

crash_module: loading out-of-tree module taints kernel

crash_module: module verification failed: signature and/or required key missing - tainting kernel

这段表明该模块是非官网模块,没有经过适当的签名验证。 

[exception RIP: init_module+8]

表明故障寄存器位置在init_module函数的第8个字节处,需要查看代码对应函数位置是否存在问题。

3.2阵列卡问题导致系统异常

日志信息查看:

crash视图下执行log查看日志信息:

图片

BUG: unable to handle kernel NULL pointer dereference at 00000000

IP: [] some_faulty_function+0x23/0x50

内核检测到一个空指针引用, 表示在 some_faulty_function 函数中的偏移量为 0x23 处发生错误。

Modules linked in: raid_module scsi_mod libata

CPU: 0 PID: 1234 Comm: some_process Not tainted 5.4.0-42-generic #46-Ubuntu Hardware name: Manufacturer Model/Type

当前加载的模块:raid_module scsi_mod libata,硬件的基本信息:Manufacturer Model/Type

从模块和硬件信息查看可以确认是raid卡引起的问题,可以使用硬件诊断工具检查RAID控制器、硬盘等设备的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tcping 命令的使用,ping IP 和端口

1. ‌Windows系统安装‌ ‌下载tcping工具‌:根据系统位数(32位或64位)下载对应的tcping.exe文件。‌安装步骤‌: 将下载的tcping.exe文件复制到C:\Windows\System32目录下。如果下载的是64位版本,需将文件名改为tcpi…

深度学习框架PyTorch——从入门到精通(6.1)自动微分

使用torch.autograd自动微分 张量、函数和计算图计算梯度禁用梯度追踪关于计算图的更多信息张量梯度和雅可比乘积 在训练神经网络时,最常用的算法是反向传播。在该算法中,参数(模型权重)根据损失函数的梯度相对于给定参数进行调整…

跟我学C++中级篇——std::not_fn

一、std::not_fn定义和说明 std::not_fn这个模板函数非常有意思&#xff0c;在前面我们学习过wrapper&#xff08;包装器&#xff09;&#xff0c;其实它就是通过封装一个包装器来实现返回值的非。它的基本定义如下&#xff1a; template< class F > /* 未指定 */ not_…

阶跃星辰开源300亿参数视频模型Step-Video-TI2V:运动可控+102帧长视频生成

阶跃星辰&#xff08;StepFun&#xff09;正式开源其新一代图生视频模型 Step-Video-TI2V &#xff0c;该模型基于300亿参数的Step-Video-T2V训练&#xff0c;支持文本与图像联合驱动生成长达102帧的高质量视频&#xff0c;在运动控制与场景适配性上实现突破。 核心亮点 …

java查询es超过10000条数据

java查询es超过10000条数据 背景:需要每天零点导出es中日志数据到数据库中给数据分析人员做清洗&#xff0c;然后展示给业务人员。但在es中默认一次最多只能查询10000条数据。 在这里我就只贴一下关键代码 SearchRequest searchRequest new SearchRequest("索引名"…

使用 libevent 构建高性能网络应用

使用 libevent 构建高性能网络应用 在现代网络编程中&#xff0c;高性能和可扩展性是开发者追求的核心目标。为了实现这一目标&#xff0c;许多开发者选择使用事件驱动库来管理 I/O 操作和事件处理。libevent 是一个轻量级、高性能的事件通知库&#xff0c;广泛应用于网络服务…

HeyGem.ai 全离线数字人生成引擎加入 GitCode:开启本地化 AIGC 创作新时代

在人工智能技术飞速演进的时代&#xff0c;数据隐私与创作自由正成为全球开发者关注的焦点。硅基智能旗下开源项目 HeyGem.ai 近日正式加入 GitCode&#xff0c;以全球首个全离线数字人生成引擎的颠覆性技术&#xff0c;重新定义人工智能生成内容&#xff08;AIGC&#xff09;的…

【leetcode hot 100 39】组合总和

错误解法一&#xff1a;每一次回溯都遍历提供的数组 class Solution {public List<List<Integer>> combinationSum(int[] candidates, int target) {List<List<Integer>> result new ArrayList<List<Integer>>();List<Integer> te…

VSCODE右下角切换环境没用

VSCODE惦记右下角python版本&#xff0c;切换别的虚拟环境时&#xff0c;始终切换不了&#xff0c;同时右下角弹出&#xff1a; Client Pylance: connection to server is erroring. 取消继承环境也改了。https://www.cnblogs.com/coreylin/p/17509610.html 还是不行&#xf…

【sql靶场】第23、25,25a关过滤绕过保姆级教程

目录 【sql靶场】第23、25-28关过滤绕过保姆级教程 第二十三关 第二十五关 1.爆出数据库 2.爆出表名 3.爆出字段 4.爆出账号密码 【sql靶场】第23、25&#xff0c;25a关过滤绕过保姆级教程 第二十三关 从本关开始又是get传参&#xff0c;并且还有了对某些字符或字段的过…

python每日十题(5)

保留字&#xff0c;也称关键字&#xff0c;是指被编程语言内部定义并保留使用的标识符。Python 3.x版本中有35个保留字&#xff0c;分别为&#xff1a;and, as,assert,async,await,break,class,continue,def,del,elif,else, except, False, finally,for,from,global, if,import…

Pytorch使用手册—自定义 C++ 和 CUDA 扩展(专题五十二)

提示 从 PyTorch 2.4 开始,本教程已被废弃。请参考 PyTorch 自定义操作符,了解关于通过自定义 C++/CUDA 扩展扩展 PyTorch 的最新指南。 PyTorch 提供了大量与神经网络、任意张量代数、数据处理等相关的操作。然而,您可能仍然会发现自己需要一个更自定义的操作。例如,您可能…

CHM(ConcurrentHashMap)中的 sizeCtl 的作用与值变化详解

学海无涯&#xff0c;志当存远。燃心砺志&#xff0c;奋进不辍。愿诸君得此鸡汤&#xff0c;如沐春风&#xff0c;学业有成。若觉此言甚善&#xff0c;烦请赐赞一枚&#xff0c;共励学途&#xff0c;同铸辉煌 ConcurrentHashMap常简写为CHM&#xff0c;尤其是在讨论并发编程时。…

VLAN综合实验报告

一、实验拓扑 网络拓扑结构包括三台交换机&#xff08;LSW1、LSW2、LSW3&#xff09;、一台路由器&#xff08;AR1&#xff09;以及六台PC&#xff08;PC1-PC6&#xff09;。交换机之间通过Trunk链路相连&#xff0c;交换机与PC、路由器通过Access或Hybrid链路连接。 二、实验…

OpenGL ES ->计算多个帧缓冲对象(Frame Buffer Object)+叠加多个滤镜作用后的Bitmap

XML文件 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"><…

Java线程池深度解析:从使用到调优

适合人群&#xff1a;Java中级开发者 | 并发编程入门者 | 系统调优实践者 目录 一、引言&#xff1a;为什么线程池是Java并发的核心&#xff1f; 二、线程池核心知识点详解 1. 线程池核心参数与原理 2. 线程池的创建与使用 (1) 基础用法示例 (2) 内置线程池的隐患 3. 线…

【工具变量】全国地级市地方ZF债务数据集(2014-2023年)

地方ZF债务是地方财政运作的重要组成部分&#xff0c;主要用于基础设施建设、公共服务及经济发展&#xff0c;是衡量地方财政健康状况的重要指标。近年来&#xff0c;我国地级市的地方ZF债务规模不断变化&#xff0c;涉及一般债务和专项债务等多个方面&#xff0c;对金融市场、…

大模型训练的调参与算力调度技术分析

大模型训练的调参与算力调度 虽然从网络上&#xff0c;还有通过和大模型交流&#xff0c;了解了很多训练和微调的技术。但没有实践&#xff0c;也没有什么机会实践。因为大模型训练门槛还是挺高的&#xff0c;想要有一手资料比较困难。如果需要多机多卡&#xff0c;硬件成本小…

深入理解 lt; 和 gt;:HTML 实体转义的核心指南!!!

&#x1f6e1;️ 深入理解 < 和 >&#xff1a;HTML 实体转义的核心指南 &#x1f6e1;️ 在编程和文档编写中&#xff0c;< 和 > 符号无处不在&#xff0c;但它们也是引发语法错误、安全漏洞和渲染混乱的头号元凶&#xff01;&#x1f525; 本文将聚焦 <&#…

GRS认证的注意事项!GRS认证的定义

GRS认证的注意事项&#xff0c;对于企业而言&#xff0c;是通往可持续发展和环保生产道路上的重要里程碑。在追求这一认证的过程中&#xff0c;企业必须细致入微&#xff0c;确保每一个环节都符合严格的标准与要求。 首先&#xff0c;企业必须全面理解GRS认证的核心原则&#…