28

I have my CIFS setup in fstab and they are working as they are supposed to on boot. They mount as they should and work for a while. Out of nowhere it seems (could be after unlocking machine etc) I get "Host is down" error trying to access it. I have multiple and they are all down. They are also shared from the same server. At this time i check on a windows computer and an outdated 14.04 machine and they are up and functioning as they are supposed to. After clicking around on the shares in nautilus and getting repeat errors they will just start working again. To access a share that is "down" takes about 2-3min of randomly clicking different mounts and going back to the first one when automagically it shows the data in the mount point.

I do not have this problem on 14.04 machines that have not been updated in a while. All of those machines are fully functional and the CIFS never go "down". On 16.04 they were not a problem until more recently.

I have made sure to update every other day and have cleaned old linux headers (in hind sight i probably should have reverted). I do this because im begging for a fix to just appear but its been weeks of battling CIFS mounts without any solution.

  • I am having the exact same issue. Just recently started a few weeks ago. Any luck? – Ian H May 23 '17 at 21:04
  • Nope, still facing the same issue. Are you running gnome-shell by any chance? I'm starting to wonder if this was the turning point because I have a laptop that was ok until gnome-shell – DevinM May 24 '17 at 23:15
  • No, I use urxvt. I think this is a bug in fuse. – Ian H May 30 '17 at 19:32
  • Related – serverfault.com/a/842686/301458 – David Refoua Dec 10 '18 at 20:51
15

I'm facing the same problem. It seems it has something to do with newest Kernel versions and samba.

I've managed to solve this by adding vers=2.0 at mount commands (or a the end of each fstab line)

| improve this answer | |
  • 3
    Could you perhaps try to make this clearer for others? Show the line from your fstab or shell and explain why it helps? – Zanna May 29 '17 at 9:25
  • Hi, I applied this workaround following steps stated at launchpad: bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1687273 – josepcoves May 29 '17 at 13:08
  • I am testing this fix now. So far so good. If its still working by tomorrow i will accept this as the answer. Thanks for the info! – DevinM May 31 '17 at 15:39
  • Doesn't work for me - can you post what you did? How do you tell which version number to use? – hippyjim Nov 16 '17 at 10:27
  • 4
    Since this is the accepted answer it should perhaps mention that trying out the valid values for vers would yield the best results, instead of recommending one particular protocol version (which will not work on outdated servers). Start with a high protocol version and go down one by one. If you end up with vers=1.0 the remote server may have to be upgraded (if possible) or otherwise secured. – 0xC0000022L Jul 30 '18 at 21:17
38

After many tests adding vers=1.0 in the mount line seems to fix the problem. The mount works now on Ubuntu 17.10 like it did for years on older Ubuntu releases.

| improve this answer | |
  • 3
    After many x 10 tries this is the only solution that worked. vers=2.0 didn't work. – Olivier Pons Jan 12 '18 at 10:55
  • I don't know about vers=1.0 vs 2.0 or 3.0, and I can't find any mention in the man pages, but this worked for me. – Greg Chabala Feb 1 '18 at 21:33
  • 3
    //192.168.1.222/volume_1 /media/nas cifs username=****,password=****,vers=1.0 – Steven Apr 4 '18 at 18:32
  • @GregChabala: perhaps check out mount.cifs(8) i.e. with man 8 mount.cifs? With mount.cifs version 6.8 (from the cifs-utils package) the man page does contain a mentioning of vers=arg. – 0xC0000022L Jul 30 '18 at 21:15
  • vers=1.0 worked in my case. – Sohel Pathan Dec 11 '19 at 9:29
7

I've faced the same problem myself, I wanted to auto mount using the method found in the Ubuntu wiki (https://wiki.ubuntu.com/MountWindowsSharesPermanently) although I've got the same problem as stated above: mount error(112): Host is down

The thing is what helped me is adding vers=3.0 at the and of the options:

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

So it seems it only works now if you bypass SMB1 and use other specified one, SMB3 worked for me so I haven't tried anything else.

I've used a local account on the windows machine not one with outlook.com domain name as I've read something that this could cause conflicts too.

| improve this answer | |
  • it seems that a recent update to windows 10 pro insider preview build 16232.rs_prerelease.170624-1334 included a change that required me to add vers=3.0 to mount a share that was previously working without it. – dylan oliver Jul 13 '17 at 23:52
7

Others have already hinted at the solution, but it may be worth shortly explaining the reason.

mount.cifs in Ubuntu 16.04 uses the SMB1 protocol by default.

In later versions of mount.cifs, the default SMB version is 2.1 or 3.0.

Current Windows servers do not support the SMB 1.0 protocol anymore, unless specifically configured in their registry to accept it. So by default, they reject connections from clients using the SMB1 protocol. Which leads to the misleading message "Host is down".

But some older systems (most often NASes) do not support protocols 2.1 or 3.

The solution is to tell mount.cifs to use the right protocol to connect to your server, using the vers= option. For example, to connect to a Windows 10 machine:

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

or to an old NAS from Ubuntu 18.04 or later :

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

From man mount.cifs (in 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.

If you define your mount in /etc/fstab, it might look something like this:

//server/share  /mnt/share  cifs  defaults,vers=3.0,...your_other_options...,nofail,x-systemd.device-timeout=15 0 0
| improve this answer | |
  • cifs vers=1.0,credentials=/root/.smbcredentials, worked for me in 18.04 LTS. Including "defaults," in fsatb generated a parse error so deleting that text avoided the error. – User24601 Mar 19 '19 at 10:21
  • @Graham smb1 is extremely outdated and dangerous. It's also slower. Try to get to at least vers=2.1 – Joel Coehoorn Apr 10 '19 at 14:17
  • @JoelCoehoorn but vers=1.0 worked whereas the later versions did not... I started at 3 and changed the vers down until 1.0 worked. Since then absolutely no problems. – User24601 Apr 10 '19 at 16:55
  • @Graham Then you need to fix the host you're connecting to so it supports smb2.1 or later. SMB1.0 is really bad. – Joel Coehoorn Apr 10 '19 at 17:00
  • @JoelCoehoorn I followed the advice contained in this thread: serverfault.com/questions/414074/mount-cifs-host-is-down to resolve the issue. Just tried vers=3.0 again and the same error persists and the drive does not mount. What is so terrible about vers=1.0 ? – User24601 Apr 10 '19 at 18:34
0

I had the same issue after a client update of the cifs-utils to 6.7-2. And basically the solution from josepcoves and user695658 worked for me. But only the value 1.0 for the mount option 'vers' worked for me. It seems like the default value for the param 'vers' is not 1.0 anymore.

| improve this answer | |
  • This is a duplicate of the accepted answer. – karel Jan 15 '18 at 11:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.