Samba/Troubleshooting
Contents
-
1 Troubleshooting
- 1.1 Windows 7 connectivity problems - mount error(12): cannot allocate memory
- 1.2 Trouble accessing a password-protected share from Windows
- 1.3 Getting a dialog box up takes a long time
- 1.4 Error: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
- 1.5 Sharing a folder fails
- 1.6 "Browsing" network fails with "Failed to retrieve share list from server"
- 1.7 You are not the owner of the folder
- 1.8 protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
- 1.9 Connection to SERVER failed: (Error NT_STATUS_UNSUCCESSFUL)
Troubleshooting
Windows 7 connectivity problems - mount error(12): cannot allocate memory
A known Windows 7 bug that causes "mount error(12): cannot allocate memory" on an otherwise perfect cifs share on the Linux end can be fixed by setting a few registry keys on the Windows box as follows:
-
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
(set to1
) -
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size
(set to3
)
Alternatively, start Command Prompt in Admin Mode and execute the following:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f
Do one of the following for the settings to take effect:
- Restart Windows
- Restart the Server service via services.msc
- From the Command Prompt run: 'net stop lanmanserver' and 'net start lanmanserver' - The server may automatically restart after stopping it.
For trouble accessing a password protected share from Windows, try adding this to /etc/samba/smb.conf
:[1]
Note that this needs to be added to the local smb.conf, not to the server's smb.conf
[global] # lanman fix client lanman auth = yes client ntlmv2 auth = no
Getting a dialog box up takes a long time
I had a problem that it took ~30 seconds to get a password dialog box up when trying to connect from both Windows XP/Windows 7. Analyzing the error.log on the server I saw:
[2009/11/11 06:20:12, 0] printing/print_cups.c:cups_connect(103) Unable to connect to CUPS server localhost:631 - Interrupted system call
This keeps samba from asking cups and also from complaining about /etc/printcap missing:
printing = bsd printcap name = /dev/null
Error: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
If you are a home user and using samba purely for file sharing from a server or NAS you’re probably not interested in sharing printers through it. If so, you can prevent this error from occurring by adding the following lines to your /etc/samba/smb.conf:
load printers = No printing = bsd printcap name = /dev/null disable spoolss = Yes
Restart samba:
systemctl restart smbd
…check your logs:
cat /var/log/samba/smbd.log
and the error should now no longer be appearing.
Sharing a folder fails
It means that while you are sharing a folder from Dolphin (file manager) and everything seems ok at first, after restarting Dolphin the share icon is gone from the shared folder, and also some output like this in terminal (Konsole) output:
‘net usershare’ returned error 255: net usershare: usershares are currently disabled
To fix it, enable usershare as described in Samba#Creating usershare path.
And you are using a firewall (iptables) because you don't trust your local (school, university, hotel) local network. This may be due to the following: When the smbclient is browsing the local network it sends out a broadcast request on udp port 137. The servers on the network then reply to your client but as the source address of this reply is different from the destination address iptables saw when sending the request for the listing out, iptables will not recognize the reply as being "ESTABLISHED" or "RELATED", and hence the packet is dropped. A possible solution is to add:
iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns
to your iptables setup.
You are not the owner of the folder
Simply try to reboot the system.
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
The client probably doesn't have access to shares. Make sure clients' IP address is in hosts allow =
line in /etc/samba/smb.conf
.
Connection to SERVER failed: (Error NT_STATUS_UNSUCCESSFUL)
You are probably passing wrong server name to smbclient
. To find out the server name, run hostnamectl
on the server and look at "Transient hostname" line.