从“硬件报错”到“内核崩溃”:一次超微(Supermicro)服务器失联问题解决记录

📖 引言

一台超微(Supermicro)服务器突然失联。带外管理界面(BMC)无法连接,强行重启后屏幕出现Failing DIMM(内存不可纠正错误),随后又陷入 KERNEL PANIC 画面。


第一阶段:物理假象与BMC失联

现象描述

  1. 原本可以通过固定 IP 192.168.1.115 访问服务器。
  2. 在交换机上发现设备 IP 变成了 192.168.1.100,使用旧用户名密码无法登录。
  3. 连接物理显示器开机,画面卡在超微 Logo,左下角赫然出现红色报错: Failing DIMM: DIMM location. (Uncorrectable memory component found) P1-DIMMC1

    (后续重启又变成了 P2-DIMMC1)

故障分析

  • BMC重置:主板在POST(开机自检)阶段检测到致命硬件错误(内存报错)时,触发了自我保护机制,导致 BMC 恢复默认配置(IP变动、密码重置)。
  • 内存训练:服务器主板在进行"内存训练"时偶发接触不良或冷启动偏差,触发了内存报警。

解决操作

  1. 断电,重新插拔报警插槽(P1-DIMMC1 和 P2-DIMMC1)的内存条,清理金手指。
  2. 多次重启后,系统跨过了 B7 状态码,内存报警消失。

第二阶段: KERNEL PANIC

现象描述

内存自检通过后,GRUB 引导菜单出现。选择默认的第一个 Ubuntu 启动项后,系统直接黑屏,跳出一大片粉色报错:

KERNEL PANIC!

UFS: Unable to mount root fs on unknown-block(0,0)

故障分析

通过进入 Advanced options for Ubuntu,尝试不同内核版本,发现了关键线索:

  • 高版本内核(7.0.0-38) :必定报粉色 KERNEL PANIC。
  • 低版本内核(6.8.0-85):可以正常进入系统。

通过日志排查,定位到------后台自动更新失败导致的内核半残废状态。

dpkg --list | grep linux-image 关键日志:

text 复制代码
iF  linux-image-7.0.0-30-generic    7.0.0-30.30~24.04.1    amd64    Signed kernel image generic

注:iF 代表 Half-configured,意思是软件包安装了一半,配置过程因故中断,内核文件不完整。

关键日志(APT历史记录):

text 复制代码
Start-Date: 2026-10-19  16:31:45
Install: linux-image-7.0.0-38-generic...
Upgrade: linux-image-generic-hwe-24.04:amd64 (7.0.0-30.30, 7.0.0-38.38)

日志清晰地显示,Ubuntu 的 unattended-upgrades(自动更新服务)在后台偷偷尝试将损坏的 7.0.0-30 升级到 7.0.0-38,但在安装过程中卡死或失败,导致系统引导彻底崩溃。


第三阶段:问题解决

为了防止服务器下次重启再次崩溃,必须清理损坏的内核,并彻底关闭自动更新。

进入系统后如何用命令查看所有内核

dpkg --list | grep linux-image

清理异常内核

强制卸载掉那个导致一切灾难的坏内核,释放空间:

bash 复制代码
sudo apt purge linux-image-7.0.0-30-generic linux-image-7.0.0-38-generic linux-headers-7.0.0-30-generic linux-headers-7.0.0-38-generic
sudo apt autoremove --purge

执行卸载时遇到了后台更新进程锁死数据库:

Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2500 (unattended-upgr)

解决方法:等待2500进程结束。(确认进程已死:ps -p 2500 )

关闭自动更新服务

bash 复制代码
sudo systemctl stop unattended-upgrades  # 安全停止自动更新服务
sudo systemctl disable unattended-upgrades
# /etc/apt/apt.conf.d/20auto-upgrades,把里面的 `"1"` 全部改成 `"0"`
sudo echo -e 'APT::Periodic::Update-Package-Lists "0";\nAPT::Periodic::Unattended-Upgrade "0";' | sudo tee /etc/apt/apt.conf.d/20auto-upgrades

锁定稳定内核并刷新引导

确保系统以后永远默认使用正常的 6.x 内核:

bash 复制代码
sudo apt-mark hold linux-image-6.17.0-23-generic linux-headers-6.17.0-23-generic
# 更新引导
sudo update-grub

以后手动更新,手动执行一下:

sudo apt update

sudo apt upgrade


📝 总结与反思

  1. 警惕 iF 状态 :在 Ubuntu 中,如果强退或强行重启打断了 apt upgrade 流程,极易导致内核安装一半。直接体现就是系统起不来(Kernel Panic)。日常可通过 dpkg --list | grep linux-image 检查内核状态。
  2. 服务器不要开自动更新 :NVIDIA 驱动依赖 DKMS 动态编译。如果内核自动升级,而显卡驱动没跟上重新编译,你的 GPU 环境就会瞬间毁灭。生产环境的服务器,永远应该手动规划更新窗口。
  3. 分清表象与内核 :开局的 Failing DIMM 是硬件接触不良的"假警报",它引发了连锁反应;而后来的 KERNEL PANIC 才是真正的系统级软故障。遇到问题要顺藤摸瓜,不要被一个报错闷头带偏。
  4. 善用 GRUB :当系统无法启动时,Advanced options 里的旧内核(非 recovery 或 recovery 模式)或许有用。

愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!

相关推荐
小胡20242 小时前
DzzOffice V2.4.2 版本上线!安全加固 × 网盘体验全面升级
服务器·bootstrap·php·协同办公·dzzoffice
伯恩bourne2 小时前
Reactive Streams 出现的原因
服务器·网络
叼烟扛炮2 小时前
Linux 学习笔记(九):自动化构建神器 Make 与 Makefile
linux·运维·服务器
鬼手点金2 小时前
单轮对话:最简单的 API 调用
java·服务器·前端·javascript·react.js·servlet·tomcat
码农1001号2 小时前
emqx5.8开源版WSS连接
运维·服务器
程序员-Benothing3 小时前
Linux端口与连接排查:ss、lsof、nc、telnet、curl
linux·运维·服务器
桌管小李3 小时前
终端安全一体化实战:AI 审计、行为分析、零信任、防拍照与远程运维全解析
运维·服务器·网络·人工智能·windows·安全·macos
零域行者4 小时前
Linux入门基础命令
linux·服务器·安全·web安全
FY@-@4 小时前
云计算基础(下):虚拟化原理与 DAS/NAS/SAN 存储
运维·服务器·云计算