我已经花了大约两天时间尝试让它正常工作。我做了以下所有事情,但仍然没有成功。
我正在尝试使用 Ubuntu 14.04 LTS 桌面自动永久安装到我的网络上的 2 TB Seagate Central,并且cifs
在开始之前更新了所有内容。
我以 root 身份添加了以下行/etc/fstab
:
#Mapping network drive //Ip-address/media/videos /media/storage cifs username=username,password=password,iocharset=utf8,sec=ntl
我也用它的名字替换了 IP 地址。因为我知道这不是最安全的方法,但我是唯一一个使用这个 Ubuntu-Desktop 的人,也尝试了凭证文档方法,但没有成功。
在终端中:
sudo mount -a
mount error(22): Invaild argument
refer to mount.cifs(8) manual page (e.g. man mount.cifs)
看到之后我尝试了以下操作:
sudo mount.cifs //Seagate-XXXXX/Media/videos /media/storage
然后我被要求输入网络存储的密码并正确输入:
Error:
mount error(115): operation now in progress
Refer to mount.cifs(8) manual page (e.g. man mount.cifs)
我有一次让它工作了,但是之后我不得不重新安装 Ubuntu,而且似乎无法让它恢复工作。
我查阅了许多不同的视频和论坛,这样做是为了可以设置我的 Plex 服务器来查看外部硬盘上的媒体文件夹。
我已经阅读并观看了以下链接/视频,但无济于事[请帮忙!]:
答案1
您收到的第一个错误是因为没有sec=ntl
。可用选项是(来自man mount.cifs
):
秒=
安全模式。允许的值为:
none – 尝试以空用户(无名称)身份连接
krb5 - 使用 Kerberos 版本 5 身份验证
krb5i - 使用 Kerberos 身份验证并强制启用数据包签名
ntlm-使用 NTLM 密码哈希
ntlmi - 使用 NTLM 密码哈希并强制数据包签名
ntlmv2 - 使用 NTLMv2 密码哈希
ntlmv2i - 使用 NTLMv2 密码哈希并强制数据包签名
ntlmssp - 使用封装在原始 NTLMSSP 消息中的 NTLMv2 密码哈希算法
ntlmsspi - 使用封装在原始 NTLMSSP 消息中的 NTLMv2 密码哈希,并强制数据包签名
fstab
因此,如果您使用上述方法之一,第一种方法(使用)可能会奏效。大概您想要的是sec=ntlm
。
至于115
错误,我发现这本非常好的指南我建议您阅读 Gentoo 论坛上的帖子。基本上,它建议在您的文件中添加如下一行/etc/hosts
(更改192.168.1.12
为您的驱动器的 IP):
192.168.1.12 Seagate-XXXXX
完成此操作后,您应该能够使用Seagate-XXXXX
而不是 IP 进行连接。该页面提供了一些其他故障排除提示(包括使用smbtree
以确保共享确实可用)。我真的建议您阅读它。
答案2
您是否尝试过将 mount 命令添加到 /etc/rc.local?/etc/rc.local 是 root 在启动时执行的文件,通常不执行任何操作。但是您可以编辑它并添加您自己的内容。只需确保将已经存在的“exit 0”命令移到您希望它执行的命令下方即可。
这就是我在启动时自动挂载 USB 连接外部设备的方法。只需使用以下命令创建挂载点:
sudo mkdir /mnt/foo
其中 foo 是您想要赋予它的任何名称。然后编辑 /etc/rc.local 并在 exit 命令上方的任意一行中添加 mount 命令。请注意,当以这种方式安装时,根据我的经验,大多数桌面环境不再将其检测为外部设备,因此您将不会看到花哨的小图标,您实际上必须导航到并收藏 /mnt/foo 才能浏览驱动器。
在编辑 fstab 时遇到各种问题后,我开始使用 rc.local 自动安装我的。希望这能有所帮助,:-)
编辑:
以下是我的 rc.local 文件的全部内容。我只是想分享一下,这样你就能知道我做了什么。不过,在保存 rc.local 并重新启动之前,请确保您在 mount 命令中指定的任何挂载点都已实际创建。此外,此处的命令无需添加“sudo”,它们由 root 用户执行。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#Mounts Storage
mount /dev/sdb1 /mnt/Storage
exit 0
答案3
感谢您这么快的回答。
因此,对于第一个错误,我缺少了 m,所以我的代码看起来像这样
#Mapping network drive
//Ip-address/media/videos/media/storage cifs username=username,password=password,iocharset=utf8,sec=ntlm 0 0
所以现在当我跑步时
sudo mount -a
mount error(115): operation now in progress
Refer to mount.cifs(8) manual page (e.g. man mount.cifs)
然后当我尝试
sudo mount.cifs //Seagate-XXXXX/Media/videos /media/storage --verbose
Password for root@//Segate-XXXX/Media/videos:
mount.cifs kernel mount options: ip=198.105.251.210,unc=\\SEAGATE-XXXXX\Media,user=root,prefixpath=videos,pass=*******
mount error(115): Operation now in progress
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
我知道它可以看到驱动器
user@myserver: ~$ smbtree -b -N
WORKGROUP
\\SEAGATE-XXXXX Seagate Centeral Shared Storage
\\XXXXXXX-TIME-CA XXXXXX's Time Capsule
\\MYSERVER myserver server (Samba, Ubuntu)
\\MYSERVER\IPC$ IPC service (myserver server (Samba, Ubuntu))
\\MYSERVER\print$ Printer Drivers
因此它可以看到我的网络驱动器,但这也是一个受密码保护的驱动器,所以我没想到会看到用户和公共文件夹
所以现在我更加迷茫了?有什么建议吗?
答案4
sudo mount -t cifs '//Seagate-XXXXX/Media/videos' //media/storage -o username=username,password=password,uid=1000,gid=1000,iocharset=utf8,sec=ntlm,file_mode=0777,dir_mode=0777
对我来说,goflex seagate 和 2 个 central 都适用,但我已将其添加到 ips 的主机文件中
简单的事情:
您可以使用您的用户名和密码登录 nas 的 Web 界面吗?如果不能,
//Seagate-XXXXX/Media/videos
你确定这是正确的路径名吗,因为对我来说私人目录中的任何内容
//Seagate-XXXXX/username/Media/videos
你的 ubuntu 用户是否对//media/storage
目录有完全访问权限?
最后,请记住文件和目录模式 ubuntu 似乎对这些很挑剔,而 crunchbang 却不是
我所做的/etc/rc.local
事情只是我调用的一个脚本nas.sh
,它基本上是一个带有 mount 命令的可执行文本文件。
#!/bin/bash
mount -t cifs '//Seagate-XXXXX/Media/videos' //media/storage -o username=username,password=password,uid=1000,gid=1000,iocharset=utf8,sec=ntlm,file_mode=0777,dir_mode=0777