7

У нас есть домашняя сеть с различными операционными системами, включая два ПК с Windows 7 Ultimate, пару телефонов Android, MacBook Pro и два компьютера с Linux. Мои соседи по дому владеют всеми машинами, кроме Linux, и успешно работают в сети и обмениваются файлами с SMB/CIFS на всех своих устройствах без каких-либо проблем.

Однако я не могу заставить свои машины Linux подключаться к их общим файловым ресурсам: каждый раз, когда я пытаюсь, я просто получаю ответ ERRDOS: ERRnomem от Samba (smbclient).

$ smbclient -L \\COMPUTER
Enter zoqaeski's password:
protocol negotiation failed: ERRDOS:ERRnomem

Я провел множество поисков по настройке Samba и ответа ERRnomem, и, очевидно, существует известная проблема Windows 7, которая требует изменения реестра. Я предположил, что это может быть решением, но ни один из них не хочет вносить изменения в разделы реестра, потому что он работает на всех устройствах, и вместо этого они утверждают, что я либо неправильно настроил Samba, либо я не у нас самые современные драйверы.

Это прекрасно работает между двумя компьютерами, и я всегда понимал, что драйверы относятся к программному обеспечению для управления оборудованием, физически расположенным на машине. В любом случае, мои системы полностью обновлены: я использую Arch Linux (дистрибутив с постоянным выпуском) с Samba 4.1.14.

Есть ли решение, которое не связано с работой с компьютерами моего соседа? Они оба геймеры с высокопроизводительными системами, поэтому мне кажется странным, что мне говорят, что у них нет памяти для обмена файлами.

3 ответа3

11

Изменение версии SMB/CIFS, используемой smbclient или mount.cifs, делает все это еще лучше! Для smbclient включите « -m SMB2 » в конце вашего запроса, чтобы заставить его использовать протокол SMB версии 2. Для mount.cifs включите « ver=2.1 » в ваши параметры, например:

//server/share /mnt/point cifs credentials=/my/credentials/.file,vers=2.1,sec=ntlm 0 0

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

1

Проблема не в вашей конфигурации Samba, потому что машины в сети могут без проблем получать доступ к вашим общим ресурсам.

Сообщение об ошибке ясно показывает, что ошибка памяти была возвращена smbclient из Windows. Единственным исправлением для ваших соседей по дому является изменение настроек системной памяти на своих окнах Windows. Использование памяти для общего пула будет незначительным, так почему они жалуются ???

Тот же источник содержит исправление: http://www.dedoimedo.com/computers/windows-7-samba-errnomem.html

0

ПРИМЕЧАНИЕ. Допустим, вы запускаете сервер, а не клиентов, также есть исправление . Но да, если вы являетесь клиентом Linux, переходите к изменению версии SMB .

Следующий обходной путь также описан в вики Arch Arch.

Теперь, как описано на связанных страницах в этом ответе , в Windows измените следующие разделы реестра (другой ответ, который мне помог, был бы полезен, но здесь полезно иметь ключевые моменты):

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache ; изменить значение по умолчанию от 0 до 1
  2. HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size ; изменить значение по умолчанию 1 на 3

Microsoft TechNet подробно объясняет параметр LargeSystemCache.

Все, что я могу сказать, это то, что это позволило серверу Windows работать без изменения клиентов.

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