在 ubuntu 14.04 上使用 /etc/fstab 安装外部硬盘的问题

在 ubuntu 14.04 上使用 /etc/fstab 安装外部硬盘的问题

我已经花了大约两天时间尝试让它正常工作。我做了以下所有事情,但仍然没有成功。

我正在尝试使用 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

相关内容