最近,我不得不将Mac的文件系统从保留大小写更改为完全区分大小写。我通过使用CCC并将数据复制到另一张磁盘,然后返回到新格式化的主磁盘来做到这一点。
现在,我想在旧的Time Machine磁盘上进行Time Machine备份,该磁盘托管在通过AFP导出的基于FreeBSD的NAS上。但是,由于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的数据。
las,我也想保留ACL。有可能吗?OS X没有getfacl / setfacl,我想避免解析的输出ls -le
。我在这里看到的解决方案是以某种方式告诉rsync向后应用ACL,即从叶子文件到目录,但没有选择。