CIFS 停留在目录监听

CIFS 停留在目录监听

我安装的文件共享有问题(远程服务器是 SMB v3 Windows Srv 2012 文件服务器)。有多个文件夹,每个文件夹大约有 200 到 1500 个子目录

一旦我想显示最大文件夹的内容(ls / du * / autocomplete),该命令就会永远卡住(至少4小时) - 我只能使用-9选项终止该命令。

总体表现似乎还不错:

time dd if=/media/Data/BigFile.tmp  of=/dev/null bs=8k
593639+1 records in
593639+1 records out
4863092573 bytes (4.9 GB, 4.5 GiB) copied, 55.9581 s, 86.9 MB/s

系统:Ubuntu 16.04 LTS | CPU:至强 2.4 Ghz |内存:8GB

系统表

//server.example.local/Data /media/Data cifs credentials=/etc/samba/ad-usr,noexec,ro,sec=ntlmsspi,vers=3.0 0 0

我想避免拆分文件夹内容 - Windows 客户端的文件夹浏览也工作正常

答案1

您的问题是由 Linux 内核中 SMBv2/3 的 CIFS 标头大小不正确(由于某种原因,SMBv2 仍然可以工作)引起的。

此问题已在内核 v4.12.11 中得到修复,但由于这不是受支持的内核版本,因此无论您是否要安装它,风险均由您自行承担

查看https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.11,查找提交 9e37b1784f2be9397a903307574ee565bbadfd75。

要安装此内核版本(我看到您使用的是 Ubuntu 16.04):

  1. 通过 SSH/从控制台/等连接到 Linux 机器。
  2. 获得root权限:

    sudo -i
    cd /tmp/

  3. 确保 /tmp/ 目录中没有其他 .deb 包:

    rm -f *.deb

  4. 下载内核包:

    获取http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211_4.12.11-041211.201709070418_all.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-image-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb

  5. 安装内核包:

    dpkg -i linux-*.deb

  6. 重新启动服务器以加载新内核。

相关内容