我有一台运行 Precise (12.04 x64) 的机器,我无法安装我的 SMB 驱动器。它以前可以正常工作(一两周前),而且我没有碰过 fstab!托管共享的机器是商用 NAS,我没有看到任何表明这是 NAS 问题的信息。
我有一台较旧的机器,我同时将其更新到 Precise(都是全新安装的,而不是 dist-upgrade),因此应该具有非常相似的配置。它没有任何问题。我在 Windows 机器/分区上也没有遇到问题,只有我的一台 Precise 机器有问题。
两台机器在 fstab 中使用相同的条目,并且使用相同的 /etc/samba/smb.conf 文件。我想我从未更改过 smb.conf(以前从未发生过任何变化)。
我的 fstab 条目基本上都是这样的:
//<share_path> /media/<share_name> cifs credentials=/home/downbeat/.credentials,iocharset=utf8,uid=downbeat,gid=downbeat,file_mode=0644,dir_mode=0755 0 0
这是启动时的 dmesg 输出:
[ 51.162198] CIFS VFS: Error connecting to socket. Aborting operation
[ 51.162369] CIFS VFS: cifs_mount failed w/return code = -115
[ 51.194106] CIFS VFS: Error connecting to socket. Aborting operation
[ 51.194250] CIFS VFS: cifs_mount failed w/return code = -115
[ 51.198120] CIFS VFS: Error connecting to socket. Aborting operation
[ 51.198243] CIFS VFS: cifs_mount failed w/return code = -115
在 dmesg 输出中我没有看到其他错误。
再次,它以前可以工作;现在不行了。配置非常相似的机器可以工作(但工作机器上的一些软件包已过期)。NAS 只有一个接口/IP 地址,nmblookup 可以从其主机名(来自有问题的机器)找到它的 IP,并响应 ping。任何帮助都非常好。
答案1
我发现关闭 IPv6 可以解决我遇到的一个非常类似的问题。我的 Ubuntu 12.04 机器连接到一个由 Windows 用户主导的企业网络,而我对服务器没有任何权限。按照以下教程操作 http://www.noobslab.com/2012/05/disable-ipv6-if-your-internet-is.html 解决了我的问题。(保存点击:编辑 /etc/sysctl.conf 以插入三行“net.ipv6.conf.*.disable_ipv6 = 1”格式的内容,将 * 替换为“all”、“lo”和“default”;然后给出 shell 命令“sudo sysctl -p”。)
答案2
我的内部 IP 最终出现在 NAS 的阻止列表中。我将其删除;问题解决了。使用 smbclient 进行故障排除。
编辑:我现在对 GNU/Linux 更加熟悉了,如果我今天尝试调试这个问题,我会查看hosts.deny 和 iptables,其中一个(或两者)可能用于实现我现已退役的商业 NAS 中的阻止列表/黑名单。
答案3
就我的情况而言,我试图安装共享驱动器的 Windows 计算机突然决定它位于公共网络上,并阻止所有访问。告诉它网络是私有的,我就可以再次连接。