服务器在更新或断电后重启,控制台显示的不是登录提示,而是以“You are in emergency mode.”开头的一条信息。网站宕了,数据库连不上,而显而易见的下一步,再次重启,或粘贴网上找到的修复命令,恰恰是可能让事情更糟的做法。Linux 紧急模式本身并不是一个诊断结论。它是 systemd 在告诉您:系统启动所需要的某样东西(通常是磁盘或文件系统)没有起来。本指南说明常见原因、应先检查什么,以及何时该停手并保护数据。
Linux 紧急模式意味着什么
在 Debian、Ubuntu、AlmaLinux 和 Rocky Linux 等基于 systemd 的发行版上,当某个必需步骤失败时,启动会停在紧急目标(emergency target)。最常见的是挂载 /etc/fstab 中列出的某个文件系统,或者需要人来决定怎么处理的文件系统检查。随后系统提供一个最小化的 root shell,根文件系统往往以只读方式挂载,几乎没有任何服务在运行。信息通常是这样的:
You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode.
救援模式是它温和的“兄弟”:它会挂载本地文件系统并启动少数基本服务。紧急模式则做得尽可能少,这正是存储存疑时它会出现的原因。
常见原因,从无害到严重
- fstab 错误。/etc/fstab 中的某一行指向一块已不存在的磁盘:被拔掉的 USB 备份盘、更换后 UUID 变了的磁盘,或是最近一次编辑时的拼写错误。这是最常见也最不危险的原因。
- 需要手动检查的文件系统。在非正常关机之后,自动检查发现了它不会自行修复的不一致,要求手动运行 fsck。
- 未能组装的 RAID 阵列或 LVM 卷。启动失败的降级 RAID 阵列,或缺失的物理卷,会让其上的文件系统不可用。
- 故障磁盘。挂载时出现读取错误,或内核为保护文件系统已将其切换为只读。
前三种是配置或一致性问题。第四种是硬件问题,在屏幕上看起来却一模一样,把它当作其他几种来处理,就是本可恢复的数据丢失的原因。这就是为什么我们的 Linux 服务器恢复工作总是在尝试任何修复之前先保护数据。
先检查什么,且不改动任何东西
- 阅读日志。运行 journalctl -xb,查看红色的行。失败的挂载单元、“Timed out waiting for device”或“Dependency failed for”加上某个挂载点,会告诉您是哪个文件系统出了问题。
- 把磁盘与 fstab 对照。lsblk -f 和 blkid 会列出系统能看到的磁盘和 UUID。如果 fstab 中期望的 UUID 不在列表里,说明磁盘丢了或被更换了。
- 查找硬件错误。dmesg 显示 I/O 错误,或 smartctl -H 报告驱动器故障,都会改变方案:修复之前先复制数据。
- 检查 RAID 状态。cat /proc/mdstat 显示软件 RAID 阵列是处于活动、降级还是非活动状态。
在继续之前,请给屏幕拍照或保存输出。任何帮助您的人,第一件事就会向您要这些记录。
安全的修复方法和应避免的做法
好的 Linux 系统修复大部分是诊断;修复本身往往只是一行命令。如果日志指向的是一块非必要的磁盘,比如已被拔掉的备份盘,请用 mount -o remount,rw / 把根文件系统重新挂载为可读写,注释掉那一行或加上 nofail 选项,使启动不再依赖该磁盘,然后重启。对于服务器没有它也能运行的每块磁盘,都值得加上 nofail 选项。
如果文件系统需要检查而磁盘本身健康,请对未挂载的文件系统运行 fsck,绝不要对已挂载的运行。需要避免的做法:
- 在故障磁盘上反复运行 fsck -y。每一遍都可能移动或丢弃磁盘本来就读得吃力的数据。先给磁盘做镜像,例如使用 GNU ddrescue,然后修复副本。
- 强行把只读文件系统改回可读写。内核在出错后将文件系统重新挂载为只读,是在保护它。在再次写入之前,先弄清原因。
- 用重装来让问题消失。重装到同样的磁盘上,可能覆盖原本仍可恢复的内容。
- 反复重启,指望它自己恢复。每次尝试都会给一块可能已在损坏的磁盘增加压力。
root 账户被锁定或没有控制台时
在 Ubuntu 和其他一些系统上,root 账户默认没有密码,所以紧急模式最后会显示“Cannot open access to console, the root account is locked”,根本没有 shell。这时的入口是救援系统:托管服务器用服务商的救援模式或 KVM 控制台,办公室里的机器则用 live USB 启动盘。从那里可以检查磁盘、把数据复制出来并修复配置。引导加载程序本身损坏时也走同样的路径,我们的 GRUB 和 MBR 引导修复页面对此有说明。
对于服务器机柜里的硬件,IPMI、iDRAC 或 iLO 之类的带外访问能省下一趟路,所以请趁一切正常时设置好并记下凭据。
常见问题:Linux 紧急模式
按 Control-D 或输入 exit 继续启动安全吗?
有时系统随后能够启动,但依赖缺失文件系统的任何东西都会失败,更糟的是会开始往根磁盘上的空挂载点里写数据。数据库或文件共享最终可能把新数据写到了错误的位置,而旧数据留在了没有挂载的磁盘上。请先找到原因。
紧急模式和救援模式有什么区别?
救援模式挂载本地文件系统并启动一小组基本服务,因此适合在健康的系统上修复。紧急模式只挂载根文件系统(往往是只读),几乎不启动任何东西,所以在存储存疑时,它是更安全的所在。
我的服务器为什么把磁盘切换成了只读?
ext4 等文件系统通常配置为在检测到错误时重新挂载为只读,以免损坏扩散。触发原因可能是非正常关机,但往往是磁盘或控制器出了故障,所以请先检查 dmesg 和驱动器的 SMART 数据,再做其他事情。
服务器卡在紧急提示符?我们的 Linux 系统恢复与修复服务从诊断和数据保护开始,然后修复引导、文件系统、RAID 和服务故障,并以一份简短的书面总结收尾。如需长滩(Long Beach)和洛杉矶(Los Angeles)地区的 Linux 修复,或美国境内任何地方的托管服务器,请联系我们,并告知发行版、服务器托管位置以及最后一屏的照片。




