无法在 Windows 客户端上挂载 NFS 共享
Posted
技术标签:
【中文标题】无法在 Windows 客户端上挂载 NFS 共享【英文标题】:Unable to mount NFS shares on Windows clients 【发布时间】:2014-01-29 21:19:47 【问题描述】:我在 Linux 机器上设置了 NFS 共享。我有安装适用于 Windows 的 NFS 服务的方法,并且我能够使用 UNC 路径或映射驱动器连接到 NFS 共享。我也可以手动安装共享,使用 mount 或 net use 成功。我正在尝试使用 Chef 自动执行此操作,但是当我使用 Chef 时,手动工作的相同命令不起作用。我尝试了多种方法,但都没有奏效。
mount "X:" do
device "\\\\d-devfs02.domain.com\\software"
action :mount
end
ArgumentError: 找不到网络路径。
mount "X:" do
device "d-devfs02.domain.com:/software"
fstype "nfs"
action :mount
end
ArgumentError: 参数不正确。
execute "Mount" do
command "net use X: \\\\d-devfs02.domain.com\\software"
action :run
end
---- 开始输出 net use X: \d-devfs02.domain.com\software ---- 标准输出: STDERR:发生系统错误 53。
找不到网络路径。 ---- net use X 的结束输出:\d-devfs02.domain.com\software ---- Ran net use X: \d-devfs02.domain.com\software 返回 2
execute "Mount" do
command "C:/Windows/System32/mount.exe \\\\d-devfs02.domain.com\\software *"
action :run
end
---- 开始输出 C:/Windows/System32/mount.exe \d-devfs02.domain.com\so 软件 * ---- 标准输出: STDERR:“C:/Windows/System32/mount.exe”不被识别为内部或外部 rnal 命令, 可运行的程序或批处理文件。 ---- C:/Windows/System32/mount.exe \d-devfs02.domain.com\soft 的结束输出 洁具 * ---- Ran C:/Windows/System32/mount.exe \d-devfs02.domain.com\software * 返回 1
这个让我大吃一惊。我不仅确认了该文件存在于该位置,而且当我手动运行此命令(以及所有 net use 命令)时,它们也可以正常工作。
当我手动执行它们时,Net use 和 mount 命令会起作用。我以自己的身份运行 chef-client,所以这不是权限问题。 Chef-client 由于某种原因无法看到 mount.exe,并且 net use 的路径存在问题。我不确定这里还能做什么。
【问题讨论】:
第一个代码 sn-p 应该可以工作。它甚至出现在文档docs.opscode.com/resource_mount.html 中。您是否使用与手动运行命令相同的用户运行 chef?可能是 Chef 没有访问共享的某些权限? 我以自己的身份运行 chef-client,当我手动运行命令时,我能够连接到共享。我想知道在 chef-client 运行的上下文中是否有一些改变会破坏这个?或者,如果它是 Windows 客户端上的 NFS 共享,可能需要更改某些内容? 我建议在 Chef 邮件列表 chef@lists.opscode.com 上询问,看看是否有其他人遇到过同样的问题。您也可以尝试在 ticket.opscode.com 上开票,因为这似乎是一个错误。 即使在 7 年后,我也遇到了同样的问题。这些东西都不起作用。 【参考方案1】:您使用的是 64 位 Windows 计算机吗?这可能是因为 Chef 中的 Ruby 是 32 位 Ruby,因此 Windows 有用的“文件系统重定向器”启动了。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187.aspx
换句话说,32 位 Ruby 看到的实际路径是 C:\Windows\Sysnative,而不是 C:\Windows\System32。
【讨论】:
以上是关于无法在 Windows 客户端上挂载 NFS 共享的主要内容,如果未能解决你的问题,请参考以下文章
linux下nfs客户机挂载服务器上的共享目录时,出现权限不够的错误,怎么解决?