从 Linux ext4 复制到 FreeBSD ZFS(通过 SSH)时 rsync 失败/挂起

从 Linux ext4 复制到 FreeBSD ZFS(通过 SSH)时 rsync 失败/挂起

当我尝试将目录从 Linux 上的 ext4 复制到 FreeBSD 上的 ZFS(通过 SSH)时,rsync立即失败,没有复制任何内容:

# rsync -haxHAX /mnt/source/ root@lethe:/mnt/dest/ -vvv
opening connection using: ssh -l root lethe rsync --server -vvvlHogDtpAXrxe.iLs . /mnt/dest/  (9 args)
sending incremental file list
[…]
server_recv(2) starting pid=83765
rsync: connection unexpectedly closed (38 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(12)

当我尝试复制单个文件时,rsync“卡住”并无限期挂起,也不复制任何内容:

# rsync -haxHAX /mnt/source/test.txt root@lethe:/mnt/dest/test.txt -vvv
opening connection using: ssh -l root lethe rsync --server -vvvlHogDtpAXrxe.iLs . /mnt/dest/test.txt  (9 args)
sending incremental file list
[sender] make_file(test.txt,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=83944
recv_file_name(test.txt)
[ hangs indefinitely ]

答案1

ext4的用途POSIX ACL(当它们通过挂载选项显式启用时acl)。
ZFS 使用NFSv4 ACL(至少在 FreeBSD 上)。

正如rsync手册页所述:

-A, --acls
  The source and destination systems must have compatible ACL entries for
  this option to work properly.

如果没有该-A选项,传输不会出现任何问题。

相关内容