4

Я пытаюсь подключить / смонтировать точку на моей виртуальной машине Ubuntu 16.04 LTS к общей папке на хосте, которая является Windows 10, но безуспешно. Цель состоит в том, чтобы я мог загружать файлы в Ubuntu(VM) и передавать их на хост Windows. Общий ресурс Windows доступен с других хостов Windows в той же сети, но не с виртуальной машины Ubuntu, даже несмотря на то, что я могу проверить связь с сетью (виртуальная машина настроена в режиме "Bridged"). Я попытался запустить:

sudo mount -t cifs -o username=username //ip_address/Windows_Share /mount/point/Ubuntu

Это возвращается с ошибкой, указывающей на то, что хост не работает, что не соответствует действительности, поскольку доступ к работающему на нем ресурсу может быть получен из других окон Windows. Я прочитал несколько сообщений об этом, и кто-то упомянул, что существует конфликт с версией SMB, используемой Ubuntu и Windows 10, которая теперь отключает SMB1. Поэтому они посоветовали запустить ниже, чтобы проверить:

smbclient -L <windows_ip> -U <windows_user> -d 256

И действительно, я получил ошибку:

сбой согласования протокола: NT_STATUS_CONNECTION_RESET

Тогда я бегу:

smbclient -L <windows_ip> -U <windows_user> -m SMB2

И еще одна ошибка:

NetBIOS через TCP отключен - рабочая группа недоступна

Может кто-нибудь предложить исправление / посоветовать, как я могу смонтировать общий ресурс Windows в Ubuntu?

2 ответа2

8

Похоже, вы на правильном пути. Если проблема связана с SMB1, ее устранят следующие проблемы.

Сначала сделайте копию smb.conf

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

После изготовления копии

sudo gedit /etc/samba/smb.conf

Не стесняйтесь использовать vi/vim/nano, если вы не предпочитаете gedit

Добавьте в файл следующее в разделе [global]

client min protocol = SMB2
client max protocol = SMB3

После сохранения правок в файл. Перезагрузите SMB

sudo service smbd restart

Если это не работает, пожалуйста, укажите ошибки.

3

Хорошо, извините, что так поздно вернулся к этому. Исправление в основном заключается в следующем:

sudo mount -o vers=3.0,username=<your_username>,uid=<your_user_id>,gid=<your_group_id>,forceuid,forcegid, //<ip_address>/<path_to_share> /<mount>/<point>/<local_system>

Обратите внимание, что на этот раз я пропустил опцию "-t(- type)", так как, если эта опция не указана, "mount" попытается угадать, какую систему использовать, и со всей честностью, учитывая количество прочитанных мной файлов. уже выполнив то, что происходило с протоколами совместного использования Windows 10, я решил позволить "mount" сделать свое волшебство для меня. ;-)

Вот для выдержки из "man man page":

Msgstr "Если не задана опция -t или задан автоматический тип, mount попытается угадать нужный тип. Mount использует библиотеку blkid для определения типа файловой системы; если это не приводит к тому, что выглядит знакомо, mount попытается прочитать файл /etc /filesystems или, если он не существует, /proc /filesystems. Будут испробованы все перечисленные типы файловых систем, кроме тех, которые помечены как "nodev" (например, devpts, proc и nfs). Если /etc /filesystems заканчивается строкой с одним *, mount будет читать /proc /filesystems впоследствии. При попытке все типы файловых систем будут смонтированы с опцией монтирования без вывода сообщений. "

Кроме того, поскольку "mount" можно запускать только от имени пользователя root, но другие программы, выполняющие запись в эту точку монтирования, не запускаются от имени пользователя root, вам необходимо указать пользователя и группу, которым вы хотите предоставить права на запись (владение) для монтирования. местоположение, следовательно использование: uid=<your_user_id>,gid=<your_group_id>,forceuid,forcegid,

Готово! @xguru, спасибо за помощь!:)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .