我在尝试从 FreeBSD 9.0-RC3 安装到 Debian Linux 机器时遇到了一个奇怪的问题。
我使用的命令是:
sudo mount -v gorkon:/垃圾箱/tmp/test
这将返回以下直接信息:
mount:没有指定类型 - 由于冒号,我假设是 nfs mount.nfs:超时设置为 2012 年 1 月 5 日星期四 17:37:40 mount.nfs:尝试基于文本的选项“vers=4,addr=[serverip],clientaddr=[cllientaddr]” mount.nfs:mount(2):权限被拒绝 mount.nfs:挂载 gorkon:/dustbin 时服务器拒绝访问
我在服务器(gorkon)上找不到任何日志条目,但在我的 debian 系统日志中存在以下日志条目:
[30082.224612] RPC:服务器 gorkon 需要更强的身份验证。
NFS 服务器正在运行 nfsuserd 和 rpcbind。我尝试将 /etc/exports 中的共享设置为使用 sec=sys(并以相同的方式连接)。我没有在这个网络上设置 Kerberos,而且我也不打算开始。Debian NFSv4 服务器确实连接到 Solaris 10 NFSv4 服务器,如果我强制使用 nfsv4,FreeBSD 框无法通过 NFS 安装自己的共享(错误为 mount_nfs: /tmp/test, : 权限被拒绝)。FreeBSD 8.2-RELEASE 框也无法安装,同样的错误。
Solaris 10 机器也无法安装 FreeBSD 机器的安装座。此机器的错误是:
genunix:[ID 664466 kern.notice] 服务器 gorkon 的 NFS 复合失败:错误 7 genunix:[ID 532867 kern.warning] 警告:NFS 服务器对 gorkon 的初始调用失败:权限被拒绝。
NFSv3 挂载工作正常。
知道发生什么事了吗?
答案1
我遇到了同样的问题,请确保 /etc/exports 中有一个“V4:”根行,如下所示:
V4: / -sec=sys
/tank/dedup host1 host2 host3
答案2
您是否已在 FreeBSD 服务器和挂载它的 cmd 上指定了身份验证类型?据我所知,FreeBSD 要求 NFSv4 具备该功能。
sec=⟨flavor⟩ 此选项指定挂载应使用哪种安全类型。目前,它们是:
krb5 ‐ Use KerberosV authentication
krb5i ‐ Use KerberosV authentication and
apply integrity checksums to RPCs
krb5p ‐ Use KerberosV authentication and
encrypt the RPC data
sys ‐ The default AUTH_SYS, which uses a
uid + gid list authenticator
参见 mount_nfs(8)
答案3
在 FreeBSD 的服务器端,你需要在 /etc/rc.conf 中添加以下几行
nfs_server_enable="YES"
nfsv4_server_enable="YES"
nfsuserd_enable="YES"
这将是最简单的 /etc/exports
V4: /
/
在 Debian 客户端,您需要使用 NFSv4 挂载它,如下所示:
$ sudo mount -t nfs4 test.home:/ /mnt
您需要用 NFS 服务器的 IP 或主机名替换 test.home,并且您可以将 /mnt 替换为您想要使用的任何挂载点。
您可以通过查看此命令的输出来检查所使用的协议:
$ mount
test.home:/ on /mnt type nfs4 (rw,addr=192.168.1.5,clientaddr=192.168.1.3)