dd
या किसी भी अन्य अनुप्रयोग में "कुछ प्रकार के सत्यापन में निर्मित" इस अर्थ में नहीं है कि आप शायद इस बारे में सोच रहे हैं: यह स्टोरेज माध्यम से डेटा की तुलना नहीं करता है कि क्या लिखा गया था। यह ऑपरेटिंग सिस्टम का काम है।
किसी एप्लिकेशन से हार्डवेयर को रीड-वेरीफाई करना वास्तव में संभव नहीं है। यह कुछ परिदृश्यों में काम करेगा, लेकिन ज्यादातर मामलों में यह कुछ भी हासिल नहीं करेगा। एप्लिकेशन वापस वही पढ़ सकता है जो उसने अभी लिखा है यदि वह सीधे स्टोरेज माध्यम में लिख रहा है , लेकिन यह आम तौर पर इन-मेमोरी कैश से वापस पढ़ा जाएगा, जो कोई उपयोगी आश्वासन नहीं देगा। में उदाहरण आप का हवाला देते हैं , dd
एक पाइप के लिए लिख रहा है, और उस मामले में यह क्या लाइन नीचे आगे डेटा का क्या होता पर कोई नियंत्रण नहीं है। अपने rsync उदाहरण में, का एक दूसरा पासrsync --checksum
व्यर्थ है: सिद्धांत रूप में यह एक त्रुटि पकड़ सकता है, लेकिन व्यवहार में, यदि एक त्रुटि होती है, तो दूसरा पास शायद कुछ भी गलत नहीं रिपोर्ट करेगा, इसलिए आप किसी ऐसी चीज पर प्रयास बर्बाद कर रहे हैं जो वास्तव में एक उपयोगी आश्वासन नहीं देता है।
हालांकि, एप्लिकेशन यह सत्यापित करते हैं कि डेटा का क्या होता है, इस अर्थ में कि वे सत्यापित करते हैं कि ऑपरेटिंग सिस्टम ने डेटा के लिए जिम्मेदारी स्वीकार कर ली है। सभी सिस्टम कॉल में त्रुटि की स्थिति होती है। यदि कोई सिस्टम कॉल एक त्रुटि स्थिति देता है, तो अनुप्रयोग को उस त्रुटि को उपयोगकर्ता को प्रचारित करना चाहिए, आमतौर पर एक त्रुटि संदेश प्रदर्शित करके और नॉनजेरो एग्जिट स्थिति को लौटाता है।
dd
एक अपवाद है कि सावधान रहें : कमांड लाइन मापदंडों के आधार पर, dd
कुछ त्रुटियों को अनदेखा कर सकता है । यह बेहद असामान्य है:dd
इस संपत्ति के साथ एकमात्र सामान्य आदेश है। cat
इसके बजाय dd
इस तरह से उपयोग करें कि आप भ्रष्टाचार का जोखिम नहीं उठाते हैं और यह अच्छी तरह से तेज हो सकता है ।
डेटा कॉपी करने की श्रृंखला में, दो प्रकार की त्रुटियां उत्पन्न हो सकती हैं।
- भ्रष्टाचार: ट्रांसफर के दौरान थोड़ा फ़्लिप किया जाता है। आवेदन स्तर पर इसे सत्यापित करने का कोई तरीका नहीं है, क्योंकि यदि ऐसा होता है, तो यह एक प्रोग्रामिंग बग या हार्डवेयर त्रुटि के कारण होता है जो कि वापस पढ़ने पर समान भ्रष्टाचार का कारण होने की संभावना है। यह सत्यापित करने का एकमात्र उपयोगी तरीका है कि ऐसा कोई भी भ्रष्टाचार नहीं हुआ है, भौतिक रूप से मीडिया को डिस्कनेक्ट करने और फिर से प्रयास करने के लिए, अधिमानतः एक अलग कंप्यूटर पर समस्या के मामले में रैम के साथ था।
- Truncation: सभी डेटा जो कॉपी किए गए थे, उन्हें सही तरीके से कॉपी किया गया था, लेकिन कुछ डेटा को कॉपी नहीं किया गया था। यह कभी-कभी कमांड की जटिलता के आधार पर जांचने लायक होता है। आपको ऐसा करने के लिए डेटा पढ़ने की आवश्यकता नहीं है: बस आकार की जांच करें।