![如何在保留 ACL 的同时使用 rsync 将 Time Machine 卷复制到另一个磁盘?](https://linux22.com/image/1352026/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BF%9D%E7%95%99%20ACL%20%E7%9A%84%E5%90%8C%E6%97%B6%E4%BD%BF%E7%94%A8%20rsync%20%E5%B0%86%20Time%20Machine%20%E5%8D%B7%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%A3%81%E7%9B%98%EF%BC%9F.png)
最近我不得不将 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 备份从本地磁盘复制到网络磁盘时的经验是
rsync
并asr
出现我无法解决的错误。- 在检查了要复制的内容一个小时后,Finder 第一次复制尝试因权限错误而失败。
- Finder 第二次复制尝试成功。我不记得有什么不同。也许它只是刚刚重新安装。
- 复制1TB花了3天时间。