最稳妥解法是拔掉问题硬盘或进recovery模式改/etc/fstab;nofail拼写错误会导致systemd反复重试超时卡启,需检查拼写、设备存在性、挂载点路径及文件系统类型,并推荐nofail与x-systemd.device-timeout配合使用。

系统启动卡在挂载环节,最常见原因是 /etc/fstab 里配置了不可达设备(比如没插的U盘、未通电的NAS、网络未就绪时的NFS),而默认行为会阻塞等待90秒。解决核心不是“跳过”,而是让系统知道“这个可以晚点、失败也别停”。
给非关键设备加 nofail
nofail 是最关键的选项,它告诉 systemd:挂载失败不报错、不中断启动,只记日志。适用于所有非系统必需的挂载项,比如外接硬盘、移动U盘、测试用NFS共享。
- USB硬盘示例:
UUID=abcd-efgh /mnt/usb vfat defaults,nofail,x-systemd.device-timeout=3 0 0 - 不要对根分区(
/)、/boot或/usr使用 nofail —— 它们必须成功挂载才能启动 - 加了 nofail 后,仍可用
mount -a手动测试是否能挂上,避免配置错误被掩盖
给网络存储加 _netdev 和超时控制
NFS、CIFS 这类依赖网络的挂载,光写 nofail 不够。必须配合 _netdev,否则 systemd 会在网卡还没起来时就尝试挂载,直接触发超时。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- NFS 推荐写法:
192.168.1.100:/share /mnt/nfs nfs defaults,_netdev,nofail,x-systemd.device-timeout=5 0 0 - CIFS 示例中还要加
soft,intr,timeo=14,这是协议层超时,和 systemd 的 device-timeout 协同生效 -
x-systemd.device-timeout=5显式设为5秒,避免等满默认90秒;数值按实际网络延迟微调,一般3–10秒足够
临时禁用或延后挂载
如果某设备极少使用,或你希望首次访问才挂载(比如备份盘),可进一步降低启动负担。
- 加
noauto:开机完全不挂,需手动运行mount /mnt/xxx才触发 - 加
x-systemd.automount:挂载点目录一被访问(如ls /mnt/nfs),systemd 自动拉起挂载,真正“按需” - 两者可共存,例如:
... defaults,nofail,noauto,x-systemd.automount,x-systemd.device-timeout=5 ...
应急修复 fstab 错误
已经卡住进不了系统?别重装,用 GRUB 进入应急模式改 fstab:
- 重启,在 GRUB 菜单按 e 编辑启动项,在
linux行末尾加systemd.unit=emergency.target - 按 Ctrl+X 启动,输入 root 密码进入命令行
- 执行
mount -o remount,rw /(若提示只读) - 用
vi /etc/fstab注释掉可疑行(行首加#),保存退出 - 输入
exit两次,系统将自动继续启动

















