Solve mount.cifs “Remote I/O error” after data transfer

Mounting a Windows 7 (SMB) share on Linux gives us a “Remote I/O error” like below:
mount error(121): Remote I/O error
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)


Solution:
This is Windows problem and following registry values need to be changed:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache - set it to 1
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size - set it to 3

Reference:
https://boinst.wordpress.com/2012/03/20/mount-cifs-cannot-allocate-memory-mounting-windows-share/

One Comment

  1. I got the same error, but found a different solution, since I did not want to mess with the Windows registry. Apparently, Windows 7 uses a different SMB version, and that needs to be specified on the command line in Linux. Once I add vers=2.1, I can connect without errors.

    From the man page:
    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.

    Here is the corrected command which now works for me:
    > sudo mount -t cifs //192.168.x.x/share ~/share -o username=bob,vers=2.1

Leave a Reply

Your email address will not be published. Required fields are marked *