16.04 CIFS «Хост не работает», но это не так


27

У меня есть настройки CIFS в fstab, и они работают так, как они должны при загрузке. Они садятся так, как должны, и работают некоторое время. Кажется, из ниоткуда (возможно, после разблокировки компьютера и т. Д.) Я получаю сообщение об ошибке «Host is down» при попытке получить к нему доступ. У меня есть несколько, и они все вниз. Они также доступны с того же сервера. В это время я проверяю на компьютере с Windows и устаревшей машине 14.04, и они работают и работают, как они должны. После нажатия на акции в nautilus и получения повторяющихся ошибок они просто снова начнут работать. Чтобы получить доступ к общему ресурсу, который находится в состоянии «вниз», требуется 2-3 минуты, чтобы случайным образом щелкнуть разные монтирования и вернуться к первому, когда он автоматически показывает данные в точке монтирования.

У меня нет этой проблемы на 14.04 машинах, которые не обновлялись некоторое время. Все эти машины полностью работоспособны, и CIFS никогда не выключаются. 16 апреля они не были проблемой до недавнего времени.

Я удостоверился, что обновляю через день и убрал старые заголовки linux (задним числом я, вероятно, должен был вернуться). Я делаю это, потому что я умоляю, чтобы исправление появилось, но это были недели сражений с монтировками CIFS без какого-либо решения.


У меня точно такая же проблема. Совсем недавно началось несколько недель назад. При удаче?
Ян Х

Нет, все еще сталкиваюсь с той же проблемой. Вы случайно используете gnome-shell? Я начинаю задаваться вопросом, был ли это поворотный момент, потому что у меня есть ноутбук, который был в порядке до оболочки gnome
DevinM

Нет, я использую urxvt. Я думаю, что это ошибка в предохранителе.
Ян Х

Ответы:


14

Я сталкиваюсь с той же проблемой. Кажется, это как-то связано с новейшими версиями Kernel и samba.

Мне удалось решить эту проблему, добавив vers = 2.0 в командах монтирования (или в конце каждой строки fstab)


3
Не могли бы вы попытаться сделать это более понятным для других? Покажите строку из вашего fstab или shell и объясните, почему это помогает?
Занна

Привет! Я применил этот обходной путь, выполнив следующие шаги, указанные на панели запуска: bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1687273
josepcoves

Я сейчас тестирую это исправление. Все идет нормально. Если это все еще работает к завтрашнему дню, я приму это как ответ. Спасибо за информацию!
ДевинМ

У меня не работает - можете ли вы опубликовать то, что вы сделали? Как вы скажете, какой номер версии использовать?
hippyjim

4
Поскольку это общепринятый ответ, возможно, следует упомянуть, что проверка допустимых значений versдаст лучшие результаты вместо рекомендации одной конкретной версии протокола (которая не будет работать на устаревших серверах). Начните с высокой версии протокола и спускайтесь по очереди. Если вы в конечном итоге с vers=1.0удаленным сервером, возможно, придется обновить (если это возможно) или иным образом защищены.
0xC0000022L

38

После многих тестов добавление vers=1.0в строку монтирования, похоже, решает проблему. Монтирование теперь работает в Ubuntu 17.10, как это было в течение многих лет в старых версиях Ubuntu.


3
После многих попыток х 10 это единственное решение, которое сработало. vers=2.0не работал
Оливье Понс

Я не знаю о версии = 1,0 против 2,0 или 3,0, и я не могу найти упоминаний на страницах руководства, но это сработало для меня.
Грег Чабала

3
//192.168.1.222/volume_1 / media / nas cifs имя пользователя = ****, пароль = ****, верс = 1.0
Стивен

@GregChabala: возможно проверить mount.cifs(8)то есть с man 8 mount.cifs? В mount.cifsверсии 6.8 (из cifs-utilsпакета) на странице руководства есть упоминание о vers=arg.
0xC0000022L

vers=1.0работал в моем случае.
Сохель Патан

7

Я сам столкнулся с той же проблемой, я хотел выполнить автоматическое монтирование, используя метод, описанный в вики Ubuntu ( https://wiki.ubuntu.com/MountWindowsSharesPermanently ), хотя у меня возникла та же проблема, как указано выше:mount error(112): Host is down

Вот что мне помогло, так это добавление vers=3.0опций:

//servername/sharename /media/windowMBsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm,vers=3.0 0 0

Так что кажется, что это работает только сейчас, если вы обходите SMB1 и используете другой указанный, SMB3 работал для меня, поэтому я больше ничего не пробовал.

Я использовал локальную учетную запись на машине с Windows, а не с доменным именем outlook.com, так как я прочитал кое-что, что также может вызвать конфликты.


Похоже, что недавнее обновление 16232.rs_prerelease.170624-1334 для предварительного просмотра инсайдерской версии Windows 10 Pro включило изменение, которое я должен был добавить, vers=3.0чтобы смонтировать общий ресурс, который ранее работал без него.
Дилан Оливер

6

Другие уже намекали на решение, но, возможно, стоит кратко объяснить причину.

mount.cifs в Ubuntu 16.04 по умолчанию используется протокол SMB1.

В более поздних версиях mount.cifsверсия SMB по умолчанию - 2.1 или 3.0.

Текущие серверы Windows больше не поддерживают протокол SMB 1.0, если они специально не настроены в их реестре для его принятия. Поэтому по умолчанию они отклоняют соединения от клиентов, использующих протокол SMB1. Что приводит к вводящему в заблуждение сообщению «Хост не работает».

Но некоторые старые системы (чаще всего NAS) не поддерживают протоколы 2.1 или 3.

Решение состоит в том, чтобы указать mount.cifsиспользовать правильный протокол для подключения к вашему серверу, используя vers=опцию. Например, чтобы подключиться к машине с Windows 10:

mount -t cifs ... -o vers=3.0,...

или к старому NAS из Ubuntu 18.04 или новее:

mount -t cifs ... -o vers=1.0,...

Из man mount.cifs(в Ubuntu 16.04):

   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.

       ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft
           Windows 7 and Windows Server 2008R2.

       ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft
           Windows 8 and Windows Server 2012.

       Note too that while this option governs the protocol version used,
       not all features of each version are available.

Если вы определите свое монтирование /etc/fstab, оно может выглядеть примерно так:

//server/share  /mnt/share  cifs  defaults,vers=3.0,...your_other_options...,nofail,x-systemd.device-timeout=15 0 0

cifs vers = 1.0, учетные данные = / root / .smbcredentials, работали для меня в 18.04 LTS. Включение «значений по умолчанию» в fsatb вызвало ошибку разбора, поэтому удаление этого текста позволило избежать ошибки.
Грэм

@Graham smb1 чрезвычайно устарел и опасен. Это также медленнее. Попробуй хотя бы добратьсяvers=2.1
Джоэл Коухорн

@JoelCoehoorn, но vers = 1.0 работал, в то время как более поздние версии не работали ... Я начал с 3 и изменил верс до тех пор, пока 1.0 не заработал. С тех пор абсолютно никаких проблем.
Грэм

@Graham Тогда вам нужно исправить хост, к которому вы подключаетесь, чтобы он поддерживал smb2.1 или новее. SMB1.0 действительно плохо .
Джоэл Кохорн

@JoelCoehoorn Я следовал совету, содержащемуся в этой теме: serverfault.com/questions/414074/mount-cifs-host-is-down, чтобы решить эту проблему. Только что попробовал vers = 3.0 снова, и та же ошибка сохраняется, и диск не монтируется. Что такого ужасного в версии = 1.0?
Грэм

0

У меня возникла та же проблема после обновления клиентом cifs-utils до 6.7-2. И в принципе у меня сработало решение от josepcoves и user695658. Но у меня работало только значение 1.0 для опции монтирования 'vers'. Кажется, что значение по умолчанию для параметра 'vers' больше не равно 1.0.


Это дубликат принятого ответа.
Карел
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.