linux启动进入emergency模式表明系统在关键阶段(如挂载根文件系统、加载init进程或解析fstab)遇到严重错误,需手动排查修复;常见原因包括/etc/fstab配置错误、根分区损坏、关键服务启动失败或磁盘硬件异常。

Linux启动时进入emergency模式,通常说明系统在某个关键阶段(如挂载根文件系统、加载init进程或解析fstab)遇到了严重错误,无法继续正常启动。此时系统会暂停并进入一个最小化的、只读的救援环境,需要手动排查和修复。
确认emergency模式触发原因
进入emergency模式后,终端会显示类似 “You are in emergency mode. After Logging in, type “journalctl -xb” to view system logs…” 的提示。这是关键线索:
- 执行 journalctl -xb 查看完整启动日志,重点关注带 Error 或 FAILED 的行,尤其是 systemd 启动单元失败信息(如
dev-disk-by…device not found、Failed to mount /home) - 常见诱因包括:/etc/fstab 配置错误(如UUID写错、挂载点路径不存在、文件系统类型不匹配)、根分区损坏或无法识别、关键服务(如 udev、systemd-udevd)启动失败、磁盘硬件异常或连接松动
检查并修复 /etc/fstab
fstab 是最常导致 emergency 模式的配置文件。修复前先确认根文件系统是否已挂载(通常为只读):
- 运行 mount | grep ” / “ 确认根分区状态;若为
ro(只读),可尝试临时重挂为读写:mount -o remount,rw / - 用 cat /etc/fstab 查看内容,逐行核对:
– 每行第1列(设备标识)是否真实存在(可用 blkid 对比 UUID 或 LABEL)
– 第2列(挂载点)路径是否存在(如/boot/efi缺失需 mkdir -p /boot/efi)
– 第3列(文件系统类型)是否正确(如把ext4写成ntfs) - 发现错误项后,用 vi /etc/fstab 注释掉(行首加
#)或修正,保存退出
检查磁盘与文件系统健康状态
即使 fstab 正确,底层磁盘问题也会引发 emergency:
- 用 lsblk 和 blkid 确认所有预期磁盘和分区是否被识别;若某设备完全不显示,可能是硬件故障或未供电
- 对疑似出问题的分区(如
/dev/sda1)运行 e2fsck -f /dev/sda1(ext系列)或 xfs_repair /dev/sda1(XFS),注意:必须先卸载(umount /dev/sda1)或确保未挂载 - 若根分区需修复且已挂载,可重启进 Live USB 环境再操作,避免风险
退出 emergency 并验证修复效果
完成修改后,不要直接关机:
- 执行 systemctl daemon-reload 重载配置
- 运行 systemctl default 尝试切换回默认目标(等效于正常启动流程)
- 若仍失败,用 systemctl list-jobs 查看卡在哪个服务;也可直接输入 exit 或按 Ctrl+D 退出 emergency shell,系统将自动尝试继续启动
- 成功启动后,建议立即备份 fstab:cp /etc/fstab /etc/fstab.bak,并用 systemd-analyze blame 检查启动耗时异常的服务