我正在将主机从 12.04 LTS 升级到 Mate 16.04.1。我在网络上使用 Western Digital(白色)NAS。它在 12.04 上运行良好,但无法安装到 16.04。以下是我目前所知道的。
在 12.04 上,mount 执行的操作如下
/etc/fstab entry
10.1.0.3:/nfs/Public /media/public nfs nolock,rw,hard,intr 0 0
(注意:以上条目在我现有的 12.04 机器上运行)
$> sudo mount /media/public
jgd@John-laptop:~$ sudo mount -v /media/public
mount.nfs: timeout set for Sat Nov 12 13:05:43 2016
mount.nfs: trying text-based options 'nolock,hard,intr,vers=4,addr=10.1.0.23,clientaddr=10.1.0.23'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 10.1.0.23:/nfs/Public
jgd@John-laptop:~$
现在到了最有趣的部分。如果我从命令行挂载
jgd@John-laptop:~$ sudo mount -v 10.1.0.3:/nfs/Public /media/public
我得到以下
jgd@John-laptop:~$ sudo mount -v 10.1.0.3:/nfs/Public /media/public
mount.nfs: timeout set for Sat Nov 12 13:15:36 2016
mount.nfs: trying text-based options 'vers=4,addr=10.1.0.3,clientaddr=10.1.0.23'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=10.1.0.3'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.1.0.3 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 10.1.0.3 prog 100005 vers 3 prot UDP port 773
jgd@John-laptop:~$
成功
所以我的问题是,我应该在 /etc/fstab 中输入什么才能使 mount.nfs 重复命令行行为?
谢谢约翰
答案1
您的挂载调试给出了答案:第一个命令仅尝试挂载一些 nfs v4 共享。最后一个命令使用 v4 挂载失败,然后返回到 v3。
在您的 fstab 中,尝试添加nfsvers=3
。fstab 条目应如下所示:
10.1.0.3:/nfs/Public /media/public nfs nolock,rw,hard,intr,nfsvers=3 0 0
另外,您可能还需要考虑使用autofs
处理网络共享。以 root 身份:
apt-get install autofs4
cat <<EOF >/etc/auto.master
+dir:/etc/auto.master.d/
+auto.master
EOF
mkdir /etc/auto.master.d
cat <<EOF >/etc/auto.master.d/nfs
localname -rw nfs.server.ip:/path/to/share
EOF
cat <<EOF >/etc/auto.master.d/nfs.autofs
/media/localname/ /etc/auto.master.d/nfs --ghost --timeout 43200
EOF
service autofs restart
ls -l /media/localname/*/ #would force mounting NFS share
ls -l /media/localname/ #should show your remote share
这是处理 NFS 共享的首选方法,因为这些共享可能会消失,然后又回来……Autofs 是处理这些问题的好方法。