当前位置: 首页 > news >正文

kdump生成转储文件调试内核崩溃、死机

目录

  • 操作流程
    • 0. 确认内核配置
    • 1. 安装kdump相关工具
    • 2. 编辑/etc/default/grub,配置预留kdump内存,
    • 3. 更新GRUB并重启
    • 4. 设置转储路径
    • 5. 验证kdump服务状态
    • 6. 查看kdump预留内存空间大小
    • 7. 最后检查kdump配置
    • 8. 查看崩溃日志
    • 常见问题

最近在写内核模块,经常安装模块之后突然死机。用的又是虚拟机,直接弹个窗口说cpu已被禁用,什么都动不了,重启之后呢又看不到任何的崩溃信息,也不知道是什么原因导致的崩溃,反正就是一头雾水。问ai,说用kdump咱也就是跟着ai走,遇到啥坑咱给写出来。

操作流程

我使用的是Ubuntu20 Linux5.15内核版本

0. 确认内核配置

grep -E "CONFIG_KEXEC=|CONFIG_CRASH_DUMP=" /boot/config-$(uname -r)

确保 CONFIG_KEXEC=yCONFIG_CRASH_DUMP=y
在这里插入图片描述
否则需要更换为已启用CONFIG_KEXEC=y的内核

sudo apt install linux-image-$(uname -r)-dbgsym  # 安装调试符号内核

1. 安装kdump相关工具

sudo apt install kdump-tools crash

2. 编辑/etc/default/grub,配置预留kdump内存,

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX中添加:

crashkernel=128M  # 预留128MB内存给捕获内核也可以写成
crashkernel=512M-:256M # 总内存大于512时预留256最后文件中显示如下:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash crashkernel=256M"

我这里直接留了1G,因为我怕重启卡住(这是一个坑)所以推荐大家预留内存给大点
在这里插入图片描述

3. 更新GRUB并重启

sudo update-grub && sudo reboot

4. 设置转储路径

编辑/etc/kdump.conf

sudo nano /etc/kdump.conf在文件中添加
path /var/crash

之后崩溃重启的文件将存储在/var/crash
在这里插入图片描述

5. 验证kdump服务状态

注意:Ubuntu中Kdump的服务名为 kdump-tools.service,而非 kdump.service:

sudo systemctl status kdump-tools.service

应该显示active,若状态显示 active (exited) 或 active (waiting) 表示服务已就绪。
在这里插入图片描述

6. 查看kdump预留内存空间大小

cat /proc/cmdline | grep crashkernel  # 应显示预留的内存大小

在这里插入图片描述

7. 最后检查kdump配置

kdump-config show  

确认current stateready to kdump
在这里插入图片描述

8. 查看崩溃日志

崩溃内容会生成在下图蓝色的时间文件夹中,有dmesg和dump文件,通过查看dmesg可以较快找到崩溃原因。
在这里插入图片描述

常见问题

崩溃重启卡死在转圈界面不动怎么办?
Q: 可能是预留的内存不够 (看步骤2), 如果确认内存足够,崩溃后经常会在重启界面暂停一会,请耐心等待。


文章转载自:
http://apophthegm.hyyxsc.cn
http://acetylcholinesterase.hyyxsc.cn
http://buffoon.hyyxsc.cn
http://aviatrix.hyyxsc.cn
http://calcicolous.hyyxsc.cn
http://calculational.hyyxsc.cn
http://abasement.hyyxsc.cn
http://bacon.hyyxsc.cn
http://bookkeeper.hyyxsc.cn
http://autobiographic.hyyxsc.cn
http://bipinnate.hyyxsc.cn
http://backslid.hyyxsc.cn
http://chatelain.hyyxsc.cn
http://atonic.hyyxsc.cn
http://aphthongal.hyyxsc.cn
http://brier.hyyxsc.cn
http://accusation.hyyxsc.cn
http://balaustine.hyyxsc.cn
http://choriambus.hyyxsc.cn
http://bentonite.hyyxsc.cn
http://androcles.hyyxsc.cn
http://calefactory.hyyxsc.cn
http://alexis.hyyxsc.cn
http://angara.hyyxsc.cn
http://bimetal.hyyxsc.cn
http://archaistic.hyyxsc.cn
http://antillean.hyyxsc.cn
http://abetter.hyyxsc.cn
http://blastocele.hyyxsc.cn
http://caprifoliaceous.hyyxsc.cn
http://www.dtcms.com/a/281788.html

相关文章:

  • 电涡流位移测量技术深度解密
  • View2 UI聊天框架源码分享 - 支持[图文视频]混排 加入AI 分享一套功能强大的View2 UI聊天框架源码
  • Python初学者笔记第十四期 -- (自定义模块与包)
  • NFS磁盘共享
  • 基础专有术语
  • Model Control Protocol 一种开放的应用层协议,让大模型与工具能够协调配合起来,了解他的定义、定位、组成及实现机制...
  • 手提式干粉灭火器检查工作,如何做到可执行、可追溯、可管理?
  • 移动碰撞法 ——套料排版算法——CAD c#
  • java基础(day08)-面向对象
  • Redis 高频面试题
  • 【删库跑路】一次删除pip的所有第三方库
  • vllm本地部署qwen3-4b
  • 场景设计题+智力题
  • windows下安装difi(无docker desktop版)
  • 7.15 腾讯云智面经整理
  • Wiz笔记二次开发
  • AI大模型开发架构设计(22)——LangChain的大模型架构案例实战
  • 记忆力训练day41
  • 1-Nodejs介绍与安装
  • 基于STM32的智能火灾报警系统设计
  • 【人工智能99问】激活函数有哪些,如何选择使用哪个激活函数?(5/99)
  • ADAU系列DSP用MCU来做控制,怎么去理解这个逻辑
  • Vue3 + MapLibre 地图管理工具 useMap 使用指南
  • 牛客:HJ22 汽水瓶[华为机考][数字处理]
  • 基于Sentinel-1雷达数据的洪水动态监测(附完整GEE代码)
  • 深入理解红锁
  • Vue3入门-指令补充
  • 学习C++、QT---26(QT中实现记事本项目实现文件路径的提示、C++类模板、记事本的行高亮的操作的讲解)
  • 面向对象与面向过程、函数式编程
  • C++回顾 Day8