进入紧急模式解决开机卡死问题
问题一:NFS 服务端未启动时,客户端为什么开机卡死?
1. 核心原因
Systemd 默认强依赖检查:Linux 在启动解析
/etc/fstab时,默认将所有条目视为系统启动的必需依赖项。网络服务不可达与长时间等待:NFS 服务端关机时,客户端在启动阶段不断发起连接重试。默认挂载超时通常长达 90 秒(甚至更久)。
进入紧急模式(Emergency Mode):超时重试失败后,Systemd 判定自检失败,中断正常启动流程,导致系统卡死在开机动画或黑屏要求输入 root 密码进入紧急维护模式。
2. 根本解决办法:优化 /etc/fstab 挂载参数
在客户端(web01、web02)的 /etc/fstab 挂载条目中,为网络挂载显式追加容错与超时参数:
原始配置(容易卡死):
Plaintext
nfs:/data/uploads /code/wordpress/wp-content/uploads nfs defaults,_netdev 0 0优化后配置(推荐生产方案):
Plaintext
nfs:/data/uploads /code/wordpress/wp-content/uploads nfs defaults,_netdev,nofail,x-systemd.mount-timeout=5 0 0
关键参数解析:
nofail:告诉系统若该设备/挂载点连接失败或不存在,忽略错误并继续正常启动,不会阻塞开机流程。x-systemd.mount-timeout=5:将 Systemd 尝试挂载该设备的超时时间限制为 5 秒,避免开机长时间等待。_netdev:声明该挂载点依赖网络,确保在网络协议栈初始化完成后再尝试挂载。
问题二:已经卡在开机界面进不去系统,如何进入紧急模式排查?
途径 A:等待超时自动进入
开机卡在加载动画时按键盘
Esc键,可切换至系统后台运行日志视图。等待挂载超时(约 90 秒)后,屏幕出现提示:
Plaintext
Give root password for maintenance (or press Control-D to continue):直接输入 root 密码并按回车(输密码时光标不显示字符),即可进入维护 Shell。
途径 B:GRUB 菜单手动引导进入(无需等待超时)
重启虚拟机,在 GRUB 内核选择界面快速按方向键(↑ / ↓)暂停倒计时。
光标停留在默认内核行,按
e键进入编辑模式。找到以
linux开头的那一行,光标移到末尾,空格后追加:Plaintext
systemd.unit=emergency.target(或使用
rd.break模式)按快捷键
Ctrl + x引导启动,直接落入紧急模式命令行。
进入紧急模式后的标准修复流程
重新挂载根分区为可读写状态(紧急模式默认通常为只读挂载):
Bash
mount -o remount,rw /编辑修复
/etc/fstab文件:Bash
vi /etc/fstab快速救急:在该行开头加上
#号注释掉挂载规则。永久修复:在挂载选项追加
,nofail,x-systemd.mount-timeout=5。
重启系统:
Bash
reboot # 若 reboot 提示无权限,可输入 exit 或按 Ctrl + D 继续完成系统引导
评论