Unable to mount cifs with iocharset=utf8

Probably, your Kernel doesn't contain the nls_utf8.ko module.

If it's your case, you will see similar entries in your dmesg output:

[  612.598233]  CIFS VFS: CIFS mount error: iocharset utf8 not found
[  612.598547]  CIFS VFS: cifs_mount failed w/return code = -79

To confirm it, you can try to find the nls_utf8.ko module:

ls /lib/modules/$(uname -r)/kernel/fs/nls/nls_utf8.ko

To fix, install a kernel witch contains this module, like linux-generic or linux-image-extra-virtual.

In my case (Ubuntu 14.04), the solution was:

apt install linux-generic
reboot

In newer Ubuntu versions, maybe you will need one of the linux-modules-extra kernel packages (tks @pxlinux). For example, if your current kernel is linux-generic:

apt install linux-modules-extra-$(uname -r)-generic
reboot

More info can be found at this answer at superuser and at this bug report at Launchpad.


When dmesg complains like this:

CIFS VFS: CIFS mount error: iocharset utf8 not found

Let me slightly update the information for Ubuntu 16.04

When the package below is not installed only NLS for ISO_8859-1 is present

ls /lib/modules/$(uname -r)/kernel/fs/nls/

after installation of the extra kernel modules by

sudo apt install linux-modules-extra-$(uname -r)

also the UTF-8 is there.

Thanks for the hint above!