系统异常时无法用 systemctl 一键切换至 emergency.target,因该命令依赖正常运行的 systemd;有效方式仅有启动阶段自动触发(如挂载失败)或 GRUB 编辑添加 systemd.unit=emergency.target。

系统异常时无法直接用 systemctl “一键”切换到紧急救援模式(emergency.target),因为 systemctl 本身依赖于正在运行的 systemd 环境。当系统已严重异常(如服务崩溃、挂载失败、启动卡死),systemd 可能已停止响应,此时 systemctl 命令往往失效或根本无法执行。
真正有效的触发方式只有两种
它们都发生在 systemd 启动流程中,而非运行时:
-
自动触发:当 systemd 在启动阶段检测到致命错误(如
/etc/fstab配置错误、根分区无法挂载、关键文件系统损坏),它会主动放弃启动,直接进入emergency.target。此时屏幕会显示:You are in emergency mode. After logging in, type "journalctl -xb" to view system logs -
手动干预(GRUB 编辑):在系统还能进入 GRUB 菜单时(BIOS/UEFI 启动阶段),按
e编辑启动项,在以linux或linux16开头的行末尾添加:systemd.unit=emergency.target
然后按Ctrl+X或F10启动 —— 这是唯一可靠、通用的“主动进入紧急模式”的方法。
运行时命令只适用于部分场景
若系统尚未崩溃,仍处于正常多用户状态(multi-user.target)或已进入 rescue.target,可使用以下命令临时切换:
- 从正常状态或 rescue 模式进入紧急模式:
systemctl emergency - 注意:该命令要求 systemd 正常运行且有 root 权限;若系统已无响应、PID 1 卡死或 journal 不可用,此命令将无反应或报错(如
Failed to connect to bus)。
紧急模式与救援模式的区别要清楚
别混淆两者用途:
-
emergency.target:最小化环境,不挂载任何非必需文件系统,不启动任何服务,仅提供原始 shell(/bin/bash)。适合修复 fstab、检查磁盘、恢复 superblock 等底层问题。 -
rescue.target:比紧急模式更完整,会挂载本地文件系统、启用基础工具和日志,但不启动网络、GUI 或应用服务。适合重置密码、修复 GRUB、更新内核等操作。
进紧急模式后关键第一步
默认根文件系统是只读挂载的,必须先改为读写才能修改配置:
mount -n -o remount,rw /
之后才可编辑 /etc/fstab、运行 e2fsck、查看日志 journalctl -xb 等。


















