gentoo、内核 3.7.10
samba 3.6.12
SMB/CIFS 服务器:Windows Server 2003 3790 Service Pack 2
mount.cifs
我遇到过行为与程序不同的情况smbclient
。
以下命令工作正常。我可以登录服务器并浏览共享的内容。
smbclient -U domainname/username //server.name/sharename
如果我尝试使用以下命令安装这个共享文件夹,
mount -t cifs //server.name/sharename /mount/point -o user=domainname/username
那么命令本身就可以正常工作(返回代码为 0,没有错误消息)。但/mount/point
看上去很空虚。
有什么问题?为什么mound.cifs
和smbclient
行为不同?也许smbclient
使用一些隐藏的设置?
顺便说一句,我不知道这是否与问题相关,但无论如何。如果我mount.cifs
多次运行命令,我不会收到任何folder already mounted
类型的消息。虽然之后我可以运行umount
相同的次数,直到出现错误umount: /mount/point/: not mounted
答案1
smbclient 没有安装共享,而是“mount -t cifs ...”正在执行此操作。您需要成为超级用户才能安装共享。你能尝试一下sudo mount -t cifs //server.name/sharename /mount/point -o username=youruser,domain=yourdomain
吗?
答案2
最后我解决了这个问题。感谢 Wireshark。
从 Wireshark 的日志中,我看到smbclient
它的工作何时完成,然后对等方交换了 GET_DFS_REFERRAL 子命令。但当我尝试使用 挂载共享时,这些消息不存在mount.cifs
。
服务器似乎使用了分布式文件系统设施,因此我尝试将 DFS 支持添加到内核中,结果成功了。现在我可以在已安装的共享中完美地导航、阅读和写入。
实际上我是这么想的,smbclient
并mount.cifs
使用相同的低级工具连接到 SMB/CIFS 服务器,但事实并非如此。看起来 Samba 可以在没有内核支持的情况下自行处理 DFS。