फाइल सिस्टम द्वारा उपयोग किए गए ब्लॉक को पुनर्प्राप्त करने के लिए ddrescue क्यों नहीं कर सकता है?


3

ऐसा लगता है कि ddresoscope एक डिस्क या विभाजन पर सभी ब्लॉकों को पुनर्प्राप्त करने की कोशिश करता है, यहां तक ​​कि उन जिनमें फाइलें शामिल नहीं हैं। क्या यह पता लगाना संभव नहीं होगा कि फाइलसिस्टम को देखकर कौन से ब्लॉक वास्तव में फाइल पकड़ते हैं, उदाहरण के लिए NTFS पर मास्टर फाइल टेबल?

संपादित करें : ऐसा लगता है कि यह partclone के साथ संयोजन में संभव हो सकता है:

http://partclone.org/features/

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

इसे भी देखें: http://sourceforge.net/p/partclone/mailman/partclone-user/thread/4DDB8E29.1030403@mev.co.uk/


क्या आप सुनिश्चित हैं कि पहले से ही शायद एक पैरामीटर विकल्प के साथ संभव नहीं है?
रामहाउंड

जवाबों:


6

संक्षिप्त उत्तर: क्योंकि यह इसका उद्देश्य नहीं है। Ddrescue एक काम करता है (1: 1 एक असफल HDD की नकल करता है), और यह अच्छी तरह से करता है।


1
ठीक ठीक। "डू वन थिंग एंड डू इट वेल" यूनिक्स दर्शन का एक हिस्सा है।
कामिल मैकियोरोस्की

3

मुझे नहीं लगता कि यह संभव है, क्योंकि ddrescue, dd खुद की तरह, किसी भी ब्लॉक डिवाइस पर काम करने के लिए है, यहां तक ​​कि बिना फाइल सिस्टम वाले या क्षतिग्रस्त एक भी। अगर यह मौजूद है तो फाइलसिस्टम को देखते हुए इसे और जटिल बनाया जाएगा।


2

पुराना धागा लेकिन दूसरों के लिए मददगार हो सकता है ...

यदि इनपुट एक NTFS स्वरूपित वॉल्यूम है, तो आप ddrutility से ddru_ntfsbitmap का उपयोग कर सकते हैं, $ Bitmap सिस्टम फ़ाइल का उपयोग करके ddrescue के लिए एक मेफ़ाइल उत्पन्न करने के लिए, जो कि NTFS विभाजन पर उपयोग किए गए / अप्रयुक्त क्लस्टर का एक नक्शा है। बेशक यह आवश्यक है कि $ बिटमैप फ़ाइल बरकरार हो, पूरी तरह से पठनीय क्षेत्र में स्थित हो, ठीक से काम करने के लिए (आमतौर पर यह विभाजन की शुरुआत में स्थित है)। अगर ऐसा है तो यह जल्दी से आगे बढ़ता है (मेरे पहले और अब तक के अनुभव में केवल 2min लगता है। 1TB विभाजन से मैपफाइल उत्पन्न करने के लिए)। फिर आप इस मूल कमांड के साथ ddresoscope चलाते हैं:

ddrescue [options] [input path] [output path] [logfile] -m [mapfile]

Ddrescue के हाल के संस्करणों में, शब्द "logfile", के रूप में, वह फ़ाइल जहां पुनर्प्राप्ति के दौरान सहेजे गए / गैर-आज़माए गए / खराब क्षेत्रों को पुनर्प्राप्ति के दौरान सहेजा जाता है, को "mapfile" से बदल दिया गया है, जो बहुत भ्रमित करता है । उदाहरण के लिए, यदि आप एक HDD / dev / sdc को पुनर्प्राप्त करने के लिए / मीडिया / sdd1 पर पुनर्प्राप्ति नामक एक छवि को पुनर्प्राप्त करना चाहते हैं, तो Recovery_bitmap.log नामक ddru_ntfsbitmap द्वारा उत्पन्न मैपफ़ाइल का उपयोग करके, कमांड होना चाहिए:

ddrescue [options] /dev/sdc /dev/sdd1/Recovery /dev/sdd1/Recovery.log -m /dev/sdd1/Recovery_bitmap.log

ओह नीट, मुझे इस बारे में बताने के लिए धन्यवाद। कुछ साल पहले उपयोगी होगा जब मैं एक 3TB डिस्क को पुनर्प्राप्त करने का प्रयास कर रहा था ... मैंने एक छोटा प्रोग्राम बनाया जो ddrescueपहले से पुनर्प्राप्त किए गए अप्रयुक्त क्षेत्रों को चिह्नित करने के लिए एक मानचित्र / लॉगफ़ाइल बनाएगा । इसने उन फ़ाइल नामों को भी निर्दिष्ट करने की अनुमति दी है जिन्हें आपको पुनर्प्राप्त करने की आवश्यकता नहीं थी (पुरानी वीएम छवियों जैसे बड़ी फ़ाइलों के लिए काम करना, आईएसओ डाउनलोड करना आदि), और उनके एक्स्टेंट को देखेंगे और उन्हें पुनर्प्राप्त करने के साथ ही चिह्नित करेंगे। मुझे इसे GitHub या कुछ और पर रखना चाहिए ...
CBHacking

1

मुख्य कारण शायद यह है कि यह ddrescueकोड को और अधिक जटिल बना देगा, क्योंकि इसे विभिन्न फाइल सिस्टम पर जानकारी को शामिल करने, और उनकी आंतरिक संरचनाओं को पार्स करने की आवश्यकता होगी।

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

उस मामले में, एकमात्र सुरक्षित विकल्प सब कुछ हड़पना है, और बाद में विवरण को छाँटना है।


0

आजकल यह संभव है, क्योंकि प्रश्न में वर्णित धागे को लागू किया गया है। आप एक फ़ाइल बनाने के लिए Parclone उपयोगिता का उपयोग कर सकते हैं जो बताती है कि किन भागों को स्कैन किया जाना चाहिए।

यहाँ वर्णित धागे से इसका उपयोग करने का एक उदाहरण दिया गया है:

# produce a domain file for NTFS partition on /dev/sda1
partclone.ntfs -s /dev/sda1 -D -o sda1.domain
# copy /dev/sda1 to /dev/sdb1 using ddrescue with domain log file
ddrescue --domain-log sda1.domain /dev/sda1 /dev/sdb1 rescue.log
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.