Input/output error when mounting drive on router

Have a Telstra (Aus) Arcadyan LH1000 router, with firmware V0.17.06r, that has an HDD plugged in which I am trying to access.
Can access OK in Ubuntu/Windows and Android. Ubuntu (CIFS V6.14-1, Samba V4.15.13) mount command:

sudo mount //192.168.0.1/SeagateExpansionDrive/data /MyMnt -o user=admin,vers=1.0

but this command does not work in Tumbleweed (CIFS V7.0-2.2 / Samba V4.18.1).
Get:

sudo mount //192.168.0.1/SeagateExpansionDrive/data /MyMnt -o user=admin,vers=1.0
Password for admin@//192.168.0.1/SeagateExpansionDrive/data: 
mount error(5): Input/output error
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

Dmesg gives:

[ 548.745034] CIFS: VFS: Use of the less secure dialect vers=1.0 is not recommended unless required for access to very old servers
[ 548.745038] CIFS: Attempting to mount \192.168.0.1\SeagateExpansionDrive
[ 548.815364] CIFS: VFS: cifs_mount failed w/return code = -5

Would appreciate suggestions…
Thanks.

See if this article is any help:

https://www.suse.com/zh-cn/support/kb/doc/?id=000018669

Yes, try forcing the authentication with “sec=ntlm” option. It’s obviously an ancient server implementation.

Yes, have already tried a number of options, but it just seems to change the message. eg:

sudo mount //192.168.0.1/SeagateExpansionDrive/data /MyMnt -o user=admin,vers=1.0,sec=ntlm
[sudo] password for root:
Password for admin@//192.168.0.1/SeagateExpansionDrive/data:
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

And with sec=ntlm, journalctl gives:

May 28 12:46:23 localhost.localdomain kernel: Use of the less secure dialect vers=1.0 is not recommended unless required for access to very old servers
May 28 12:46:23 localhost.localdomain kernel: CIFS: VFS: Use of the less secure dialect vers=1.0 is not recommended unless required for access to very old servers
May 28 12:46:23 localhost.localdomain kernel: bad security option: ntlm
May 28 12:46:23 localhost.localdomain kernel: CIFS: VFS: bad security option: ntlm

Thanks.

Found another thread of yours

where you mention using SMBv2 with Windows 11.

So what happens when you attempt the following?

sudo mount //192.168.0.1/SeagateExpansionDrive/data /MyMnt -o user=admin,vers=2.0

Also, for diagnostic purposes you can try to authenticate and list the shares using smbclient like this…

smbclient -L 192.168.0.1 -U admin -d 3

Additionally, you can explicitly force the maximum samba protocol like this…

smbclient -L 192.168.0.1 -U admin -d 3 -m SMB2

Observe/capture what is reported.

Yep, the conclusion back then was to use V1 (which I don’t REALLY want to) and that did work.
Since then have done a fresh install, and come up with this current problem…
Would like to use SMBv2 (at least…), but initially, need to be able to connect, AT ALL…

After changing the router to SMBv2 (yes, it allows to change…), I get:

sudo mount //192.168.0.1/SeagateExpansionDrive/data /MyMnt -o user=admin,vers=2.0
Password for admin@//192.168.0.1/SeagateExpansionDrive/data:
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

With SMBv1 enabled:

smbclient -L 192.168.0.1 -U admin -d 3
lp_load_ex: refreshing parameters
Initialising global parameters
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section “[global]”
added interface wlp0s20u3 ip=192.168.0.50 bcast=192.168.0.255 netmask=255.255.255.0
Client started (version 4.18.1-git.298.4ccf830b2a4SUSE-oS15.9-x86_64).
Connecting to 192.168.0.1 at port 445
protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED

With SMBv2 enabled:

smbclient -L 192.168.0.1 -U admin -d 3
lp_load_ex: refreshing parameters
Initialising global parameters
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section “[global]”
added interface wlp0s20u3 ip=192.168.0.50 bcast=192.168.0.255 netmask=255.255.255.0
Client started (version 4.18.1-git.298.4ccf830b2a4SUSE-oS15.9-x86_64).
Connecting to 192.168.0.1 at port 445
Password for [WORKGROUP\admin]:
GENSEC backend ‘gssapi_spnego’ registered
GENSEC backend ‘gssapi_krb5’ registered
GENSEC backend ‘gssapi_krb5_sasl’ registered
GENSEC backend ‘spnego’ registered
GENSEC backend ‘schannel’ registered
GENSEC backend ‘ncalrpc_as_system’ registered
GENSEC backend ‘sasl-EXTERNAL’ registered
GENSEC backend ‘ntlmssp’ registered
GENSEC backend ‘ntlmssp_resume_ccache’ registered
GENSEC backend ‘http_basic’ registered
GENSEC backend ‘http_ntlm’ registered
GENSEC backend ‘http_negotiate’ registered
GENSEC backend ‘krb5’ registered
GENSEC backend ‘fake_gssapi_krb5’ registered
Cannot do GSE to an IP address
Got challenge flags:
Got NTLMSSP neg_flags=0x628a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215

    Sharename       Type      Comment
    ---------       ----      -------
    admin           Disk      
    IPC$            IPC       IPC Service (MyRouter)

SMB1 disabled – no workgroup available

Thanks.

How are you enabling/disabling SMB1?

It looks like smbclient (in last run) successfully communicated with the server to list the available shares?

The router has a “Samba SMBv2 Enabled” toggle.

Yeah, not sure… Does that mean it is enabled? But it doesn’t enumerate any shares, other than hidden…?? Don’t think it has.

No valid disk shares seem to exist for user “admin” based on the smbclient output.

I would keep the server SMBv2 protocol enabled, and work on configuring it to allow access to the required shares for the desired user(s).

Persisting with this - slight improvement.
Have added:

   client min protocol = NT1
    client lanman auth = yes
    client ntlmv2 auth = no

to the smb.conf, and can now get a ‘full reveal’ when using smbclient

smbclient -L myrouter -U admin
lpcfg_do_global_parameter: WARNING: The “client lanman auth” option is deprecated
lpcfg_do_global_parameter: WARNING: The “client ntlmv2 auth” option is deprecated
Password for [WORKGROUP\admin]:

    Sharename       Type      Comment
    ---------       ----      -------
    SeagateExpansionDrive Disk      
    IPC$            IPC       IPC Service (myrouter)

Still get the same input/output error when trying to mount, though.
Have logged a bug…
Have also spent ‘time’ trying to get it to work with vers=2.0 - but no luck there, either…

So, if "SeagateExpansionDrive’’ is the name of the share you should be able to mount with

sudo mount //192.168.0.1/SeagateExpansionDrive/ /MyMnt -o user=<username>,vers=2.0

where is a valid user.

I would try removing the above. They are all deprecated parameters in any case.

Result of that:

Result:

sudo mount //192.168.0.1/SeagateExpansionDrive/ /MyMnt -o user=admin,vers=2.0
Password for admin@//192.168.0.1/SeagateExpansionDrive/:
mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

and same result without the extra lanman entries in smb.conf.

But if I use smbclient WITHOUT the entries in smb.conf, I get:

smbclient -L myrouter
Password for [WORKGROUP\john]:

    Sharename       Type      Comment
    ---------       ----      -------
    admin           Disk      
    IPC$            IPC       IPC Service (myrouter)

SMB1 disabled – no workgroup available

But if I then add them again:

smbclient -L myrouter
lpcfg_do_global_parameter: WARNING: The “client lanman auth” option is deprecated
lpcfg_do_global_parameter: WARNING: The “client ntlmv2 auth” option is deprecated
Password for [WORKGROUP\john]:

    Sharename       Type      Comment
    ---------       ----      -------
    SeagateExpansionDrive Disk      
    IPC$            IPC       IPC Service (myrouter)

ie I can actually see the share.

As you can see, without the entries in smb.conf, I basically get nothing…

I get the same if I attempt to mount a share that doesn’t exist. As “admin” is the only disk share advertised by the server (using SMB2) based on what you’ve shared from the smbclient output.

Yes, but as you can see, smbclient can see it for vers=1.0, and ONLY changing the vers=x, the share no longer exists…? (or is changed to admin…?)

I don’t know why the difference. What happens when you try to mount this “admin” share?

sudo mount //192.168.0.1/admin /MyMnt -o user=<username>,vers=2.0

…or alternatively try accessing it using smbclient…

smbclient //192.168.0.1/admin -U <username> -m SMB2

then if connected successfully you should get a prompt like this

smb: \>

and you can issue the ‘ls’ command to any see subdirectories and files if they exist.

1 Like

Seriously!! You picked it!
Works on both accounts, but just creates sooooo many questions…
Should I say, such BAD programming, probably on the router side, but…

Thanks so much, at least now I can use it (wierdly…) to get some stuff done.
S’pose the foibles of trying to use a router to do a job that should be done by NAS/server.

Thanks again.