开机卡在挂载阶段大概率因/etc/fstab配置错误,需通过emergency.target或init=/bin/bash进入应急模式修改;重点检查网络存储缺\_netdev、外设缺nofail、UUID或类型错误,并用mount -a提前验证。

开机卡在挂载阶段,大概率是 /etc/fstab 里写了错误的挂载选项(比如该加 _netdev 的网络存储没加,或该加 nofail 的外接设备加了 defaults),导致系统等待超时甚至无限阻塞。这时候不能进桌面或 SSH,需用应急模式修改 fstab。
进入 recovery mode 或 init=/bin/bash
重启时在 GRUB 菜单按 Shift(BIOS)或 Esc(UEFI)调出菜单,选中当前内核,按 e 编辑启动参数:
- 找到以
linux开头的行,在末尾添加systemd.unit=emergency.target(推荐,有完整 systemd 环境) - 或更轻量:替换
ro quiet splash为rw init=/bin/bash(直接进 root shell,文件系统可写)
按 Ctrl+X 或 F10 启动。若用 init=/bin/bash,启动后执行:
mount -o remount,rw /(否则 / 是只读)
定位并修正 fstab 中的问题行
运行 cat /etc/fstab 查看内容,重点关注这几类易错项:
-
网络存储(NFS/CIFS)没加
_netdev:系统会尝试在网卡就绪前挂载,导致超时卡住。应改为类似:192.168.1.100:/data /mnt/nfs nfs _netdev,auto,nofail,x-systemd.idle-timeout=30 0 0 -
USB/移动硬盘等非关键设备用了
defaults却没插着:去掉defaults,加上nofail,x-systemd.device-timeout=5,避免等待 -
UUID 或路径写错、文件系统类型不匹配:用
blkid核对设备标识,lsblk -f看实际类型
临时跳过挂载验证(仅调试用)
如果一时无法确定哪一行出问题,可先注释掉可疑行(行首加 #),保存后退出:
- 用
vi /etc/fstab或nano /etc/fstab编辑(nano 按 Ctrl+O 保存,Ctrl+X 退出) - 若用
init=/bin/bash启动,改完后执行:
exec /sbin/init 或 reboot -f - 若用
emergency.target,输入 exit 两次回到正常启动流程
预防下次再踩坑
日常编辑 fstab 前务必验证:
- 新增行先手动试挂:
mount -a(报错会立刻提示,不重启也能发现) - 对非必需设备,固定加上
nofail;对网络存储,必加_netdev - 备份原 fstab:
cp /etc/fstab /etc/fstab.bak - 考虑用 systemd mount unit 替代 fstab,控制依赖和超时更灵活










