如何在保留 ACL 的同时使用 rsync 将 Time Machine 卷复制到另一个磁盘?

如何在保留 ACL 的同时使用 rsync 将 Time Machine 卷复制到另一个磁盘?

最近我不得不将 Mac 的文件系统从保留大小写改为完全区分大小写。我通过使用 CCC 并将数据复制到另一个磁盘,然后返回到新格式化的主磁盘。

现在,我想在我的旧 Time Machine 磁盘上进行 Time Machine 备份,该磁盘托管在我的基于 FreeBSD 的 NAS 上,并通过 AFP 导出。但是,我收到文件系统不匹配的错误,因为 Time Machine 仍然具有不区分大小写的 fs。这次,我无法使用 CCC,因为它不支持 Time Machine 卷的文件级复制。

当然,我直接使用 rsync,但这会带来一个问题 - 如果我使用以下命令运行它:

/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/

Backups.backupdb/<machinename>它一进入文件夹就开始抱怨failed to set permissions, operation not permitted。这里的问题是复制 ACL,它有相当严格的限制:

 ll -dle /Volumes/Time\ Machine\ Backups/Backups.backupdb/<machinename>/
 drwxr-xr-x@ 19 root  staff  646 Dec 23 09:38 /Volumes/Time Machine Backups/Backups.backupdb/<machinename>/
 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

因此,我-A从上面的命令中删除了它,现在 rsync 正在愉快地移动 GB 的数据。

唉,我也想保留 ACL。这能行吗?OS X 没有 getfacl/setfacl,我想避免解析 的输出ls -le。我认为这里的解决方案是以某种方式告诉 rsync “向后”应用 ACL,即从叶文件向下应用到目录,但没有选项。

答案1

使用 Homebrew 下载 rsync 版本 3。然后您可以尝试“--acls”选项。Mac 上的 rsync 似乎与其他操作系统的命令行语法略有不同。您可能想看看这个链接:http://nicolasgallagher.com/mac-osx-bootable-backup-drive-with-rsync/。它描述了如何获取 rsync 3 以及他使用的命令行参数。

我不是 OSX 用户,但我使用 rsync 将我妻子的 Mac 备份到 Linux 服务器。

答案2

rsync,至少在 OS X 10.4 及更高版本中,如果使用 -E 选项,将传输 ACL 属性。请参阅手册页。

答案3

苹果目前表示使用 Finder 来复制 Time Machine 备份。

https://support.apple.com/en-gb/HT202380

我尝试将 1TB TimeMachine 备份从本地磁盘复制到网络磁盘时的经验是

  • rsyncasr出现我无法解决的错误。
  • 在检查了要复制的内容一个小时后,Finder 第一次复制尝试因权限错误而失败。
  • Finder 第二次复制尝试成功。我不记得有什么不同。也许它只是刚刚重新安装。
  • 复制1TB花了3天时间。

相关内容