Недавно мне пришлось поменять файловую систему моего Mac с сохранения регистра на полностью регистрозависимый. Я сделал это, используя CCC и копируя данные на другой диск, а затем возвращаясь к вновь отформатированному основному диску.
Теперь я хотел сделать резервную копию Time Machine на моем старом диске Time Machine, который размещен на моем NAS-устройстве на базе FreeBSD, экспортированном через AFP. Тем не менее, я получаю сообщение об ошибке, что файловые системы не совпадают, так как Time Machine по-прежнему не учитывает регистр символов. На этот раз я не могу использовать 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 теперь счастливо перемещает ГБ данных.
Увы, я бы тоже хотел сохранить ACL. Это возможно как-то? OS X не имеет getfacl / setfacl, и я хотел бы избежать анализа вывода ls -le
. Здесь я вижу решение, как-то сказать rsync применять ACL «назад», то есть от конечных файлов до каталогов, но для этого нет выбора.