ddrescue प्रक्रिया को फिर से कैसे शुरू करें?


10

मुझे अपना 1TB USB HD रिकवर करना है। मैं इसे ddrescueपूरा करने के लिए उपयोग कर रहा हूं । क्या एक तरीका है कि मैं इसे शुरू करने के ddrescueबाद फिर से शुरू कर सकता हूं?

मैं कमांड का उपयोग कर रहा हूं:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image

जवाबों:


15

ddresoscope फिर से शुरू किया जा सकता है, लेकिन ऐसा करने में सक्षम होने के लिए एक लॉग फ़ाइल की आवश्यकता होती है। लॉग फ़ाइल प्रगति को रिकॉर्ड करेगी जिसे ddrescue ने अब तक बनाया है, और ddresoscope को पुनरारंभ करने से लॉग फ़ाइल पढ़ी जाएगी और जहां इसे छोड़ा गया है, वहां से शुरू होगा।

लॉग फ़ाइल तीसरा पैरामीटर होगा:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log

यदि आपने पहले से ही एक लॉग फ़ाइल के बिना एक ddresoscope रन शुरू कर दिया है और इसे रद्द कर देते हैं, तो अगली बार ddrescue चलता है, यह शुरुआत में शुरू होगा क्योंकि इसमें कोई रिकॉर्ड नहीं है जो पहले से ही पुनर्प्राप्त हो चुका है।

नोट : ddrescue और dd_rescue विभिन्न कार्यक्रम हैं।


1
इसलिए अगर मैंने शुरू में एक लॉग फ़ाइल से शुरुआत की थी और फिर से वही कमांड चलाएगा, तो यह स्वचालित रूप से पिछले लॉग पोजिशन से फिर से शुरू हो जाएगा? / edit: यह अंतिम स्थिति से शुरू होता है।
क्वर्टी

6

यहां तक ​​कि अगर आप लॉगफ़ाइल निर्दिष्ट करना भूल गए, तो भी आशा की जा सकती है:

उत्पन्न मोड

इसलिए आपने ट्यूटोरियल नहीं पढ़ा और बिना लॉगफ़ाइल के ddrescue शुरू किया। अब, दो दिन बाद, आपका कंप्यूटर दुर्घटनाग्रस्त हो गया और आप यह नहीं जान सकते हैं कि ddresoscope कितना डेटा बचाने में कामयाब रहा। और इससे भी बदतर, आप बचाव को फिर से शुरू नहीं कर सकते हैं; आपको इसे शुरू से ही पुनरारंभ करना होगा।

या हो सकता है कि आपने किसी ड्राइव को कॉपी करना शुरू कर दिया हो dd conv=noerror,syncऔर अब ऊपर वर्णित स्थिति में हो। इस स्थिति में, ध्यान दें कि आप dd द्वारा बनाई गई कॉपी का उपयोग नहीं कर सकते हैं जब तक कि इसे syncरूपांतरण तर्क के साथ लागू नहीं किया गया हो ।

निराशा (अभी तक) नहीं है। Ddrescue कुछ मामलों में इनपुट फ़ाइल और आंशिक (आंशिक) प्रतिलिपि से एक अनुमानित लॉगफ़ाइल उत्पन्न कर सकता है, जो लगभग सटीक लॉगफ़ाइल के रूप में अच्छा है। यह केवल यह मानकर चलता है कि सभी ज़ीरो में शामिल सेक्टरों को बचाया नहीं गया था।

हालाँकि, यदि प्रतिलिपि का गंतव्य एक ड्राइव या विभाजन था, (या एक मौजूदा नियमित फ़ाइल और ट्रंकेशन का अनुरोध नहीं किया गया था), तो शायद आपको शुरुआत से ही ddresoscope को पुनः आरंभ करना होगा। (इस बार लॉगफाइल के साथ, निश्चित रूप से)। कारण यह है कि पुराना डेटा उस ड्राइव में मौजूद हो सकता है जिसे अभी तक अधिलेखित नहीं किया गया है, और इस प्रकार गैर-कोशिश की जा सकती है लेकिन गैर-शून्य।

उदाहरण के लिए, यदि आपने पहली बार इनमें से एक कमांड की कोशिश की है:

ddrescue infile outfile

या

dd if=infile of=outfile conv=noerror,sync

आप इस आदेश के साथ एक अनुमानित लॉगफ़ाइल उत्पन्न कर सकते हैं:

ddrescue --generate-mode infile outfile logfile

क्या डिस्क को बचाया जा रहा है, और बचाव डेटा को तैयार करना है?
बस्तियन

3

जैसा कि दूसरों ने कहा है, आपको हमेशा तीसरे पैरामीटर के रूप में एक लॉगफाइल निर्दिष्ट करना चाहिए, जो फिर से शुरू करने की अनुमति देगा। चूँकि आपने ऐसा नहीं किया, इसलिए यहाँ आपकी मदद नहीं होगी। यदि आप लगभग जानते हैं कि प्रक्रिया किस बिंदु पर पहुंच गई है, तो आप उस बिंदु से शुरू करने के लिए --input-positionऔर --output-positionमापदंडों का उपयोग कर सकते हैं (सुनिश्चित करें कि उन दोनों मापदंडों को एक ही मूल्य पर सेट करें, अन्यथा आउटपुट दूषित हो जाएगा)।


2

चूंकि आपने तीसरे पैरामीटर के रूप में एक लॉग फ़ाइल निर्दिष्ट नहीं की थी, इसलिए फिर से शुरू करना स्वचालित रूप से नहीं किया जा सकता है। यदि आप पहले से ही बचाए गए क्षेत्रों को जानते हैं, तो आप हाथ से एक लॉगफाइल बना सकते हैं, वाक्यविन्यास आसान है। बस एक लॉग को निर्दिष्ट करते हुए एक और फ़ाइल के लिए एक और डमी बचाव शुरू करें और इसे विभिन्न क्षेत्रों को पढ़ने दें। फिर अपनी पहली फ़ाइल में पहले से ही बचाया क्षेत्रों का प्रतिनिधित्व करने के लिए लॉग को संपादित करें। अब अपनी पिछली कमांड को फिर से चलाएं लेकिन तीसरे पैरामीटर के रूप में लॉग फाइल का नाम दें। ddresoscope फिर पहले अनट्रेक्टेड सेक्टर पर फिर से शुरू होगा।


2

प्रति https://wiki.archlinux.org/index.php/Disk_cloning से ऐसा लगता है कि conv=noerror,syncस्विच के साथ , ddवास्तव में एक ब्लॉक के अंत में शून्य जोड़ते हैं , न कि वास्तव में जहां पढ़ने में त्रुटियां हुईं। यह 2013-08-29 से मीलों वोल्बे के जवाब में जानकारी के विपरीत है।

उदाहरण के लिए, यदि एक सही अनुक्रम है 198123283और बीच में एक पढ़ने में त्रुटि है तो यह लिखेगा 198283000, नहीं 198000283

तो अगर वास्तव में गलतियाँ थीं तो प्रस्तावित पद्धति सटीक नहीं होगी- ऐसे क्षेत्र होंगे जो पठनीय होंगे जो शून्य से भरे होंगे, फिर भी "बचाया" माना जाएगा।

वैसे, गंतव्य ड्राइव को शून्य (या कम से कम मुक्त स्थान, जो कि उदाहरण के लिए WinHex के साथ किया जा सकता है) के साथ भरकर इस तरह के पुनर्प्राप्ति प्रयास को शुरू करना एक अच्छा अभ्यास है।


हाय गेब्रियल, सुपर उपयोगकर्ता में आपका स्वागत है। मैंने आपके उत्तर को संपादित कर दिया है, लेकिन मुझे यकीन नहीं है कि यह अकेले खड़े होने के लिए पर्याप्त है- शायद आप इसे एक छोटे खंड को शामिल करने के लिए आगे संपादित कर सकते हैं जो मूल प्रश्न को भी संबोधित करता है?
बर्टिबेब

अगर मुझे सही से याद है कि मैं मील्स वोल्बे के उत्तर पर टिप्पणी करना चाहता था, लेकिन नए सदस्य के रूप में नहीं कर सकता था, इसलिए मुझे एक नया उत्तर पोस्ट करना था। यदि यह संभव है, तो उपरोक्त पोस्ट को स्थानांतरित करने के लिए स्वतंत्र महसूस करें जहां यह दिखाई दे और इसे हटा दें।
गैब्रियलबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.