![CIFS 共享挂载错误](https://linux22.com/image/1316575/CIFS%20%E5%85%B1%E4%BA%AB%E6%8C%82%E8%BD%BD%E9%94%99%E8%AF%AF.png)
我正在尝试将网络共享从 Linksys NAS200 安装到 Fedora 16。
我尝试运行的程序不接受要保存到的网络地址。我运行它时没有指定服务器的 IP 地址,它给出了一些随机 IP。我指定了一个 IP,但它找不到设备。
错误如下:
[root@HOME ~]# mount -t cifs -v //NAS_SERVER/public/ /mnt/ -o username=user,password=pass
mount.cifs kernel mount options: ip=184.106.31.190,unc=\\NAS_SERVER\public,,ver=1,user=user,pass=********
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
[root@HOME ~]# mount -t cifs -v //NAS_SERVER/public/ /mnt/ -o username=user,password=pass,ip=192.168.1.77
ip address 192.168.1.77 override specified
mount.cifs kernel mount options: ip=192.168.1.77,unc=\\NAS_SERVER\public,,ver=1,user=user,pass=********
Retrying with upper case share name
mount.cifs kernel mount options: ip=192.168.1.77,unc=\\NAS_SERVER\PUBLIC,,ver=1,user=user,pass=********
mount error(6): No such device or address
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
但它确实适用于smbclient
:
[root@HOME ~]# smbclient -L 192.168.1.77
WARNING: The security=share option is deprecated
Enter user's password:
Domain=[HOME] OS=[Unix] Server=[Samba 3.0.22]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Network Storage)
DISK 1 Disk
PUBLIC Disk
ADMIN$ IPC IPC Service (Network Storage)
Domain=[HOME] OS=[Unix] Server=[Samba 3.0.22]
Server Comment
--------- -------
HOME Samba Server Version 3.6.5-85.fc16
NAS_SERVER Network Storage
Workgroup Master
--------- -------
HOME HOME
为什么我无法挂载到这个 Samba 服务器?这些错误是什么意思?
答案1
解决从 Fedora 访问 Windows XP 共享文件夹的问题:
您收到以下错误:
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
1. 确保 Linux 可以 ping 通另一个盒子。
在 Linux 机器上运行此命令,指向 Windows 机器的 IP:
el@defiant /mnt $ ping 192.168.13.107
PING 192.168.13.107 (192.168.13.107) 56(84) bytes of data.
64 bytes from 192.168.13.107: icmp_req=1 ttl=128 time=0.366 ms
--- 192.168.13.107 ping statistics ---
44 packets transmitted, 44 received, 0% packet loss, time 42999ms
rtt min/avg/max/mdev = 0.178/0.227/0.366/0.038 ms
如果您无法到达盒子或者连接不上,安装可能会出现故障。
2. 确保文件夹在 Windows 上确实共享,请按照以下步骤操作。
- 打开文件浏览器即可
C:\
。 - 创建一个名为的新文件夹
public
。现在你有 C:\public - 在该文件夹中,创建一个名为“testing.txt”的新文本文档。
- 右键单击该文件夹
C:\public
并转到属性。 - 单击共享选项卡。
- 确保选中“在网络上共享此文件夹”。注意共享名称:“public”。
- 点击确定。文件夹下面应该会出现一只小手,表示该文件夹已共享。
文件夹“public”现在已共享,您应该能够使用 Linux 连接到它。
3. 在 Linux 上,使用“mount”挂载共享:
- 打开控制台并
su
进行 root。 创建一个目录
mkdir /mnt/windows
,这将是您访问共享文件的地方。运行提示输入密码的 mount 命令:
[root@defiant mnt]# mount -t cifs //192.168.13.107/eric /mnt/windows -o username=eric Password for eric@//192.168.13.107/public: ********** [root@defiant mnt]#
上述命令会提示您输入密码,请输入正确的密码,密码不正确将产生错误。如果您不确定密码,可以在控制面板 -> 用户帐户下的 Windows 框中更改密码。
运行命令
cd /mnt/windows
并运行ls
。驱动器的内容显示如下:[root@defiant windows]# ls testing.txt [root@defiant windows]#
您已连接到 Windows 驱动器。
4.使用 konqueror 或 linux 文件浏览器连接到共享驱动器:
- 打开您的文件浏览器,在我的情况下是 konqueror。
- 在文件位置栏中输入
smb://192.168.13.107/public
并按回车键。 - 您可能会看到一个用户名和密码登录框。输入本文开头描述的 Windows 框的用户名和密码。
- 恭喜您已连接到共享文件夹。
如果上述方法不起作用,请进行故障排除。
步骤 1:您是否尝试过重新启动两台计算机
重启两台电脑。之后,确保所有 Windows 更新都已完成。确保 Linux 的软件更新也已完成。更新后重启。
第 2 步:检查防火墙、ZoneAlarms 和其他安全软件
一款旨在保护您的计算机免受病毒、恶意软件或互联网邪恶侵害的软件可能会阻止您的文件共享尝试。Windows 防火墙可能处于偏执模式。虽然不太可能是 Windows 防火墙的错,但请暂时将其关闭以验证问题是否出在它身上。(不要将其关闭)。
获取可能设置为偏执模式的所有安全软件的列表。Windows 防火墙、第三方防火墙、ZoneAlarms、防病毒软件、卡巴斯基、AVG 或任何其他声称可以保护您免受病毒/恶意软件/邪恶侵害的软件。您需要查看这些软件,然后暂时关闭它们,或者通过它们为您的 IP 地址打开白名单。
第三步:从安全软件中获取线索。
ZoneAlarm 会记录所有文件夹共享事件和尝试,转到“概览”->“警报和日志”。然后查看所有失败尝试的列表。其他软件也可能有同样的功能。在这种情况下,它可以保护您免受攻击。
步骤4:怀疑路由器或局域网本身存在问题
也许路由器、无线网桥、哑集线器或其他网络设备有一些指令性恶作剧,阻止了您的共享文件夹连接尝试。路由器或设备本身可能正在阻止端口或处于限制模式。最近有人在捣鼓它吗?尝试将路由器恢复为默认设置,然后重试。
第 5 步:确保您的局域网简单且正确。
您的两台计算机是否都连接到同一个路由器?也许其中一台连接到了糟糕的 netgear 无线网桥,而另一台连接到了路由器?通过让所有计算机都连接到一个路由器来简化网络。重新启动路由器和互联网,然后重试。
步骤6:仍然无法工作。隔离故障单元。
是时候把猫赶出去并隔离有缺陷的单元了。通过使用另一台计算机连接到共享来证明 Windows 机器没有共享您的文件。获取朋友的 Windows 笔记本电脑或 Apple 产品并将其连接到您的网络,看看他们是否可以访问共享。如果他们不能,则 Windows 机器有问题,如果他们可以,则 Linux 机器有问题。
步骤 7:怀疑 Linux 上的防火墙
注意 Linux 上的任何特殊安全警报或特殊防火墙软件。运行system-config-firewall
并确保选中 smb。检查以确保 Linux 不会阻止您的安装。在另一个 Linux 机器上创建 smb 共享,然后尝试连接到该机器。
如果这些都不起作用。请使用核选项,重新安装两个操作系统并从头开始。这是火箭手术。
答案2
尝试:
mount -t cifs -v //NAS_SERVER/public/ /mnt/ -o username=user,password=pass,sec=ntlm
关键是安全=ntlm
答案3
为该问题添加更多可能的解决方案
此错误消息描述性不强,但它的意思是操作已超时。造成这种情况的原因有很多,在研究此问题时,我遇到了一些尚未在此线程中提及的解决方案。
1.)模糊网络
在网上可以找到的各种解决方案中,通常不会提到这一点,但你连接的服务器必须与本地计算机位于同一子网中。我之所以出现这个问题,是因为我同时启用了有线和无线连接,但无法确定设备属于哪个子网,因为这两个连接不是同一个网络。禁用 Wifi 可以立即解决问题。我在阅读时偶然发现了这个解决方案工地:
[解决方案]
在我的例子中,DFS 共享位于不同子网中的存储上。我添加了一个网络别名 (eth0:1),该别名的 IP 位于该存储子网中,然后它就可以正常工作了。
我本来期望出现类似“没有到主机的路由”这样的信息,而不是神秘的“错误(115):操作正在进行中”...
好吧,不能拥有一切 ;)
来源:http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=2074
2.)凭证文件末尾的换行符
如果您的密码中有特殊字符(例如逗号),则凭证文件很有用,
。 可以在选项中引用它,如下所示:
mount -t cifs //remote /mnt/local -o credentials=/path/to/cifs.credo
该文件采用sh
-style 变量声明格式:
username=me
password=mypassword
domain=mydomain
如果您使用凭证文件,请确保末尾没有换行符,否则尝试解析凭证文件时会超时:
...
domain=mydomain
<empty line>
3.) 尝试挂载特定目录而不是实际的共享点
如果您需要的特定目录是共享的子目录,则无法直接挂载该文件夹。尝试这样做会导致几个不同的错误,这是其中之一。
相反,挂载共享点本身,然后向所需的子目录添加符号链接:
~> mkdir /mnt/local
~> sudo mount -t cifs //remote /mnt/local
~> ln -s /mnt/local/path/to/my-folder /mnt/my-folder
这样,您可以获得与挂载子目录本身相同的结果,而无需每次都深入到它。
答案4
我经常需要引用,-o "username=joe,password=yadayada,domain=adomain" //share/share /mnt
然后它就会立即挂载,而我查找的大多数示例都没有显示该位(如果这些系统需要它)。
我刚才在平板电脑上确实遇到了这个问题(为什么我在这里想要 UNC 名称而不是 IP)引用立即解决了这个问题。