Монтирование Windows Share с использованием SMB 2.1 или выше

Я пытаюсь смонтировать размещенный на Windows общий ресурс SMB (CIFS) с помощью Ubuntu 12.04 (с использованием ядра 3.13.0-117-generic). Монтирование с SMB1 работает, но это не приемлемо, вместо этого мы должны монтировать с SMB2.1 или выше.

Ниже приведен результат моих попыток сделать это, передав аргумент ver=

root@----:/# mount -t cifs //SERVER/smbtest /mnt/smbtest --verbose -o ver=2.1,user=administrator
Password:
mount.cifs kernel mount options: 
ip=10.16.0.40,unc=\\server.domain.net\smbtest,ver=2.1,ver=1,user=administrator,pass=********
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Как видите, в параметрах монтирования ядра mount.cifs есть два аргумента ver: тот, который я указал, и значение по умолчанию (1). Это произойдет, если я укажу что-либо кроме 1 или 1.0 для ver.

cifs-utils версии 5.1 установлен, а cifs.ko - версии 2.02. Со страницы состояния ядра SMB3 в вики Samba https://wiki.samba.org/index.php/SMB3_kernel_status,

"The minimum version for use of the Linux kernel SMB3 support is kernel version 3.12 (or backport of cifs.ko module version 2.02 or later) but kernel version 3.18 or later (or equivalent, ie cifs module version 2.04 or later) is recommended for best SMB3 support."

Кто-нибудь может помочь мне встать на правильный путь? Я должен что-то упустить. Какие другие методы доступны для принудительного подключения SMB2+? Это мой первый пост здесь, и я старался быть кратким, если я что-то пропустил, дайте мне знать, и я добавлю информацию в свой пост.

Насколько я могу судить, это должно работать, хотя я не удивлюсь, если я что-то неправильно понял и SMB2+ не поддерживается.

Спасибо

РЕДАКТИРОВАТЬ: я понимаю, что 12.04 EOL. Я обновлю этот пост завтра с соответствующей информацией для 14.04, которая имеет ту же проблему. Если кто-нибудь может ответить на вопрос: 12.04, это все равно будет оценено.

1 ответ

Если я использую ver, он действительно набирает "Неверный аргумент", но man mount.cifs говорит, что имя опции - "vers", а не "ver".

       vers=
       SMB protocol version. Allowed values are:

       ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

       ·   2.0 - The SMBv2.002 protocol. This was initially introduced in
           Windows Vista Service Pack 1, and Windows Server 2008. Note
           that the initial release version of Windows Vista spoke a
           slightly different dialect (2.000) that is not supported....

это работает для меня в Mint 18.1:

mount -t cifs //192.168.1.1/public /home/user/Desktop/share --verbose -o vers=2.1,user=winuser

Я нашел доступные варианты в моей местной справочной странице. Проверьте это на своем компьютере, чтобы увидеть, что он поддерживает. Находясь на странице руководства, введите /vers= чтобы найти этот аргумент быстро.

man mount.cifs

Затем я установил свою долю следующим образом:

sudo mount -t cifs //nas/homes/mike /media/mike/nashome -o vers=3.11,credentials=/home/mike/.ssh/.smb_nas

Для этого потребовался файл учетных данных со следующим содержимым в /home/mike/.ssh/.smb_nas, поэтому мне не нужно вводить свой пароль в команду (в результате чего он будет сохранен в истории команд в виде простого текста) или в подсказка (неприятность).

username=mike
password=[REAL PASSWORD]
domain=WORKGROUP

Я монтирую с Synology NAS, которое поддерживает SMB версии 3.11. Вам нужно проверить версию Windows (или какую-либо другую версию хостинга файлов через CIFS/SMB), чтобы увидеть, что она поддерживает на стороне сервера.

Как ни странно, если общий компьютер не находится на этом IP-адресе, вы можете получить эту же ошибку. Изменение в DHCP "переместило" наш NAS, и это было корнем моей проблемы. Как только ресурс вернулся на правильный IP, ошибки прекратились.

Возможно, вам потребуется добавить домен Windows. Если вы думаете: "Я не использую домен"... ну, Microsoft так не думает. Можете добавить domain=[your ip here] либо к

  1. Ваш файл учетных данных (аналогично этому ответу, но с использованием вашего IP-адреса вместо WORKGROUP)
  2. Добавляя его в -o часть вашего маунта

    mount -t cifs //192.168.1.10/someshare /var/www/user/myshare -o vers=3.0,rw,nounix,file_mode=0777,dir_mode=0777,sec=ntlmsspi,user=username,password=somepassword,domain=192.168.1.10
    
Другие вопросы по тегам