加\_netdev可解决NFS/CIFS开机挂载失败,因它使systemd将挂载单元绑定到network-online.target;CIFS应使用credentials文件并设vers=3.0+;NFS推荐hard,timeo=14,retrans=3;卸载失败需用fuser排查占用进程。
挂载时没加 _netdev 导致开机失败
Linux 启动早期网络还没就绪,但默认挂载顺序不检查网络依赖。如果 /etc/fstab 里直接写 NFS/CIFS 挂载项,系统可能在网卡未 up、DNS 未通、Samba 服务未响应时强行尝试挂载,最终超时失败并卡住或跳过——后者会导致后续依赖该挂载点的服务异常。
解决方法是在 fstab 对应行的第四个字段(options)中加入 _netdev,例如:
192.168.1.100:/volume1/video /mnt/nas nfs _netdev,hard,intr,rsize=8192,wsize=8192 0 0
注意:_netdev 是 systemd 识别网络设备挂载的关键标记,不加它,systemd-fstab-generator 就不会把挂载单元绑定到 network-online.target。
CIFS 挂载因认证失效反复重试
使用用户名密码挂载 CIFS(如 Samba 共享)时,若凭据过期、用户被锁定、或 NAS 端启用了 Kerberos/NTLMv2 强制策略,mount.cifs 可能静默失败,并在后台不断重试(尤其配合 auto 或 noauto,x-systemd.automount 时),拖慢系统响应甚至耗尽连接数。
建议做法:
- 用
credentials=/path/to/credfile替代明文写在 fstab 中的username=/password= - 确保 credfile 权限为
600(chmod 600 /path/to/credfile),否则 mount 会拒绝读取 - 对 SMB3 共享,显式指定协议版本:加
vers=3.0或vers=3.1.1,避免协商失败退到不安全的 SMB1 - 加上
cache=strict和actimeo=30减少元数据不一致引发的 IO 阻塞
NFS 挂载 hard/intr 设置不当引发假死
NFS 默认是 soft 模式,出错直接报错返回;但多数 NAS 场景需要一致性,所以常设为 hard。问题在于:若没配 intr(或现代内核中的 hard,soft, intr 已被弃用,改用 hard,nointr,forever),NFS 请求卡住时,进程会不可中断(D 状态),kill -9 也无效,只能等服务器恢复或重启。
稳妥组合是: