运维救援:系统启动故障排查树
开机失败(Boot Failure)是所有 Linux 用户的噩梦。本章节将为你提供一套结构化的“诊断流程图”,帮助你通过现象快速定位故障所在的阶段。
1. 故障分段诊断
阶段 A:硬件与固件 (BIOS/UEFI)
- 现象: 屏幕完全黑屏,或提示 “No Bootable Device”。
- 原因: 引导顺序错乱、硬盘掉线、Secure Boot 冲突。
- 对策: 检查 BIOS 启动顺序,确认磁盘是否被识别。
阶段 B:引导加载器 (Grub)
- 现象: 卡在
grub>或grub rescue>。 - 原因:
grub.cfg路径错误或分区 UUID 变动。 - 对策: 使用
ls命令手动设置 root 分区(详见引导流程章节)。
阶段 C:内核与引导环境 (Kernel/Initramfs)
- 现象: 出现 “Kernel Panic” 或卡在加载界面且键盘大写锁定灯闪烁。
- 原因: 驱动不兼容、
/etc/fstab挂载点错误。 - 对策: 在 Grub 菜单按
e移除quiet参数,观察详细报错。
阶段 D:用户态服务 (Systemd)
- 现象: 卡在特定服务的 [OK] 界面,无法进入登录框。
- 原因: 显卡驱动崩溃、网络服务超时。
- 对策: 切换 TTY 控制台 (
Ctrl + Alt + F2) 进行命令行排查。
2. 三大常用救援手段
在开机菜单按 e,删除 quiet 和 splash 单词。
- 作用: 让内核吐出所有的运行日志,直接告诉你哪一行报错了。
如果怀疑文件系统损坏:
# 在内核参数加入
fsck.mode=force fsck.repair=yes如果桌面卡死,按下 Ctrl + Alt + F3。如果能看到登录提示,说明系统底层是正常的,只是图形界面崩了。
3. 常见报错字典
| 报错关键词 | 核心含义 | 解决方向 |
|---|---|---|
| UUID does not exist | 分区 ID 对不上 | 检查 /etc/fstab |
| Timed out waiting for device | 磁盘挂载超时 | 检查是否有被移除的外部硬盘项 |
| Dependency failed for … | 某个基础服务挂了 | 检查该服务的依赖项(如网络或磁盘) |
4. 排障思维:逻辑排除法
黄金法则
- 最后一次操作: 回忆一下,你在关机前动了哪个文件?(多半就是它)。
- 看日志: 无论什么时候,
journalctl -xb都是你最好的朋友。 - 隔离变量: 拔掉所有 USB 外设,尝试最简启动。