我无法像以前那样连接到 SMB 共享。我以前只能挂载在 \mycompany.corp\dfs 但现在我必须通过 \my-fileserver.mycompany.corp\dfs 挂载
smbclient 按预期工作。
当我尝试在 CentOS 中挂载 SMB 共享时...
mount -t cifs -o user=svc_xxx,domain=mycompany.corp,vers=2.1 //mycompany.corp/dfs /mnt/tmp
我收到以下错误:
[48785.947248] CIFS VFS: BAD_NETWORK_NAME: \\mycompany.corp\dfs
[48785.949836] CIFS VFS: session ffff9a43e7236000 has no tcon available for a dfs referral request
[48785.952675] CIFS VFS: cifs_mount failed w/return code = -2
但是当我在 smbclient 中执行此操作时,它有效。
smbclient \\\\mycompany.corp\\dfs -U 'mycompany.corp\svc_xxx' -m SMB2
如果我在 smbclient 中列出服务器,我会得到:
smb: \> list 0: server=my-fileserver.mycompany.corp, share=dfs
mycompany.corp 无法解析为 my-fileserver.mycompany.corp 解析的内容。
奇怪的是,如果我将 mount 与文件服务器的名称一起使用,即:
mount -t cifs -o user=svc_xxx,domain=mycompany.corp,vers=2.1 //my-fileserver.mycompany.corp/dfs /mnt/tmp
...它有效。
smbclient 如何“知道”如何连接到 mycompany.corp 而 mount 却不知道?为什么它会突然崩溃(我们的 LDAP 控制器和 DNS 服务器发生了一些变化,但我没有具体细节)。
路径
\\mycompany.corp\dfs
是一个DFS命名空间。当您连接到此命名空间时,客户端需要了解如何遵循 DFS 引用来到达托管共享的实际服务器。
smbclient
旨在处理开箱即用的 DFS 推荐。当您使用 smbclient \\\\mycompany.corp\\dfs
连接时,它会正确解释 DFS 命名空间并将您重定向到适当的服务器(在您的情况下为 my-fileserver.mycompany.corp
)。
默认情况下,
mount.cifs
可能不会处理 DFS 转介,除非明确指示这样做。
CIFS VFS: BAD_NETWORK_NAME: \\mycompany.corp\dfs
CIFS VFS: session ... has no tcon available for a dfs referral request
CIFS VFS: cifs_mount failed w/return code = -2
这些错误表明
mount.cifs
找不到网络名称,因为它没有处理对实际服务器的 DFS 引用。
要解决此问题,您需要指示
mount.cifs
显式处理 DFS 引用。在挂载命令中添加 dfs
mount -t cifs -o user=svc_xxx,domain=mycompany.corp,vers=2.1,dfs //mycompany.corp/dfs /mnt/tmp
尝试一下,让我知道它是否对您有用。我已经测试过它应该可以工作。