Vor kurzem musste ich das Dateisystem meines Mac von Groß- und Kleinschreibung auf Groß- und Kleinschreibung umstellen. Dazu habe ich CCC verwendet, Daten auf eine andere Festplatte kopiert und dann zur neu formatierten Hauptfestplatte zurückgekehrt.
Jetzt wollte ich die Time Machine-Sicherung auf meiner alten Time Machine-Festplatte durchführen, die auf meinem FreeBSD-basierten NAS gehostet und über AFP exportiert wird. Es wird jedoch eine Fehlermeldung angezeigt, dass Dateisysteme nicht übereinstimmen, da Time Machine immer noch nicht zwischen Groß- und Kleinschreibung unterscheidende fs hat. Dieses Mal kann ich CCC nicht verwenden, da es keine Kopie auf Dateiebene für Time Machine-Volumes unterstützt.
Natürlich habe ich mich direkt für rsync entschieden, aber das wirft ein Problem auf - wenn ich es ausführe mit:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
es beginnt sich zu beschweren, sobald es Backups.backupdb/<machinename>
Ordner mit trifft failed to set permissions, operation not permitted
. Das Problem hierbei ist das Kopieren von ACLs, die recht restriktiv sind:
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
Also habe ich -A
den obigen Befehl entfernt und rsync verschiebt jetzt glücklich GB Daten.
Leider möchte ich auch ACLs erhalten. Ist das irgendwie möglich? OS X hat kein getfacl / setfacl, und ich möchte das Parsen der Ausgabe von vermeiden ls -le
. Was ich hier als Lösung sehe, ist, rsync irgendwie anzuweisen, ACLs "rückwärts" anzuwenden, dh von Blattdateien bis zu Verzeichnissen, aber es gibt keine Option dafür.