【Linux故障排查】系统启动进入紧急模式:由磁盘挂载超时引发的服务器无法启动

前言

最近在处理一台 Linux 服务器(CentOS)时,遇到了一个典型的启动故障。系统无法正常进入多用户模式,而是直接掉进了 Emergency Mode(紧急模式)

1. 故障现象

系统启动过程中卡住,最终提示输入 root 密码进行维护。屏幕主要报错信息如下:

复制代码
[FAILED] Failed to start Load Kernel Modules.
Welcome to emergency mode!
Give root password for maintenance (or press Control-D to continue):

2. 日志分析与根因定位

在紧急模式下输入 root 密码登录后,使用 journalctl -xb 查看详细的启动日志。我们会发现一连串的红色报错,例如:

复制代码
Failed to start Security Auditing Service.
Dependency failed for Local File Systems.
Job registry\x2data.mount/start failed with result 'dependency'.

关键点来了: 虽然报错很多,但我们需要找到 "万恶之源"。在日志中,有一条关于设备超时的记录至关重要:

复制代码
dev-disk-by\x2duuid-7d98cda6...device has failed
Unit dev-disk-by\x2duuid-7d98cda6...device/start timed out.

逻辑推导

  1. 根本原因(Root Cause): 系统试图挂载一个 UUID 为 7d98cda6... 的磁盘设备,但是**超时(Timed Out)**了。这意味着系统找不到这块盘,或者盘响应太慢。
  2. 直接后果: 该磁盘对应的挂载点 /registry-data 挂载失败 (registry\x2data.mount failed)。
  3. 连锁反应 A: 因为本地文件系统没有完全就绪 (local-fs.target failed),导致依赖它的 SELinux 策略迁移服务失败。
  4. 连锁反应 B: 审计服务 auditd 可能依赖某些日志路径或文件系统状态,也随之启动失败。

结论: 不要被 auditd 或 SELinux 的报错误导,真正的问题在于那个找不到的磁盘分区。

3. 解决方案与排查步骤

在 Emergency Mode 下,我们可以执行以下操作来修复问题。

通常这种问题是因为 /etc/fstab 里写了一个不存在的磁盘,或者磁盘 UUID 变了。

  1. 查看当前的挂载配置:

    [root@xh-tdc-003 ~]# cat /etc/fstab

    /etc/fstab

    Created by anaconda on Fri Mar 22 13:11:35 2024

    Accessible filesystems, by reference, are maintained under '/dev/disk'

    See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

    /dev/mapper/centos-root / xfs defaults 0 0
    UUID=48190fb2-d2e8-4ffe-b8db-87b5a001143a /boot xfs defaults 0 0
    /dev/mapper/centos-home /home xfs defaults 0 0
    UUID=89f15833-91ec-489c-b109-396689336d4b /var/lib/docker xfs defaults,uquota,pquota 0 0
    UUID=51554af9-9dae-4083-9ebf-853120f5b88c /var/log xfs defaults 0 0
    UUID=23855409-885d-4394-a174-6b2a11d2ee15 /opt/kubernetes/data xfs defaults 0 0
    UUID=7d98cda6-b9c3-43f9-811a-1f5c2bb2cc31 /registry-data xfs defaults 0 0

2. 找到对应 /registry-data 的那一行,检查其 UUID 是否与报错日志中的 7d98cda6... 一致,一致的话注释该条

复制代码
#UUID=7d98cda6-b9c3-43f9-811a-1f5c2bb2cc31  /registry-data          xfs     defaults             0 0

3. 保存推出后重启服务器,成功启动

复制代码
reboot

4. 总结

遇到 Linux 启动报错满屏红字时,请遵循以下原则:

  1. 不要只看最后几行: 最后的报错往往是前面错误导致的"受害者"。
  2. 寻找 "Timed out" 或 "Dependency": 向上翻阅日志,找到第一个失败的设备或服务。
  3. 关注磁盘挂载: 绝大多数进入 Emergency Mode 的情况,都是由 /etc/fstab 配置错误或磁盘故障引起的。
相关推荐
姜鱼问生6 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*6 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP7 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_7 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时8 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育10 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
IT研究所10 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom