我有几个使用 NFS 安装的外部安装。
当我使用 Ubuntu 14.04 时,它们运行良好,但是,我刚刚更新到 16.04.1,现在它们无法安装。
它们没有按照 /etc/fstab 中指定的方式在启动时安装,我也无法手动安装它们。
fstab 内容如下:
10.125.225.120:/var/storage /external-storage/server1 nfs user 0 0
所有其他挂载均在 fstab 中遵循相同模型。
当我运行时,dmseg
我收到以下 NFS 错误消息:
NFS: nfs4_discover_server_trunking unhandled error -512. Exiting with error EIO
任何帮助将不胜感激!
答案1
我在 16.04 中看到了同样的问题并最近“修复”了它(通过禁用内核模块的解决方法)。
如果您手动挂载文件系统,然后检查/etc/mtab
,您可能会看到选项中添加了一堆垃圾,例如我的变成了:
rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.24.25.xx,local_lock=none,addr=172.24.23.xx
关键见解是sec=sys
位,这意味着 NFS 没有使用任何 GSSAPI/Kerberos 身份验证内容。(从邮件列表问题中的上下文中,我了解到“-512”错误是“AUTH_GSS 上调”失败时的一般错误。)
您可能希望将sec=sys
自己传入/etc/fstab
即可解决此问题,但这对我来说不起作用。明确输入 也没有NEED_GSSD=no
用/etc/default/nfs-common
。
接下来是什么此主题只是rpcsec_gss_krb5
通过 modprobe.d 将模块列入黑名单:
echo 'blacklist rpcsec_gss_krb5' > /etc/modprobe.d/blacklist-rpcsec-gss-krb5.conf
reboot
另一个警告是,这可能是一个错误,应该可以正常工作。例如,这个最近的 Redhat 错误报告对于“nfs4_discover_server_trunking 未处理的错误 -512”,该错误已被标记为非公开错误的重复。
答案2
如果您迫切需要,您可以查看 NFS 软件包的更改日志,一直追溯到nfs-utils (0.1.3-1)
(当前版本是1:1.2.8-9ubuntu12 Ubuntu:16.04/xenial
),从上到下阅读文件,直到您在 12.04 上运行的 NFS 版本:
+w3@aardvark:~(0)$ dpkg -l nfs\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==========================-===========-=========-==========================
un nfs-common <none> <none> (no description available)
un nfs-kernel-server <none> <none> (no description available)
+w3@aardvark:~(0)$ apt-get changelog nfs-common
Get:1 http://changelogs.ubuntu.com nfs-utils 1:1.2.8-9ubuntu12 Changelog [131 kB]
Fetched 131 kB in 1s (113 kB/s)
<...snip...>
+w3@aardvark:~(0)$ apt-get changelog nfs-kernel-server
Get:1 http://changelogs.ubuntu.com nfs-utils 1:1.2.8-9ubuntu12 Changelog [131 kB]
Fetched 131 kB in 1s (118 kB/s)
<...snip...>