当启动 CentOS 7 系统时,屏幕上突然弹出如下紧急模式提示:
Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
Give root password for maintenance
(?? Control-D???):
无需惊慌,这表示系统因某些故障进入了紧急修复模式。解决思路非常明确:定位问题根源,逐一解决。接下来将详细介绍常见的排查与修复步骤。
解决方法
首先确认当前运行级别。执行 runlevel 命令,若返回 unknown,则说明默认启动目标可能异常。此时需要调整默认启动级别:
第一步,将原有目标文件备份:
mv /etc/systemd/system/default.target /etc/systemd/system/default.target.back
第二步,重新创建软链接:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或者也可使用 ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
当然,用 systemctl 命令会更便捷:
systemctl set-default graphical.target
systemctl isolate multi-user.target
不过执行时可能会遇到如下报错:Error getting authority: Error initializing authority: Could not connect: Resource temporarily una vailable (g-io-error-quark, 1)。这表明问题较为复杂,需查看系统日志进一步分析。
运行 journalctl -xb 查看系统日志,发现挂载存在故障:

日志明确显示 /home 分区挂载失败。问题集中于此,需检查自动挂载配置文件:
vi /etc/fstab
为稳妥起见,先将 /home 所在行注释掉(建议提前备份原文件):
#/dev/mapper/centos-home /home xfs default 0 0
保存并退出,然后重启系统:reboot
重启后系统卡在白条界面,按 Esc 键查看启动详情,发现卡在 /etc/rc.d/rc.local 脚本处。这说明存在额外问题,需进入单用户模式处理。
进入单用户模式的操作步骤:
(1) 启动时在 GRUB 引导菜单中选中默认启动项,按下 e 键进入编辑模式。

(2) 找到以 ro 开头的内核参数行。

(3) 将 ro 修改为 rw init=/sysroot/bin/sh,然后按 Ctrl+X 启动进入单用户模式。

(4) 进入单用户 shell 后,执行 chroot /sysroot 以获取完整 root 权限。
接着编辑 /etc/rc.d/rc.local 文件,将与 /home 相关的启动项全部注释,然后重启服务器。
此次重启后系统正常进入多用户模式。但 /home 挂载问题仍需彻底解决——不要急于恢复注释,先检查其真实状态:
(1) 执行 lvs -a -o +devices 查看磁盘详细信息,发现 home 逻辑卷的 attr 参数缺少 a(active),即处于未激活状态。
(2) 执行 lvchange -a y /dev/mapper/centos-home 激活 home 逻辑卷。
(3) 然后直接挂载:mount /dev/mapper/centos-home /home。
(4) 挂载成功后,恢复之前注释掉的 /etc/fstab 和 /etc/rc.d/rc.local 中的相关配置。

再次重启后,系统顺利进入正常界面。至此,CentOS 7 紧急修复模式的问题已彻底解决。整个过程并不复杂,关键在于根据日志线索逐步排查——先检查挂载状态,再分析启动脚本,切忌盲目重装系统。
