Di recente ho dovuto cambiare il filesystem del mio Mac da preservare le maiuscole alle maiuscole e minuscole. L'ho fatto usando CCC e copiando i dati su un altro disco, quindi tornando al disco principale appena formattato.
Ora, volevo fare il backup di Time Machine sul mio vecchio disco di Time Machine, che è ospitato sul mio NAS basato su FreeBSD, esportato tramite AFP. Tuttavia, sto ricevendo un errore che i filesystem non corrispondono, poiché Time Machine ha ancora fs senza distinzione tra maiuscole e minuscole. Questa volta, non posso usare CCC, poiché non supporta la copia a livello di file per i volumi di Time Machine.
Naturalmente, sono andato dritto per rsync, ma questo solleva un problema - se lo eseguo con:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
inizia a lamentarsi non appena colpisce la Backups.backupdb/<machinename>
cartella, con failed to set permissions, operation not permitted
. Il problema qui è la copia di ACL, che sono abbastanza restrittivi:
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
Quindi, ho rimosso -A
dal comando precedente e rsync ora sposta felicemente GB di dati.
Purtroppo, vorrei preservare anche gli ACL. È possibile in qualche modo? OS X non ha getfacl / setfacl e vorrei evitare di analizzare l'output di ls -le
. Quello che vedo qui come soluzione è in qualche modo dire a rsync di applicare gli ACL "all'indietro", cioè dai file foglia alle directory, ma non c'è alcuna opzione.