我安装的文件共享有问题(远程服务器是 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):
- 通过 SSH/从控制台/等连接到 Linux 机器。
获得root权限:
sudo -i
cd /tmp/确保 /tmp/ 目录中没有其他 .deb 包:
rm -f *.deb
下载内核包:
获取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
安装内核包:
dpkg -i linux-*.deb
重新启动服务器以加载新内核。