Linux怎么正确捕捉内核崩溃信息
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本文小编为大家详细介绍"Linux怎么正确捕捉内核崩溃信息",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux怎么正确捕捉内核崩溃信息"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年01月19日Linux怎么正确捕捉内核崩溃信息
本文小编为大家详细介绍"Linux怎么正确捕捉内核崩溃信息",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux怎么正确捕捉内核崩溃信息"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
首先安装必选包:
apt-get -y install aptitude kdump-tools crash kexec-tools makedumpfile linux-image-`uname -r`-dbgaptitude full-upgrade # 避免运行的内核版本与调试的版本不一致导致无法调试
Kdump配置文件 /etc/default/kdump-tools 关键部分
USE_KDUMP=1KDUMP_SYSCTL="kernel.panic_on_oops=1"KDUMP_KERNEL=/boot/vmlinuz-3.16.0-4-amd64KDUMP_INITRD=/boot/initrd.img-3.16.0-4-amd64KDUMP_COREDIR="/data/crash"KDUMP_FAIL_CMD="reboot -f"DEBUG_KERNEL=/usr/lib/debug/vmlinux-3.16.0-4-amd64MAKEDUMP_ARGS="-c -d 31"KDUMP_CMDLINE="crashkernel=512M"
crashkernel大小配比,正常情况崩溃后1分钟左右会自动重启、配置不正确会导致重启卡住黑屏不动。
内存大小 crashkernel=0 - 12G 128M13 - 48G 256M49 - 128G 512M129 - 256G 1G *(896M, 768M o或 512M)
Grub配置文件/etc/default/grub关键部分
GRUB_CMDLINE_LINUX_DEFAULT="nmi_watchdog=1 crashkernel=512M"
Sysctl配置文件/etc/sysctl.conf关键部分
kernel.sysrq = 1kernel.watchdog = 1kernel.nmi_watchdog = 1kernel.panic_on_oops = 1kernel.softlockup_panic = 1kernel.watchdog_thresh = 10
重启让配置生效
update-grubreboot -fkdump-config loadkdump-config show
校验
# cat /proc/cmdlineBOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=a58ab901-00aa-4f8b-b3eb-d352fc72233 ro net.ifnames=0 thash_entries=1048576 rhash_entries=1048576 biosdevname=0 nohz=off enforcing=0 ipv6.disable_ipv6=1 nmi_watchdog=1 selinux=0 transparent_hugepage=never cgroup_enable=memory swapaccount=1 vga=771 crashkernel=512M# kdump-config testUSE_KDUMP: 1KDUMP_SYSCTL: kernel.panic_on_oops=1KDUMP_COREDIR: /data/crashcrashkernel addr: 0x2e000000kdump kernel addr:kdump kernel: /boot/vmlinuz-3.16.0-4-amd64kdump initrd: /boot/initrd.img-3.16.0-4-amd64debug kernel: /usr/lib/debug/vmlinux-3.16.0-4-amd64kexec command to be used: /sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=a58ab901-00aa-4f8b-b3eb-d352fc7f6acb ro net.ifnames=0 thash_entries=1048576 rhash_entries=1048576 biosdevname=0 nohz=off enforcing=0 ipv6.disable_ipv6=1 nmi_watchdog=1 selinux=0 transparent_hugepage=never cgroup_enable=memory swapaccount=1 vga=771 irqpoll maxcpus=1 nousb systemd.unit=kdump-tools.service crashkernel=512M" --initrd=/boot/initrd.img-3.16.0-4-amd64 /boot/vmlinuz-3.16.0-4-amd64
测试
echo c > /proc/sysrq-trigger
分析
crash /data/crash/201609010252/dump.201609012233 /usr/lib/debug/lib/modules/3.16.0-4-amd64/vmlinux
开始欢快的调试之旅
常用错误 :
WARNING: kernel version inconsistency between vmlinux and dumpfile # 版本不一致,full-upgrade 一下。崩溃后系统不重启。 # 请检查 sysctl 、 crashkernel 及 nmi_watchdog 的设定!
读到这里,这篇"Linux怎么正确捕捉内核崩溃信息"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
配置
内核
信息
关键
文件
文章
版本
部分
一致
内容
大小
妥当
欢快
之旅
内存
常用
思路
情况
新知
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电磁炉软件开发难不难
百万钱包登陆显示服务器异常
免费永久个人服务器
ups 服务器
mpp服务器
geo数据库中有哪些肿瘤
如何给企业做软件开发
鼎旺网络技术有限公司
移动软件开发就业前景
数据库修改用户名称
渔阳网络技术有限公司
计算机软件开发付款
互联网安防科技感强
网络安全审核征集
软件开发属于政府部门
阿凡达网络张可心软件开发
数据库系统概论第五版难吗
哪些专业属于软件开发
北京冬奥会网络安全的重大
为做好国家网络安全宣传周
phda数据库
信用卡上数据库后银行会怎么做
安徽科艾网络技术
日本软件开发专业大学排名
汽车传感器网络技术
sql 如何还原数据库
虹口区创新软件开发业务流程
vim卡死服务器
网络安全培训内容调查问卷
软件开发环境指什么