开机卡住或黑屏怎么定位
开机异常的第一步不是修,而是定位卡在哪个阶段。有显示输出时记录最后一行提示;屏幕黑屏或只显示一闪而过的进度时,可以在引导菜单临时编辑内核参数去掉安静与图形化选项,让内核打印真实输出;已经进过系统但这次启动失败时,用 journalctl 回看上一次启动的错误日志。拿到卡点信息后,才能判断问题出在挂载、服务还是驱动层。
基本信息
| 有显示输出 | 记录卡住处最后一行提示文本 |
|---|---|
| 无显示输出 | 引导菜单按 e 编辑参数,去掉安静与图形化选项 |
| 事后留证 | journalctl -b -1 查看上一次启动日志 |
| 单元耗时 | systemd-analyze blame 查看各单元耗时 |
| 内核信息 | dmesg -T 查看硬件与驱动层输出 |
典型使用场景
- 服务器重启后停在加载界面不动,需要判断是挂载还是服务问题
- 桌面机黑屏无信号,需要临时关闭图形引导参数看内核输出
- 改过 fstab 或引导参数后启动异常,快速定位到具体条目
- 服务自启失败导致系统停在维护模式,需要确认是哪个单元
- 交付验收时按步骤记录启动过程,形成可复现的排障依据
- 区分硬件故障与配置故障,避免盲目重装系统
进系统后回看日志
进系统后回看日志
journalctl -b -1 -p err --no-pager | head -30 # 上次启动的错误行
journalctl -b -1 --no-pager | tail -50 # 上次启动的尾部输出
dmesg -T | tail -30 # 内核与硬件层信息
dmesg -T | grep -iE 'error|fail' | tail -20 # 筛选内核错误
systemd-analyze blame | head -20 # 各单元耗时排行
systemd-analyze critical-chain | head -20 # 关键启动链,找阻塞点
systemctl --failed --no-pager # 启动失败的单元清单阶段与线索对照
| 卡住阶段 | 典型现象 | 关注信息 |
|---|---|---|
| 引导加载 | 无任何输出或固件界面后停住 | 引导菜单、引导配置完整性 |
| 内核启动 | 停在加载条或黑屏 | 内核参数、驱动、initramfs |
| 根文件系统挂载 | 报挂载失败进入维护模式 | 挂载条目、设备标识、文件系统 |
| 服务启动 | 卡在某个服务等待超时 | 单元依赖、超时设置、服务日志 |
| 图形界面 | 命令行可见但图形黑屏 | 显示管理器与显卡驱动 |
引导菜单里编辑参数只对本次生效,改完按组合键引导即可,属于无损的排查手段;确认原因后再落到配置文件里持久化。
不要跳过取证直接重装系统:卡点信息(挂载、驱动、服务)决定了修复路径,重装会丢掉现场,同类问题在其它机器上还会复现。