छोटा जवाब: फ़ाइल लिखते समय एक हैश दर्ज करें, और बाद में उसकी तुलना करें। अगर हैश अलग हैं और किसी ने फ़ाइल नहीं बदली, तो बाइट्स आपके अनजाने बदल गईं।
इसे और कुछ नहीं ढूँढता। साइलेंट करप्शन वाली डिस्क First Aid पास कर लेती है, SMART सही बताती है, और बिल्कुल ठीक माउंट होती है।
स्टोरेज भौतिक है। घूमती डिस्क पर चुंबकीय डोमेन कमज़ोर पड़ते हैं। फ़्लैश मेमोरी के सेल से चार्ज रिसता है, गर्मी में तेज़ी से और ड्राइव के लंबे समय तक बिना बिजली पड़े रहने पर और भी तेज़ी से। केबल ट्रांज़िट में एक बिट गिरा सकती है। फ़र्मवेयर में बग होते हैं।
ड्राइव इसका ज़्यादातर हिस्सा खुद ठीक कर लेती हैं, एरर करेक्टिंग कोड से और खराब होते सेक्टर की जगह बदलकर। मायने रखने वाली खराबी वह हिस्सा है जो इससे बच निकलता है: ऐसी रीड जो लिखी गई बाइट्स से अलग बाइट्स लौटाए, और सफलता बताए।
वह नाम जिस पर लोग बहस करते हैं। कुछ इसे बिट रॉट कहते हैं, कुछ साइलेंट डेटा करप्शन, कुछ डेटा डिग्रेडेशन। हमारे लिए ये एक ही चीज़ हैं: फ़ाइल अलग है और किसी ने कुछ नहीं बताया।
यह समझने लायक हिस्सा है, क्योंकि यह बताता है कि जिस भी टूल तक आप पहुँचेंगे वह गलत टूल क्यों है।
cp और Finder बाइट्स पढ़ते हैं और बाइट्स लिखते हैं। अगर पढ़ने में गलत बाइट्स आईं, तो वे पूरी वफ़ादारी से गलत बाइट्स लिख देते हैं।तो ईमानदार बात यह है: आपके Mac में ऐसी कोई व्यवस्था नहीं जो आपको बताए। पहला लक्षण होता है फ़ोटो के बीच से गुज़रती कचरे की पट्टी, न खुलने वाला आर्काइव, या बीच में रुक जाने वाला वीडियो।
हर फ़ाइल के लिए दुर्लभ, पर लंबे समय में बड़े संग्रह के लिए दुर्लभ नहीं, और बैकअप उसी हालत के लिए होता है। दो चीज़ें संभावना साफ़ तौर पर बढ़ाती हैं:
यह आपकी काम वाली डिस्क से ज़्यादा बैकअप में इसलिए मायने रखता है कि काम वाली फ़ाइल खुलती है, और खुली हुई खराब फ़ाइल ऐसी खराबी है जो आपने पकड़ ली। बैकअप एक बार लिखा जाता है और कभी पढ़ा नहीं जाता, यानी बैकअप में खराबी का पता उस दिन चलता है जिस दिन आपको बैकअप चाहिए।
जो लिखा उसे दर्ज करें:
cd /Volumes/Backup
find . -type f -exec shasum -a 256 {} \; > ~/backup-hashes.txt
फिर, महीनों बाद, पूछें कि क्या यह अब भी वैसा ही है:
cd /Volumes/Backup
shasum -a 256 -c ~/backup-hashes.txt | grep -v ': OK$'
जो कुछ भी प्रिंट होता है वह ऐसी फ़ाइल है जिसकी बाइट्स बदल गई हैं। अगर आपने उसे एडिट नहीं किया, तो यही आपका जवाब है।
दो व्यावहारिक बातें। हैश फ़ाइल को उस ड्राइव के अलावा कहीं और रखें जिसका वह ब्योरा देती है, नहीं तो दोनों एक साथ खो देंगे। और इसमें उतना ही समय लगता है जितना पूरी ड्राइव पढ़ने में, इसलिए इसे रात भर के लिए शेड्यूल करें।
ऊपर की हर बात इसकी वजह है कि ऐप इस रूप में क्यों है। यह बैकअप के हर हिस्से को उसकी सामग्री के हैश के तहत सहेजता है, फिर तय समय पर बैकअप को वापस पढ़कर हर हिस्से को उस हैश से जाँचता है जिसके तहत वह सहेजा गया था।
इसलिए बेमेल होना सबूत है: बाइट्स वे नहीं हैं जो लिखी गई थीं, और ऐसी कोई व्याख्या नहीं जिसमें यह ठीक हो। बैकअप के नीचे से डिलीट हुआ हिस्सा गायब बताया जाता है। और मुख्य स्क्रीन पर स्कोर सिर्फ़ वही गिनता है जो हाल में जाँचा गया है, इसीलिए यह लोगों की उम्मीद से कम होता है और यही इसका मकसद है।
दूसरी लोकेशन होना यहाँ इस साइट पर किसी भी और जगह से ज़्यादा मायने रखता है। दो कॉपी हों तो एक कॉपी में खराबी असुविधा है, और एक हो तो फ़ाइल का अंत।
नहीं। First Aid फ़ाइल सिस्टम की संरचना जाँचता है, आपकी फ़ाइलों की सामग्री नहीं। चुपचाप खराब हुई फ़ाइलों वाली ड्राइव इसे आराम से पास कर लेती है, और यही इस समस्या को ऐसा बनाता है।
इसके लिए नहीं। SMART उन त्रुटियों की रिपोर्ट करता है जिन्हें ड्राइव ने पकड़ा और ठीक किया या दूसरी जगह भेजा। चुपचाप होने वाला करप्शन वही है जिसे उसने नहीं पकड़ा। फिर भी खराब होती ड्राइव के लिए इसे जाँचना ठीक है, जो एक अलग और ज़्यादा दिखने वाली समस्या है।
यह अपने मेटाडेटा का चेकसम रखता है, आपके फ़ाइल डेटा का नहीं। ZFS और Btrfs फ़ाइल की सामग्री का चेकसम रखते हैं और अतिरिक्त कॉपी से ठीक कर सकते हैं, और इनमें से कोई भी सामान्य macOS बूट या एक्सटर्नल वॉल्यूम के रूप में उपलब्ध नहीं है। इसी कमी की वजह से ऐप के स्तर की जाँच रखना फ़ायदेमंद है।
इतनी बार कि खराब कॉपी तब मिल जाए जब अच्छी कॉपी अभी मौजूद हो। आर्काइव के लिए हर तीन महीने ठीक है, और अगर यह किसी अनमोल चीज़ की इकलौती कॉपी है तो हर महीने। सही जवाब वह है जिसे आप सच में नहीं छोड़ेंगे, और यह इसके ऑटोमैटिक होने के पक्ष में है।
नहीं। जाँच बताती है कि कोई कॉपी खराब हो गई। वह फ़ाइल वापस नहीं दे सकती। पहचान तभी काम की है जब रीस्टोर करने के लिए दूसरी कॉपी हो, और 3-2-1 नियम का पूरा तर्क यही है।
संबंधित: कैसे जाँचें कि बैकअप पढ़ा जा सकता है, रिपॉज़िटरी फ़ॉर्मैट, और 3-2-1 नियम।