必须禁用内核panic自动重启、用户态core生成及kdump机制:①修改grub删除panic=参数并update-grub,再sysctl -w kernel.panic=0;②ulimit -c 0或limits.conf设core为0;③停用并屏蔽kdump服务,清理crashkernel参数及kdump.conf。

麒麟系统在发生内核崩溃(如 Kernel Panic)时若自动重启并生成 core 文件,会跳过故障现场保留环节,导致无法分析根本原因。必须同时禁用 panic 自动重启机制与 core dump 生成路径,才能完整保留崩溃上下文供后续调试。
禁用内核 panic 自动重启
该设置决定系统遭遇不可恢复错误后是否强制硬重启,需从 GRUB 启动参数和运行时内核参数两层关闭。
第一步:编辑 GRUB 配置文件 → sudo vim /etc/default/grub
第二步:找到 GRUB_CMDLINE_LINUX 行,在引号内已有参数末尾删除 panic=... 字段;若整行无该字段则跳过此步
第三步:执行 sudo update-grub 更新引导配置,否则修改不生效
第四步:临时清除当前运行内核的 panic 响应 → sudo sysctl -w kernel.panic=0。值为 0 表示禁用自动重启,崩溃后将挂起等待人工介入
关闭用户态 core 文件生成
core 文件由用户空间进程异常退出触发,与内核 panic 无关,但大量 core 文件会挤占磁盘、干扰日志分析,必须关闭。
方法一:立即禁用当前会话 → ulimit -c 0
方法二:永久禁用所有用户 → 编辑 sudo vim /etc/security/limits.conf,在文件末尾添加两行:* soft core 0* hard core 0
方法三:禁用 root 用户 core 生成 → 执行 echo "kernel.core_pattern=/dev/null" | sudo tee -a /etc/sysctl.conf && sudo sysctl -p。这一步会彻底丢弃所有 core 内容,避免写入磁盘
停用 kdump 机制防止内核级转储
kdump 是独立于用户态 core 的内核崩溃捕获机制,若已启用,会在 panic 后加载备用内核并保存内存镜像到 /var/crash,必须完全停用。
执行命令停止并屏蔽服务 → sudo systemctl stop kdump-tools.service && sudo systemctl disable kdump-tools.service && sudo systemctl mask kdump-tools.service
检查是否残留 crashkernel 内存预留 → 运行 cat /proc/cmdline | grep crashkernel,若输出非空,说明 GRUB 中仍含 crashkernel=... 参数,需回到第一步重新清理
删除 kdump 配置文件避免服务被意外拉起 → sudo rm -f /etc/kdump.conf











