डेटा को सत्यापित करने के लिए जलने के बाद वास्तव में 'डिस्क का सत्यापन' क्या करता है?
'वेरिफाइड डिस्क' फीचर यह सुनिश्चित करने के लिए बहुत बढ़िया है कि आपकी ताज़ा जली हुई डिस्क अच्छी तरह से निकले, लेकिन वास्तव में यह कैसे काम करती है? आज के SuperUser Q & A पोस्ट में एक जिज्ञासु पाठक के प्रश्न का उत्तर है.
आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है-स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों का एक समुदाय-संचालित समूह है।.
कोबाल्ट का फोटो सौजन्य (फ़्लिकर).
प्रश्न
सुपरयूजर रीडर user1301428 जानना चाहता है कि डिस्क को जलाने के बाद कैसे सत्यापित किया जाता है:
डेटा को सत्यापित करने के लिए वास्तव में जलने के बाद डिस्क को क्या सत्यापित करता है? मैं कल्पना करता हूं कि यह मूल फाइलों और डिस्क पर जलाई गई फ़ाइलों के बीच किसी तरह की तुलना है, लेकिन क्या कोई जानता है कि यह वास्तव में निम्न स्तर पर कैसे किया जाता है?
मेरा मतलब है, क्या यह स्रोत और गंतव्य सामग्री का हैश बनाता है, फिर उनकी तुलना करता है? यदि हां, तो क्या यह रैम में जले हुए कंटेंट के हैश को स्टोर करता है? या क्या यह हार्ड ड्राइव पर एक अस्थायी फ़ाइल में सहेजता है? क्या कोई लॉग फ़ाइल चल रही है?
बस यह जानने के लिए उत्सुक हैं कि यह सुविधा कैसे काम करती है। और मैं विंडोज इमेज बर्नर की बात कर रहा हूं.
डिस्क सत्यापन प्रक्रिया कैसे काम करती है?
उत्तर
सुपरयूजर योगदानकर्ता फ्रैंक थॉमस और सिंथेट हमारे पास इसका जवाब है। सबसे पहले, फ्रैंक थॉमस:
IBurnVerification इंटरफ़ेस और IMAPI_BURN_VERIFICATION_LEVEL इनम के लिए Windows API पर इन MSDN पृष्ठ देखें.
डेटा डिस्क के लिए, यह त्वरित मोड में ऐसा लगता है कि यह पूरे डिस्क को चेकसम नहीं करता है, बस सेक्टरों का चयन। यह तब सुनिश्चित करता है कि API READ_DISC_INFO और READ_TRACK_INFO को नए डिस्क पर कॉल करता है.
पूर्ण सत्यापन के लिए, यह उपरोक्त जांच करता है, फिर पिछले सत्र पर एक पूर्ण चेकसम को करता है मेमोरी डिस्क पर गणना की गई चेकसम के खिलाफ नए डिस्क पर। चेकसमों को राम में संग्रहीत किया जाना है, लेकिन वे संभवतः अल्पकालिक मूल्य हैं। ध्यान दें कि तुलना रैम में डिस्क छवि के खिलाफ है, न कि स्रोत मीडिया में, इसलिए यदि स्रोत डेटा सही ढंग से नहीं पढ़ा है, तो इसे गलत तरीके से लिखा जाएगा। सत्यापन से इसका पता नहीं चलेगा.
संगीत डिस्क के लिए, यह READ_TRACK_INFO और सामग्री की डिस्क तालिका की जाँच करने पर ध्यान केंद्रित करता है, लेकिन चेकों की गणना नहीं करता है। संगीत के लिए कोई पूर्ण सत्यापन मोड नहीं है.
Synetech से जवाब द्वारा पीछा किया:
फ्रैंक ने विंडोज-विशिष्ट सत्यापन के बारे में अच्छी तरह से समझाया। मैं अधिक सामान्य उत्तर दूंगा.
- डेटा को सत्यापित करने के लिए वास्तव में जलने के बाद डिस्क क्या सत्यापित करता है?
- मेरा मतलब है, क्या यह स्रोत और गंतव्य सामग्री का हैश बनाता है, फिर उनकी तुलना करता है? यदि हां, तो क्या यह रैम में जले हुए पदार्थ के हैश को स्टोर करता है? या क्या यह हार्ड ड्राइव पर एक अस्थायी फ़ाइल में सहेजता है? क्या कोई लॉग फ़ाइल चल रही है?
यह निश्चित रूप से एक तरीका है कि तुलना को लागू किया जा सकता है: हैश एक फ़ाइल (उम्मीद है कि टकराव एल्गोरिथ्म के पर्याप्त रूप से बड़े-पढ़े कम संभावना के साथ), दूसरे के लिए दोहराएं, और हैश की तुलना करें। यदि इस तरह से एक सत्यापन लागू किया जाता है, तो आप थोड़ी देर के लिए ड्राइव-एलईडी फ्लैश देख पाएंगे, फिर थोड़ी देर के लिए सीडी / डीवीडी-एलईडी फ्लैश.
सत्यापन को लागू करने का दूसरा तरीका एक फ़ाइल का एक ब्लॉक पढ़ना है, फिर दूसरी फ़ाइल से एक ही ब्लॉक, उनकी तुलना करें, फिर फ़ाइल के अंत तक दोहराएं। इस मामले में, आप आगे और पीछे दो ड्राइव के एल ई डी को देखेंगे.
बेशक, अगर हार्ड-ड्राइव और ऑप्टिकल ड्राइव में एलईडी नहीं हैं, तो यह उतना स्पष्ट नहीं होगा। लेकिन आप अभी भी इसे ProcessMonitor जैसी किसी चीज़ के साथ देख सकते हैं क्योंकि यह एक से एक रीड की श्रृंखला को लॉग करेगा, फिर दूसरा या तो सिंगल, बिग बर्स्ट या अल्टरनेटिंग, छोटे बर्स्ट में.
- मैं कल्पना करता हूं कि यह मूल फाइलों और डिस्क पर जलाई गई फाइलों के बीच किसी तरह की तुलना है, लेकिन क्या कोई जानता है कि यह वास्तव में निम्न स्तर पर कैसे किया जाता है?
दरअसल, यह सब वास्तव में ड्राइव कैश को फ्लश करने के लिए होता है ताकि तुलना फ़ंक्शन मेमोरी कैश के बजाय वास्तविक डिस्क से डेटा पढ़ रहा हो। जाहिर है कि यह एक महत्वपूर्ण कदम है क्योंकि अगर सत्यापन कैश से किया जाता है, तो यह प्रतिनिधित्व नहीं करता है कि वास्तव में डिस्क पर क्या है, इसलिए भ्रष्टाचार आसानी से खत्म हो सकता है.
आप देख सकते हैं कि ड्राइव से तुलना की जाती है या रैम में कैश से कितनी तेजी से होता है। यदि आप मैन्युअल रूप से एक साधारण तुलना करते हैं (जैसे कि WinDiff, WinMerge के साथ, या हैशिंग टूल से उन्हें हैशिंग द्वारा), तो आप देखेंगे कि तुलना अपेक्षा से कहीं अधिक तेज़ी से होती है क्योंकि यह मेमोरी कैश से फ़ाइलों को पढ़ रही है। आपको वास्तविक डिस्क से पढ़ने के लिए मजबूर करने के लिए कैश को फ्लश करना चाहिए। ऑप्टिकल ड्राइव (और फ्लैश-ड्राइव और मेमोरी-कार्ड जैसे अन्य हटाने योग्य मीडिया) के लिए, बस ड्राइव को खारिज करना कैश को फ्लश करने के लिए पर्याप्त है, लेकिन हार्ड-ड्राइव के लिए, यह लगभग उतना सरल नहीं है (हालांकि आमतौर पर इससे कोई फर्क नहीं पड़ता क्योंकि नई प्रतिलिपि वह है जिसे आप परीक्षण करना चाहते हैं).
स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में विचार व्यक्त करो। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तर पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें.