Récemment, j'ai dû changer le système de fichiers de mon Mac de la préservation de la casse à la pleine respect de la casse. J'ai fait cela en utilisant CCC et en copiant des données sur un autre disque, puis en revenant sur le disque principal nouvellement formaté.
Maintenant, je voulais faire la sauvegarde Time Machine sur mon ancien disque Time Machine, qui est hébergé sur mon NAS basé sur FreeBSD, exporté via AFP. Cependant, je reçois une erreur indiquant que les systèmes de fichiers ne correspondent pas, car Time Machine a toujours des fs non sensibles à la casse. Cette fois, je ne peux pas utiliser CCC, car il ne prend pas en charge la copie de niveau fichier pour les volumes Time Machine.
Naturellement, je suis allé directement pour rsync, mais cela pose un problème - si je l'exécute avec:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
il commence à se plaindre dès qu'il atteint le Backups.backupdb/<machinename>
dossier, avec failed to set permissions, operation not permitted
. Le problème ici est la copie des ACL, qui sont assez restrictives:
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
J'ai donc supprimé -A
la commande ci-dessus, et rsync déplace maintenant avec bonheur des Go de données.
Hélas, je voudrais également conserver les ACL. Est-ce possible d'une manière ou d'une autre? OS X n'a pas getfacl / setfacl, et je voudrais éviter d'analyser la sortie de ls -le
. Ce que je vois comme une solution ici est de dire en quelque sorte à rsync d'appliquer les ACL "en arrière", c'est-à-dire des fichiers feuilles aux répertoires, mais il n'y a pas d'option pour cela.