Recentemente eu tive que mudar o sistema de arquivos do meu Mac de preservação de maiúsculas e minúsculas para maiúsculas e minúsculas. Eu fiz isso usando CCC e copiando dados para outro disco, em seguida, retornando ao disco principal recém-formatado.
Agora, eu queria fazer o backup do Time Machine no meu antigo disco do Time Machine, que está hospedado no meu NAS baseado no FreeBSD, exportado através do AFP. No entanto, estou recebendo um erro que os sistemas de arquivos não correspondem, pois o Time Machine ainda possui fs que não diferenciam maiúsculas de minúsculas. Desta vez, não posso usar o CCC, pois ele não suporta cópia em nível de arquivo para volumes do Time Machine.
Naturalmente, fui direto para o rsync, mas isso levanta um problema - se eu executar com:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
começa a reclamar assim que atinge a pasta Backups.backupdb/<machinename>
, com failed to set permissions, operation not permitted
. O problema aqui é copiar as ACLs, que são bastante restritivas:
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
Então, eu removi -A
do comando acima, e agora o rsync está movendo alegremente GB de dados.
Também gostaria de preservar as ACLs. Isso é possível de alguma forma? O OS X não possui getfacl / setfacl e gostaria de evitar a análise da saída de ls -le
. O que eu vejo como uma solução aqui é de alguma forma dizer ao rsync para aplicar as ACLs "de trás para frente", isto é, de arquivos de folhas para diretórios, mas não há nenhuma opção para isso.