7

We've got a home network that has a mix of different operating systems, including two Windows 7 Ultimate PCs, a couple of Android phones, a MacBook Pro and two Linux PCs. My housemates own all but the Linux machines, and successfully have networking and file sharing with SMB/CIFS on all their devices without any issues at all.

However, I cannot get my Linux machines to connect to their file shares: each time I try, I just get an ERRDOS:ERRnomem response from Samba (smbclient).

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

I've done a variety of searches on configuring Samba, and the ERRnomem response, and apparently there's a known Windows 7 issue that requires a registry change. I've suggested that this might be the solution, but neither one of them is willing to amend the registry keys because it works on all the devices, and instead they're claiming I've either not configured Samba correctly, or I don't have the most up-to-date drivers.

It works fine between my two computers though, and I've always understood drivers to refer to software to control hardware physically located on the machine. Either way, my systems are fully up-to-date: I'm running Arch Linux (which is a rolling release distribution) with Samba 4.1.14.

Is there a solution that doesn't involve messing with my housemate's computers? They're both gamers with high-end systems so it seems bizarre that I'm being told that they don't have the memory to share files.

3 Answers 3

11

Changing the SMB/CIFS version in use by smbclient or mount.cifs makes it all better again! For smbclient, include "-m SMB2" at the end of your query to force it to use SMB protocol version 2. For mount.cifs, include "ver=2.1" in your options for example:

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

I haven't gone further into figuring out what versions are available because this just happened to work for me, but I suspect it should be the true solution to all connectivity complaints.

1
  • 2
    This worked for me. It was not necessary to change registry keys as the other solutions suggest.
    – jdhildeb
    Aug 29, 2016 at 21:51
1

The problem is not your Samba config here because the machines on the network can access your shares without problem.

The error message clearly shows that a memory error was returned to smbclient from Windows. The only fix here is for your housemates to change the system memory settings on their Windows boxes. The memory usage for the share pool will be negligible so why are they complaining???

Same source contains fix: http://www.dedoimedo.com/computers/windows-7-samba-errnomem.html

0

NOTE: Say you run the server, not the clients, there's a fixworkaround too. But yeah, if you are the Linux client, go with the SMB version change.

The following workaround is also described in the Arch Linux wiki.

Now, as the linked pages in this answer describe, in Windows, modify the following registry keys (I've upvoted the other answer that worked for me, but it's helpful to have the key points here):

  1. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache; change default 0 to 1
  2. HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size; change default 1 to 3

Microsoft TechNet explains the LargeSystemCache parameter in detail.

All I can say is this allowed the Windows server to stay up without modifying the clients.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .