Gần đây tôi đã phải thay đổi hệ thống tập tin của máy Mac của mình từ bảo quản trường hợp sang hoàn toàn phân biệt chữ hoa chữ thường. Tôi đã làm điều đó bằng cách sử dụng CCC và sao chép dữ liệu vào một đĩa khác, sau đó quay trở lại đĩa chính mới được định dạng.
Bây giờ, tôi muốn thực hiện sao lưu Time Machine trên đĩa Time Machine cũ của mình, được lưu trữ trên NAS dựa trên FreeBSD của tôi, được xuất qua AFP. Tuy nhiên, tôi nhận được một lỗi mà các hệ thống tập tin không khớp, vì Time Machine vẫn có fs không phân biệt chữ hoa chữ thường. Lần này, tôi không thể sử dụng CCC, vì nó không hỗ trợ sao chép cấp độ tệp cho khối lượng Máy thời gian.
Đương nhiên, tôi đã đi thẳng vào rsync, nhưng điều đó đặt ra một vấn đề - nếu tôi chạy nó với:
/usr/local/bin/rsync --super -aEHAXNvx --fileflags --delete /Volumes/Time\ Machine\ Backups/ /Volumes/NewDisk/
nó bắt đầu phàn nàn ngay khi nó chạm vào Backups.backupdb/<machinename>
thư mục failed to set permissions, operation not permitted
. Vấn đề ở đây là sao chép ACL, khá hạn chế:
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
Vì vậy, tôi đã xóa -A
khỏi lệnh trên và rsync hiện đang vui vẻ chuyển GB dữ liệu.
Than ôi, tôi cũng muốn bảo tồn ACL. Điều đó có thể bằng cách nào đó? OS X không có getfacl / setfacl và tôi muốn tránh phân tích cú pháp đầu ra ls -le
. Điều tôi thấy là một giải pháp ở đây là bằng cách nào đó nói với rsync để áp dụng ACL "ngược", nghĩa là, từ các tệp lá xuống thư mục, nhưng không có tùy chọn nào cho nó.