Samba mount in Files gives strange error

Using Byzantium on the Librem 5, and using the stock Files app, I’m trying to mount a remote drive to a directory on the L5. But, it won’t work.

I’ve attached three pics numbered 1, 2, and 3.

Picture 1 shows the error I get when I enter smb://192.168.1.1 in the “connect” field at the bottom of the Files window. The error is, “Unable to access location / Failed to retrieve share list from the server: Software caused connection abort”

Pictrue 2 shows the error I get when I instead tap on the location listed within the network (“rt-ac87r-8b48”): “Unable to access location / Retrying with upper case share name. mount error(6): No such device or address. Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg).”

Picture 3 shows the error I get when I instead tap on the “Windows Network”: It shows “Folder is Empty”.

What is strange is that on the same home network, two other Linux computers (Ubuntu) and all android devices, and an Ubuntu Touch tablet all “see” and mount this drive just fine. For example, on the two ubuntu desktop computers, in Nautilus, when I enter smb://192.168.1.1 in the “connect” field at the bottom of the Nautilus window, it mounts perfectly. And, when I click on the Windows Network, it shows all the devices on the network (instead of an empty folder).

I can’t figure out why this won’t work on the L5.

For testing purposes, maybe try to access directly (no mount) and from the shell (no GUI) using smbclient

Would I be right in thinking that your file server is your router? Are you able to test with using a Linux computer as the file server?

What version?

Samba seems to have gone backwards in impish (21.10) and there were some gremlins before that version.

Unless you need to interoperate with a Microsoft Windows computer, you may be better off avoiding Windows file sharing.

The ubuntu versions of the two desktop computers are 18.04 and 20.04.

Yes, the file server is a drive attached to the router.

Yes, the two Ubuntu desktop computers, when acting as the server, can be mounted by the L5 with no problem. (What can we conclude from this?)

I don’t know what you mean by, “try to access directly (no mount)”.

I don’t know anything about smbclient, so I don’t know the best way to try it out. Here is what I did, and the resulting output:

purism@pureos:~$ smbclient -L //192.168.1.1/My_Book

lpcfg_do_global_parameter: WARNING: The “client lanman auth” option is deprecated
lpcfg_do_global_parameter: WARNING: The “client ntlmv2 auth” option is deprecated
Enter WORKGROUP\purism’s password:

Sharename       Type      Comment
---------       ----      -------
ipc$            IPC       IPC Service (RT-AC87R-8B48)
My_Book         Disk      WD My Book 1230's My_Book

Reconnecting with SMB1 for workgroup listing.

Server               Comment
---------            -------
RT-AC87R-8B48        RT-AC87R-8B48
WDMYCLOUD            WDMyCloud

Workgroup            Master
---------            -------
WORKGROUP            WDMYCLOUD

purism@pureos:~$

Maybe incompatible configuration options between the Librem 5 and the router. Perhaps check /etc/samba/smb.conf between the Librem 5 and a Linux computer that does work as a client to the router.

As it is, you can see smbclient complaining about your config file, which is unexpected given that I assume that your Librem 5 is a recently new install!

-L is a good starting point but you really want to connect to the share e.g.

smbclient {servicename} -U username

where {servicename} is e.g. //192.168.1.1/My_Book

then you get a prompt smb: \>

and you can ls, get, put, … It is meant to mimic the ftp command interface.

The correct incantation for -L is smbclient -L 192.168.1.1 -U username

and for either smbclient usage (connect to service or -L to list services), -U username will be unnecessary if you have consistent and equivalent usernames across all your computers (or at least between the client and the server). Hence coming from the Librem 5, you probably will need to specify the username (unless you authorised purism on the router).

Well…

I have done a lot of reading, I think the problem comes down to different versions of samba, which I had no idea might be an issue. My guess is that the samba server provided by my router is some older version of samba???

When I added the following lines to the smb.conf file on the L5, then I was able to mount the remote drive that is connected to my router:

client min protocol = CORE
client max protocol = SMB3

client lanman auth = yes
client ntlmv2 auth = no

server min protocol = NT1
ntlm auth = YES

(Can’t say I yet fully understand what all of those settings are doing.)

So, now I can mount the drive. So, I thought, I’ll add a line to the fstab file in the L5. I thought, I’ll make it look exactly the same as how it looks in the fstab file of my Ubuntu computers, where the fstab command mounts the drive just fine. Well…

When I put the same entry in the fstab file in the L5, and then run sudo mount -a, I always get this error:

Retrying with upper case share name
mount error(6): No such device or address

And when I look at the dmesg output, I see this:

cifs: vfs: cifs_mount failed w/return code = -6

Really have no idea what these mysterious messages are trying to tell me, all my searching has turned up nothing (but I’m probably using the wrong search terms since I don’t understand this stuff).

Here is what I have in the fstab file:

//192.168.1.1/My_Book /media/rt-ac87r-8b48 cifs nofail,rw,nosetuids,user,guest,uid=1000,forceuid,gid=1000,forcegid,file_mode=0777,dir_mode=0777,_netdev,noperm,vers=1.0 0 0

1 Like

That’s entirely possible - and one of the fundamental problems with using a commercial router for services like this i.e. there is no way to keep the software up to date once it becomes abandonware.

You tell us though. When did you buy the router?

I’m fairly confident that you have fixed the problem though - other than that running old software and/or an obsolete protocol version could expose you to some security risks.

As an aside, I don’t think that’s an appropriate mount point. For something not mounted by plug-and-play, I would use a mount point outside of /media. Regardless, does the mount point exist?

Are you intending to mount this automatically at boot? Or manually by using an appropriate mount command?

You haven’t directly addressed my question about usernames. You should not allow unauthenticated access to a network share. So if you expect this to mount automatically at boot then you should be supplying credentials.

While you may need sudo in order to do a mount -a it may help for testing to mount this one share as purism - so what happens if you try to mount it manually as purism with e.g. mount /media/rt-ac87r-8b48 (or such other mount point as you may change that to)?

I bought the router years ago… 2015???

Yes, I checked, the mount point does exist.

I would like this to mount at boot automatically.

I don’t know what you’re getting at when you write this: “You should not allow unauthenticated access to a network share. So if you expect this to mount automatically at boot then you should be supplying credentials.” What credentials? That is a sincere question. I don’t know what credentials I would need to supply to the network share. The Librem 5 credentials of the purism user on the L5???

When I try to mount as purism I get this same error:

Retrying with upper case share name
mount error(6): No such device or address

(If it helps, in the Files app, I can mount by connecting to smb://192.168.1.1/My_Book.)

So I guess your two choices are roughly:

  1. Free for all

Anyone on your network can mount the My_Book share and access all files on the share, where “access” means read or write or delete or whatever - without being troubled with the question of who the user is and whether that access is authorised (appropriate).

  1. Proper

The computer that is offering the share to the network (in this case your router) has a set of valid usernames on the router and a password for each username to allow a user to authenticate as that user and determines, for any given file and access, whether the user is permitted to do so. (This isn’t much different from the idea that you need a username and password in order to log in to a computer.)

Hence the credentials would be a username and password that is registered on the router as valid (for accessing the network share). However I have a horrible feeling that you might be using “free for all”.

“free for all” was the original Microsoft security model. It might have made sense when most computers were strictly personal and no computers were connected to the internet.

I don’t know whether any of this is relevant to “mount error(6): No such device or address” which is one of those opaque error messages.

Thanks @irvinewade , that nicely clarified things for me.

I think “free for all” is my only option with this router. I looked in the router settings, I can either turn the samba server option on or off. Nowhere does ask me for settings like a user name, at least nowhere that I can see. There is a setting that asks if I want this drive accessible from the internet, I set that to be not accessible.

In my use case, all I have stored on the drive in question are family pictures and videos (which are backed up elsewhere), so nothing secretive. But because that’s what is on there, I do want all people in range of our WiFi network - i.e., family members - to be able to access it.

Based on what you’ve taught me, I guess when I replace the router I’ll likely be forced to adopt a new practice.

Aside from all of that security discussion, as you wrote, I still face this strange mount error from the L5. Since all other devices - Linux and android - are able to mount this drive just fine, I’m starting to wonder if there is a flaw in the L5. But if so, I don’t know how to pursue that.

That would be my recommendation. Even if all the individuals of the household have full access to every file, that is still better than “free for all”.

However, going further, you should ideally not use your router as a file server anyway i.e. you want to bring your content inside the security perimeter. So better practice would be a Linux computer that runs a file server that is strictly on your local network. I take your point that the content is not overly sensitive.

At the cheap end of the spectrum, when you replace your router, keep the old router, using it solely as a file server. (That will improve your security a little bit but won’t fix the actual problem that you are raising in this topic.)

With all the testing of possibilities that you have done I think we can conclude that the Samba client config and software on the Librem 5 is not compatible with the Samba server config and software on your router. Given enough effort I’m sure you can make it work - but that would involve turning on debugging and delving into the bowels of Samba. However were you to embrace my second paragraph above (dedicated Linux computer on local network as file server) then it is likely that the whole problem will go away.