हाल ही में मुझे अपने मैक के फाइलसिस्टम को केस-प्रोटेक्शन से पूरी तरह केस-सेंसिटिव होने के लिए बदलना पड़ा। मैंने ऐसा किया है कि CCC का उपयोग करके और डेटा को किसी अन्य डिस्क पर कॉपी करके, फिर नए स्वरूपित मुख्य डिस्क पर वापस आ रहा हूं।
अब, मैं अपने पुराने टाइम मशीन डिस्क पर टाइम मशीन बैकअप करना चाहता था, जिसे एएफपी के माध्यम से निर्यात किए गए मेरे फ्रीबीएसडी एनएएस पर होस्ट किया जाता है। हालाँकि, मुझे एक त्रुटि मिल रही है कि फाइलसिस्टम मेल नहीं खाते, क्योंकि टाइम मशीन में अभी भी गैर-केस-संवेदी एफएस है। इस बार, मैं CCC का उपयोग नहीं कर सकता, क्योंकि यह टाइम मशीन वॉल्यूम के लिए फ़ाइल स्तर की प्रतिलिपि का समर्थन नहीं करता है।
स्वाभाविक रूप से, मैं सीधे 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
। यहाँ समस्या एसीएल की नकल कर रही है, जो काफी प्रतिबंधात्मक हैं:
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 अब खुशी से जीबी डेटा स्थानांतरित कर रहा है।
काश, मैं एसीएल को भी संरक्षित करना चाहता। क्या यह किसी तरह संभव है? OS X में getfacl / setfacl नहीं है, और मैं इसके पार्सिंग आउटपुट से बचना चाहूंगा ls -le
। मैं यहाँ एक समाधान के रूप में जो कुछ भी देख रहा हूँ, वह है rsync को ACLs "बैकवर्ड" लागू करने के लिए, अर्थात पत्ती फाइलों से लेकर निर्देशिकाओं तक, लेकिन इसके लिए कोई विकल्प नहीं है।