运维救援:系统启动故障排查树

开机失败(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,删除 quietsplash 单词。

  • 作用: 让内核吐出所有的运行日志,直接告诉你哪一行报错了。

如果怀疑文件系统损坏:

# 在内核参数加入
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. 排障思维:逻辑排除法

💡 黄金法则
  1. 最后一次操作: 回忆一下,你在关机前动了哪个文件?(多半就是它)。
  2. 看日志: 无论什么时候,journalctl -xb 都是你最好的朋友。
  3. 隔离变量: 拔掉所有 USB 外设,尝试最简启动。

5. 结业练习

Navigation