FreeBSD 上的 NFSClient 问题:"rpc.umntall: not found"

NFSClient issue on FreeBSD: "rpc.umntall: not found"

我们有一台 FreeBSD 8 服务器,它自启动后就没有重新启动过。它现在已经重新启动,我们正在尝试将 NFS 挂载重新连接到它。

$ sudo /etc/rc.d/nfsclient start
NFS access cache time=60
rpc.umntall: not found

错误 rpc.umntall: not found 的明显原因是计算机上不存在该程序。

除了使用 NFSClient 外,还有其他方法可以挂载到连接到网络的 NFS 服务器吗?或者我可以强制客户端移过脚本中需要 rpc.umntall 的部分吗?

我之所以问,是因为它之前已经启动,如果我们从中删除任何程序,我会感到非常惊讶。

rpc.umntall 作为基本系统的一部分安装,通常在 /usr/sbin/.

如果您查看 /etc/rc.d/nfsclient 的内容,您会发现:

unmount_all()
{
        # If /var/db/mounttab exists, some nfs-server has not been
        # successfully notified about a previous client shutdown.
        # If there is no /var/db/mounttab, we do nothing.
        if [ -f /var/db/mounttab ]; then
                rpc.umntall -k
        fi
}

一个廉价的解决方法是删除 /var/db/mounttab

但是,如果您想解决问题,则需要解决缺失的问题 rpc.umntall。不是在/usr/sbin/吗?如果没有,您可以尝试从已发布的图像中恢复它,或者您可以尝试从源代码构建它。 如果它在计算机上的其他地方,您可以尝试使用 find / | grep rcp.umntall 找到它。

如果它存在于 /usr/sbin 中但不工作,那么这可能意味着您的 rc 子系统使用的 PATH 变量有问题。您可以通过在 /etc/rc.d/nfsclient 脚本中对 rpc.umntall 的路径进行硬编码来仔细检查。