无法使用 iocharset=utf8 挂载 cifs

Ugg*_*gla 15 filesystem mount cifs charset

当我尝试使用选项 iocharset=utf8 挂载 cifs 共享时,我收到错误:挂载错误 79 = 无法访问所需的共享库。我缺少什么共享库?

Rar*_*tas 24

可能,您的内核不包含该nls_utf8.ko模块。

如果是您的情况,您将在dmesg输出中看到类似的条目:

[  612.598233]  CIFS VFS: CIFS mount error: iocharset utf8 not found
[  612.598547]  CIFS VFS: cifs_mount failed w/return code = -79
Run Code Online (Sandbox Code Playgroud)

要确认,您可以尝试找到该nls_utf8.ko模块:

ls /lib/modules/$(uname -r)/kernel/fs/nls/nls_utf8.ko
Run Code Online (Sandbox Code Playgroud)

要修复,请安装包含此模块的内核女巫,例如linux-genericlinux-image-extra-virtual

就我而言(Ubuntu 14.04),解决方案是:

apt install linux-generic
reboot
Run Code Online (Sandbox Code Playgroud)

在较新的 Ubuntu 版本中,您可能需要其中一个linux-modules-extra内核包 (tks @pxlinux)。例如,如果您当前的内核是linux-generic

apt install linux-modules-extra-$(uname -r)-generic
reboot
Run Code Online (Sandbox Code Playgroud)

更多信息可以在超级用户的这个答案Launchpad 的这个错误报告中找到。


小智 7

当这样dmesg抱怨时:

CIFS VFS: CIFS mount error: iocharset utf8 not found
Run Code Online (Sandbox Code Playgroud)

让我稍微更新一下 Ubuntu 16.04 的信息

当未安装以下软件包时,仅存在 ISO_8859-1 的 NLS

ls /lib/modules/$(uname -r)/kernel/fs/nls/
Run Code Online (Sandbox Code Playgroud)

安装额外的内核模块后

sudo apt install linux-modules-extra-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

UTF-8 也在那里。

谢谢楼上的提示!

  • 由于我在另一个内核版本上遇到了同样的问题,所以我是这样做的:`sudo apt install linux-modules-extra-$(uname -r)` (2认同)