📖 引言
一台超微(Supermicro)服务器突然失联。带外管理界面(BMC)无法连接,强行重启后屏幕出现Failing DIMM(内存不可纠正错误),随后又陷入 KERNEL PANIC 画面。
第一阶段:物理假象与BMC失联
现象描述
- 原本可以通过固定 IP
192.168.1.115访问服务器。 - 在交换机上发现设备 IP 变成了
192.168.1.100,使用旧用户名密码无法登录。 - 连接物理显示器开机,画面卡在超微 Logo,左下角赫然出现红色报错:
Failing DIMM: DIMM location. (Uncorrectable memory component found) P1-DIMMC1(后续重启又变成了 P2-DIMMC1)

故障分析
- BMC重置:主板在POST(开机自检)阶段检测到致命硬件错误(内存报错)时,触发了自我保护机制,导致 BMC 恢复默认配置(IP变动、密码重置)。
- 内存训练:服务器主板在进行"内存训练"时偶发接触不良或冷启动偏差,触发了内存报警。
解决操作
- 断电,重新插拔报警插槽(
P1-DIMMC1和P2-DIMMC1)的内存条,清理金手指。 - 多次重启后,系统跨过了 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
📝 总结与反思
- 警惕
iF状态 :在 Ubuntu 中,如果强退或强行重启打断了apt upgrade流程,极易导致内核安装一半。直接体现就是系统起不来(Kernel Panic)。日常可通过dpkg --list | grep linux-image检查内核状态。 - 服务器不要开自动更新 :NVIDIA 驱动依赖 DKMS 动态编译。如果内核自动升级,而显卡驱动没跟上重新编译,你的 GPU 环境就会瞬间毁灭。生产环境的服务器,永远应该手动规划更新窗口。
- 分清表象与内核 :开局的
Failing DIMM是硬件接触不良的"假警报",它引发了连锁反应;而后来的KERNEL PANIC才是真正的系统级软故障。遇到问题要顺藤摸瓜,不要被一个报错闷头带偏。 - 善用 GRUB :当系统无法启动时,
Advanced options里的旧内核(非 recovery 或 recovery 模式)或许有用。
愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
