
Я застрял на два дня, пытаясь заставить это работать как следует. Я сделал все следующее, но все равно безуспешно.
Я пытаюсь автоматически подключиться к Seagate Central емкостью 2 ТБ, который находится в моей сети, используя Ubuntu 14.04 LTS Desktop, и я обновил все cifs
перед запуском.
Я добавил следующую строку /etc/fstab
как root:
#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 — использовать хеширование паролей NTLMv2, инкапсулированное в необработанное сообщение NTLMSSP
ntlmsspi — использовать хеширование паролей NTLMv2, инкапсулированное в необработанное сообщение NTLMSSP, и принудительно подписывать пакеты
Итак, первый подход (с использованием 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 и добавьте команду mount в строку в любом месте над командой exit. Просто учтите, что при таком монтировании большинство сред рабочего стола, по моему опыту, больше не определяют его как внешнее устройство, так что у вас не будет маленькой красивой иконки, вам на самом деле придется перейти и добавить закладку /mnt/foo, чтобы просмотреть диск.
Я начал автоматическое монтирование своего с помощью rc.local после того, как у меня возникли всевозможные проблемы с редактированием fstab. Надеюсь, это поможет, :-)
Редактировать:
Вот все содержимое моего файла rc.local. Я просто подумал, что поделюсь, чтобы вы могли увидеть, что я сделал. Перед сохранением rc.local и перезагрузкой убедитесь, что точка монтирования, которую вы указываете в команде монтирования, действительно создана. Также нет необходимости добавлять "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
ТАК ЧТО он видит мой сетевой диск, но это также защищенный паролем диск, поэтому я не ожидал увидеть папки USER и PUBLIC
ИТАК, теперь я еще больше запутался? Есть предложения?
решение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 центральными, но я добавил в файл хоста для ips
Простые вещи:
Можете ли вы войти в NAS через его веб-интерфейс, используя свое имя пользователя и пароль, если да, то нет
//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