Unable to mount smb share. "Please select another viewer and try again"

This don't think this is the typical, "I can't mount a windows share" post.

I am using stock Ubuntu 12.04. I am pretty sure this is a Nautilus issue, but I have reached a dead end. I have one share that I can't mount using smb://server/share via nautilus. I get the following error.

Error: Failed to mount Windows share
Please select another viewer and try again

I can mount this share from other machines(non-ubuntu) using the same credentials so I know I have perms on the destination share. I can mount other shares on other servers from my Ubuntu box so I am pretty sure I have all the smb packages I need on my Ubuntu box. To make thing more interesting, if I use smbclient from the command line, I mount this share with no problems from my Ubuntu box.

So here's what we know:

  1. destination share perms are ok (no problem accessing from other machines)
  2. smb is setup correctly on Ubuntu box (access other windows shares no problem)
  3. I only get the error when using nautilus
  4. smbclient in terminal works, no problem

Any help would be greatly appreciated. Googling turned up simple mount/perms issues, and I don't think that is what is going on here.

Let me know if you need more information.

Hugh

Update 1:

gvfs-mount smb://host/share failed with the following error:

Error mounting location: Failed to mount Windows share

Update 2:

John -

  • I tried #1 and got the same error as above.
  • #2 is not an option. This is a production share and if I changed the name of the share it would break things for many users.
  • I tried #3 and got the same select another viewer and try again error.

Update 3:

I installed a Debian guest VM on this box. It can connect to this share without issue. I tried both gvfs-mount from the terminal and I tried it from nautilus. They were both successful.

Here's some info on the Deb VM:

$ uname -a
Linux debian 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux
$ dpkg -l |grep gvfs
ii  gvfs                                 1.6.4-3                           userspace 
$ dpkg -l |grep nautilus
ii  nautilus                             2.30.1-2squeeze1                  file manager and graphical shell for GNOME

I hope this helps a little

Update 4

Looking at the logs was one of the first things I checked. Nothing gets logged to syslog with the mount fails.

Update 5

  • added share name to existing share and got the same error.
  • nothing in server event logs
  • tested a different share on same server and was able to connect. makes you think it is a perms issue, except I can connect to problematic share from command line via smbclient command.
  • I am not thrilled about the downgrade option

Solution 1:

I had this problem too and I'll bet yours is the same.

It only happened with some shares. I had guest ok = Yes, but the permissions only allowed the owner to list the directory contents.

For example:

[documents]
    path = /home/ghodmode/Documents
    read only = No
    guest ok = Yes

... and ...

ghodmode@server ~ % ls -dl /home/ghodmode/Documents/
drwxr--r-- 12 ghodmode ghodmode 4096 Dec 14 03:32 /home/ghodmode/Documents/

The result was exactly the error message you described. This tells me that nautilus will access shares on a server as a guest user when it can even if it has already accessed other shares as a logged in user.

The default guest user is "nobody".

The solution for me was to change the permissions. I suspect that setting guest ok = No would also work.

Solution 2:

Before you begin, double check the network location is typed correctly. This is one reason you will get this error. \\hostname\share

In my case, I was able to resolve this issue after diagnosing that it was in fact a DNS issue.

Try to ping the Windows machine in a terminal from Ubuntu:

ping <hostname>

If you cannot ping it via its hostname, try the IP address instead. If the IP address works, then you have a DNS issue where the DNS server is unable to resolve the IP address for the host.

In my organisation, we use an enterprise DNS with Windows Servers. Using the command prompt in Windows, run:

ipconfig /all

Take each of the DNS Server entries and add them to the hosts file on the Ubuntu machine in /etc/hosts

The /etc/hosts file accepts entries as "IP HOSTNAME", example:

10.1.2.1 mydnsserver1

The DNS should also be specified in the interfaces file /etc/network/interfaces, the specific lines you want to check are dns-nameservers and dns-search. dns-nameservers should be set to the entry you put in your hosts file above and can take multiple IP addresses, dns-search should be set to your domain (if in use). IP addresses are just examples.

auto eth0
iface eth0 inet static
        address 10.1.2.10
        netmask 255.255.255.0
        gateway 10.1.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.1.2.1
        dns-search mydomain.com

Check your /etc/samba/smb.conf file and ensure your workgroup is correct. Just in case.

Once you are satisfied, run this command:

sudo /etc/init.d/networking force-reload 

Assuming all the settings are correct, you should be able to ping the host via its hostname which will in turn resolve the error.