Recientemente tuve que cambiar el sistema de archivos de mi Mac de preservar mayúsculas y minúsculas a ser completamente sensible a mayúsculas y minúsculas. Lo hice usando CCC y copiando datos en otro disco, luego volví al disco principal recién formateado.
Ahora, quería hacer la copia de seguridad de Time Machine en mi antiguo disco de Time Machine, que está alojado en mi NAS basado en FreeBSD, exportado a través de AFP. Sin embargo, recibo un error que los sistemas de archivos no coinciden, ya que Time Machine todavía tiene fs sin distinción entre mayúsculas y minúsculas. Esta vez, no puedo usar CCC, ya que no admite la copia a nivel de archivo para volúmenes de Time Machine.
Naturalmente, fui directamente a rsync, pero eso plantea un problema, si lo ejecuto con:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
comienza a quejarse tan pronto como llega a la Backups.backupdb/<machinename>
carpeta, con failed to set permissions, operation not permitted
. El problema aquí es copiar ACL, que son bastante restrictivas:
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
Entonces, eliminé -A
el comando anterior, y rsync ahora está felizmente moviendo GB de datos.
Por desgracia, me gustaría preservar las ACL también. ¿Es eso posible de alguna manera? OS X no tiene getfacl / setfacl, y me gustaría evitar analizar la salida de ls -le
. Lo que veo como una solución aquí es decirle de alguna manera a rsync que aplique las ACL "al revés", es decir, desde los archivos hoja a los directorios, pero no hay otra opción.