我在 Amazon EC2 的 VPC 中有几台服务器。其中一台充当 NFS 服务器,另一台充当客户端。
我最近注意到客户端存在一个问题,重新启动后,它会拒绝所有 SSH 连接,大概是因为 SSH 没有运行。将 EBS 卷传输到另一个实例并查看内部后,我注释掉了 NFS 行/etc/fstab
并尝试将其连接回服务器并启动它。你瞧,我能够通过 SSH 连接了。
我的 fstab 中的以下行似乎破坏了启动时的所有内容:
10.0.0.1:/export/share /mnt/shared nfs auto 0 0
为什么这会导致 SSH 无法启动?如何让 NFS 在启动时自动挂载而不破坏系统上的网络/SSH?
我已经检查过它sudo mount -a
工作正常,因此 fstab 命令似乎不存在固有问题。出了什么问题以及如何修复它?
答案1
安装的时候需要多加一个选项nfs
,我们都是用这个
例子
10.0.0.1:/export/share /mnt/shared nfs _netdev,noatime,intr,auto 0 0
这些是挂载选项:“noatime”提高了访问速率,“auto”告诉 Rpi 在启动时挂载 NFS 共享。
从man mount
_netdev 文件系统驻留在需要网络访问的设备上(用于防止系统在系统上启用网络之前尝试挂载这些文件系统)。
答案2
尝试使用nobootwait
或nofail
作为 fstab 中的挂载选项。
答案3
安装在远程服务器上的 nfs 共享存在同样的问题。 nfs 正在通过 openvpn。
我尝试了很多东西,但没有任何效果,包括上面的提示。 fstab 中的选项_netdev,ro,noauto,nofail,x-systemd.automount,x-systemd.requires=openvpn.service,x-systemd.device-timeout=30 0 0
不起作用。
在rc3.d
我尝试了不同的服务顺序...
我发现的唯一非常肮脏的解决方案是在 fstab 中使用_netdev,ro,noauto,nofail 0 0
选项,以确保它忽略那些 nfs 共享(如果它们在启动时未正确安装),并添加一行来rc.local
安装共享,例如mount 192.168.0.1:/myshare