Linux的服务器端副本不起作用

我有一个安装了Samba4并运行的NASembedded式Linux设备。 我已经configuration了一个samba共享,并且我正在尝试在客户端的samba共享中执行服务器端副本。 这是我想要做的: https : //wiki.samba.org/index.php/Server-Side_Copy

  1. 我第一次尝试在Windows7上。 我首先从我的WIN7笔记本电脑上挂载这个samba共享,然后使用robocopy命令在该共享中的两个目录之间复制一个大文件。 我可以看到这个作品。 robocpoy真的很快复制一个大文件。 我还使用wireshark分析networkingstream量。 它有这样的:Ioctl req FSCTL_SRV_COPYCHUNK_WRITE文件:…和Ioctl resp FSCTL_SRV_COPYCHUNK_WRITE文件:…

  2. 然后我尝试了ubuntu15。 我很确定ubuntu15的Linux内核支持CIFS_IOC_COPYCHUNK_FILE ioctl。 我使用mount.cifs // [host_ip] / [share_name] [mount_path] -o vers = 2.1,username = root来挂载该共享。 我很确定它必须有vers = 2.1因为使用服务器端副本它必须使用SMB2协议。 再次基于https://wiki.samba.org/index.php/Server-Side_Copy ,它说“cloner”做这个function。 这里的关键function是调用:“ioctl(dst_fd,CIFS_IOC_COPYCHUNK_FILE,src_fd)”。 所以我下载并编译“cloner”并执行这个命令,但是不起作用。 基本上,克隆人的命令永远不会停止(杀-9甚至不工作)。 我也使用wireshark监控networkingstream量。 我看到的是:它正在发送与Windows7相同的请求,即Ioctl请求FSCTL_SRV_COPYCHUNK_WRITE File:…,但出现错误:Ioctl响应,错误:status_invalid_device_request

为什么cloner在Linux不起作用,但在win7上的robocopy工程? 为什么会出现错误:status_invalid_device_request? 克隆人缺less什么? 如果在这里有什么缺失或错误如何解决这个问题? 是否有任何现有的客户端服务器端副本代码或工具,我可以使用?