ddrescue का उपयोग करके लिनक्स पर डेटा पुनर्प्राप्त करें

Ddrescue Ka Upayoga Karake Linaksa Para Deta Punarprapta Karem



Ddrescue एक उपकरण है जिसका उपयोग किसी फ़ाइल या ब्लॉक डिवाइस जैसे हार्ड ड्राइव, SSDs, RAM डिस्क, CDs, DVD और USB स्टोरेज डिवाइस से डेटा पुनर्प्राप्त करने के लिए किया जाता है। यह डेटा को एक ब्लॉक डिवाइस से दूसरे में कॉपी करता है, दूषित डेटा ब्लॉक को छोड़ देता है और केवल अच्छे डेटा को स्थानांतरित करता है। ddrescue एक शक्तिशाली पुनर्प्राप्ति उपकरण है जो पूरी तरह से स्वचालित है क्योंकि इसे पुनर्प्राप्ति ऑपरेशन के दौरान किसी भी हस्तक्षेप की आवश्यकता नहीं होती है। इसके अलावा, इसे किसी भी समय रोका और फिर से शुरू किया जा सकता है ddrescue मानचित्र फ़ाइल . ddrescue की अन्य प्रमुख विशेषताएं नीचे सूचीबद्ध हैं:
  • यह पुनर्प्राप्त किए गए डेटा को अधिलेखित नहीं करता है बल्कि पुनरावृत्तीय पुनर्प्राप्ति के मामले में अंतराल को भरता है। हालाँकि, यदि उपकरण को इसे स्पष्ट रूप से करने का निर्देश दिया जाए तो इसे छोटा किया जा सकता है।
  • एकाधिक फ़ाइलों या ब्लॉकों से एक ही फ़ाइल में डेटा पुनर्प्राप्त करें।
  • SATA, ATA, SCSI, MFM ड्राइव, फ़्लॉपी डिस्क और SD कार्ड जैसे कई प्रकार के डिवाइस इंटरफ़ेस का समर्थन करता है।

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

टिप्पणी: मैं इस गाइड में दिए गए निर्देशों के लिए लिनक्स वितरण (उबंटू 22.04) का उपयोग कर रहा हूं। Ddrescue उपयोगिता की स्थापना प्रक्रिया भिन्न हो सकती है, लेकिन निर्देश सभी लिनक्स वितरणों में समान होंगे।







ddrescue स्थापित कर रहा हूँ

विशेष रूप से लिनक्स पर ddrescue स्थापित करने के लिए उबंटू और इसके स्वाद या डेबियन-आधारित डिस्ट्रोस, उपयोग करें:



सूडो अपार्ट स्थापित करना gddrescue

इसे इंस्टॉल करने के लिए आरईएचएल , फेडोरा , और Centos , सबसे पहले सक्षम करें गरम (एंटरप्राइज़ लिनक्स के लिए अतिरिक्त पैकेज)।



सूडो यम स्थापित करें गर्म रिहाई

उपरोक्त आदेश संबंधित वितरण के नए संस्करणों के लिए है।





फिर ddrescue को स्थापित करने के लिए निम्नलिखित कमांड निष्पादित करें:

सूडो यम स्थापित करें ddrescue

जैसे आर्क-आधारित लिनक्स वितरण के लिए आर्क-लिनक्स और मंज़रो , ddrescue पुनर्प्राप्ति उपयोगिता को स्थापित करने के लिए नीचे दिए गए कमांड का उपयोग करें।



सूडो Pacman -एस ddrescue

चूँकि मैं Ubuntu 22.04 का उपयोग कर रहा हूँ, मैं इसे स्थापित करने के लिए APT पैकेज मैनेजर का उपयोग करूँगा।

मूल बातें समझना

डेटा पुनर्प्राप्त करने के लिए ddrescue टूल का उपयोग करने से पहले, मैं उन उपयोगकर्ताओं को अनुशंसा करूंगा जो पुनर्प्राप्ति प्रक्रिया में नए हैं, लिनक्स की कुछ नामकरण परंपराओं को समझें।

लिनक्स ब्लॉक (डिवाइस) को फाइलों के रूप में पहचानता है और उन्हें इसमें रखता है /देव निर्देशिका। /dev निर्देशिका में फ़ाइलों को सूचीबद्ध करने के लिए, का उपयोग करें एलएस /देव आज्ञा।

हार्ड ड्राइव्ज़ (भंडारण ब्लॉक) का प्रतिनिधित्व किया जाता है एसडी वर्णमाला के बाद; एकाधिक भंडारण उपकरणों के मामले में फ़ाइलों को /dev/sd के रूप में दर्शाया जाएगा ए, /देव/एसडी बी, और इसी तरह।

यदि स्टोरेज डिवाइस है विभाजन , तो उन्हें संबंधित ड्राइव फ़ाइल नाम के साथ एक संख्या द्वारा दर्शाया जाएगा, जैसे कि /dev/sda 1 , /dev/sda 2 , और इसी तरह।

सिस्टम के साथ सभी ब्लॉक और अन्य जुड़े उपकरणों को सूचीबद्ध करने के लिए, सूची ब्लॉक का उपयोग करें lsblk आज्ञा:

lsblk

Ddrescue कमांड पूरे ब्लॉक (एमबीआर और विभाजन युक्त) या एक विभाजन को भी पुनर्प्राप्त कर सकता है। दूसरी ओर, यदि आपको किसी विशिष्ट विभाजन से केवल विशिष्ट फ़ाइलों को पुनर्प्राप्त करने की आवश्यकता है, तो संपूर्ण ब्लॉक के बजाय विभाजन को पुनर्प्राप्त करना बेहतर है।

महत्वपूर्ण विचार

ddrescue उपयोगिता का उपयोग करने से पहले, कुछ महत्वपूर्ण बिंदुओं पर विचार किया जाना चाहिए:

  • माउंटेड ब्लॉक को पुनर्प्राप्त करने का प्रयास न करें, ब्लॉक केवल-पढ़ने योग्य मोड में भी नहीं होना चाहिए।
  • I/O त्रुटियों वाले ब्लॉक को सुधारने का प्रयास न करें।
  • सिस्टम रीबूट पर इनपुट और आउटपुट डिवाइस के नाम बदल सकता है। कॉपी करने की प्रक्रिया शुरू करने से पहले सुनिश्चित करें कि डिवाइस के नाम सही हैं।
  • यदि आप आउटपुट डिवाइस के रूप में एक अलग ब्लॉक का उपयोग कर रहे हैं, तो डिवाइस पर कोई भी डेटा ओवरराइट हो जाएगा।

ddrescue का उपयोग करना

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

दूषित ब्लॉक को पुनर्प्राप्त करना

पहला उदाहरण पूरे ब्लॉक को पुनर्प्राप्त करने की प्रक्रिया को शामिल करेगा। सबसे पहले, का उपयोग करके ब्लॉकों को सूचीबद्ध करें lsblk आज्ञा:

lsblk -ओ नाम, आकार, FSTYPE

-ओ फ़्लैग का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि कमांड को किस प्रकार की जानकारी (फ़ील्ड) आउटपुट करनी चाहिए। मैंने उल्लेख किया है नाम , आकार , और FSTYPE या फ़ाइल सिस्टम प्रकार.

अब, आप बचाई गई छवि फ़ाइल को सहेजने के लिए लक्ष्य ब्लॉक, विभाजन और स्थान की पहचान कर सकते हैं।

ध्यान देने योग्य एक और महत्वपूर्ण बात यह है कि लिनक्स पर, ब्लॉक का नाम बूट पर गतिशील रूप से निर्दिष्ट किया जाता है और रिबूट के बाद, ब्लॉक के नाम बदल सकते हैं। इसलिए, ब्लॉक नाम नोट करते समय सावधान रहें।

अब, रूट डायरेक्टरी में लॉग फ़ाइल के साथ ब्लॉक को एक छवि फ़ाइल के रूप में बचाने के लिए निम्नलिखित सिंटैक्स का उपयोग करें।

सूडो ddrescue -डी -आरएक्स / देव / [ अवरोध पैदा करना ] [ पथ / नाम ] .img [ लॉगफ़ाइल_नाम ] ।लकड़ी का लट्ठा

टिप्पणी: प्रतिस्थापित करें [अवरोध पैदा करना] , [पथ/नाम] छवि फ़ाइल का, और [लॉगफ़ाइल_नाम] तदनुसार पसंदीदा नामों के साथ।

इस उदाहरण में, मैं पुनर्प्राप्त कर रहा हूं /देव/एसडीए छवि फ़ाइल नाम के साथ रूट निर्देशिका में recovery.img . यदि आप किसी भी समय पुनर्प्राप्ति फिर से शुरू करना चाहते हैं तो लॉग फ़ाइल जिसे मानचित्र फ़ाइल भी कहा जाता है, आवश्यक है।

सूडो ddrescue -डी -आर2 / देव / sda2 पुनर्प्राप्ति.img पुनर्प्राप्ति.लॉग

उपरोक्त कमांड में दो महत्वपूर्ण झंडों का उपयोग किया गया है।

डी -अप्रत्यक्ष कर्नेल कैश को अनदेखा करते हुए टूल को सीधे डिस्क तक पहुंचने के लिए कहने के लिए उपयोग किया जाता है
आरएक्स -पुनःप्रयास-पास खराब सेक्टर X को कई बार पुनः प्रयास करने के लिए टूल को बताने के लिए उपयोग किया जाता है

उपरोक्त आदेश को निष्पादित करने पर, आपको फ़ाइल ब्राउज़र में नामों के साथ दो फ़ाइलें दिखाई देंगी recovery.img और पुनर्प्राप्ति.लॉग .

पुनर्प्राप्ति का समय इनपुट ब्लॉक के आकार और क्षति पर निर्भर करता है। यदि आप एक बड़े ब्लॉक को पुनर्प्राप्त कर रहे हैं, तो मैं एक लॉग फ़ाइल रखने की सलाह देता हूं क्योंकि प्रक्रिया को पूरा करने में कई घंटे या दिन भी लग सकते हैं।

उपरोक्त कमांड का आउटपुट नीचे दिया गया है:

आउटपुट छवि में, आईपीओ इनपुट फ़ाइल की इनपुट स्थिति है जहां से कॉपी शुरू की जाती है और अल्सर आउटपुट फ़ाइल पर आउटपुट स्थिति है जहां डेटा लिखा जा रहा है।

कोशिश न की गई क्या ब्लॉक का आकार परीक्षण के लिए लंबित नहीं है। बचाया सफलतापूर्वक पुनर्प्राप्त किए गए ब्लॉक का आकार इंगित करता है। पीसीटी को बचाया गया प्रतिशत में डेटा की सफल पुनर्प्राप्ति को दर्शाता है। शर्तें, गैर-छंटनी , गैर-स्क्रेप्ड , खराब क्षेत्र , और ख़राब क्षेत्र स्व-व्याख्यात्मक हैं. हालांकि त्रुटियाँ पढ़ें पद संख्याओं में विफल पढ़ने के प्रयासों को इंगित करता है।

चलाने का समय प्रक्रिया को पूरा करने में उपकरण द्वारा लिया गया समय दिखाता है, जबकि शेष समय पुनर्प्राप्ति प्रक्रिया को पूरा करने के लिए समय शेष है। उपरोक्त आउटपुट शेष समय 0 दिखाता है क्योंकि प्रक्रिया समाप्त हो गई है, अधूरी प्रक्रिया की निम्नलिखित छवि में आउटपुट पढ़ें।

आइए देखें कि हमें लॉग फ़ाइल में क्या मिलता है; जनरेट की गई लॉग फ़ाइल को खोलने के लिए, का उपयोग करें विम पुनर्प्राप्ति.लॉग आज्ञा।

वर्तमान स्थिति + है जिसका अर्थ है कि प्रक्रिया समाप्त हो गई है, जबकि current_pos ब्लॉक पर स्थिति है.

वर्तमान स्थितियों की सूची निम्नलिखित तालिका में दी गई है:

? प्रतिलिपि बनाई जा रही
* ट्रिमिंग
/ के समाप्त
पुनः प्रयास किया जाएगा
एफ निर्दिष्ट ब्लॉक भरना
जी लॉग फ़ाइल जनरेट कर रहा है
+ प्रक्रिया समाप्त हो गई है

इसके नीचे, लॉग फ़ाइल में नीचे सूचीबद्ध वर्णों के रूप में पहले से बचाए गए ब्लॉकों की स्थिति के संकेत हैं:

? ब्लॉक का परीक्षण नहीं किया गया है
* गैर-छंटनी वाला विफल ब्लॉक
/ गैर-स्क्रैप किया गया विफल ब्लॉक
ख़राब सेक्टर विफल ब्लॉक
+ समाप्त ब्लॉक

छवि फ़ाइल को एक नए ब्लॉक में पुनर्स्थापित करना

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

चलिए मान लेते हैं कि यह है /dev/sdb , छवि को एक नए ब्लॉक में कॉपी करने के लिए निम्न कमांड का उपयोग करें।

सूडो ddrescue -एफ recovery.img / देव / एसडीबी लॉगफ़ाइल.लॉग

-एफ यदि कोई डेटा है तो नए ब्लॉक को अधिलेखित करने के लिए ध्वज का उपयोग किया जाता है। ध्यान रखें कि लॉग फ़ाइल को पहले से संग्रहीत लॉग फ़ाइल से अलग रखने के लिए उसका नाम अलग होना चाहिए।

उपरोक्त ऑपरेशन का उपयोग करके भी किया जा सकता है डीडी , फ़ाइलों की प्रतिलिपि बनाने के लिए उपयोग किया जाने वाला एक और शक्तिशाली कमांड।

सूडो डीडी अगर =वसूली.img का = / देव / एसडीबी

पुनर्स्थापना करने से पहले, ध्यान रखें कि नया ब्लॉक पूरे पुनर्प्राप्त ब्लॉक को रखने के लिए पर्याप्त बड़ा होना चाहिए; उदाहरण के लिए, यदि पुनर्प्राप्ति ब्लॉक 5GB है तो नया ब्लॉक 5GB से बड़ा होना चाहिए।

यदि पुनर्प्राप्त छवि फ़ाइल में बहुत सारी त्रुटियाँ हैं, तो उन्हें इसका उपयोग करके सुधारा जा सकता है ऍफ़एससीके कुछ हद तक लिनक्स पर कमांड। विंडोज़ पर रहते हुए, आप इसका उपयोग कर सकते हैं chkdsk या एसएफसी ऐसा करने का आदेश देता है. हालाँकि, पुनर्प्राप्ति दूषित फ़ाइल द्वारा उत्पन्न त्रुटियों की संख्या पर निर्भर करती है।

अब, पुनर्प्राप्ति प्रक्रिया और बहाली पूरी हो गई है। ध्यान देने योग्य एक और महत्वपूर्ण बात यह है कि आप छवि फ़ाइल बनाने और फिर उसे नए ब्लॉक में कॉपी करने के बजाय, किसी दूषित ब्लॉक को सीधे दूसरे ब्लॉक पर पुनर्प्राप्त कर सकते हैं। खैर, अगले अनुभाग में, मैं इस प्रक्रिया को विस्तार से बता रहा हूं।

ब्लॉक को दूसरे ब्लॉक में पुनर्प्राप्त करना

किसी ब्लॉक को सीधे नए ब्लॉक में पुनर्प्राप्त करने के लिए, पहले ब्लॉक को सिस्टम से कनेक्ट करें और फिर से उपयोग करें lsblk ब्लॉक नाम की पहचान करने के लिए कमांड। गलत ब्लॉक नाम पूरी प्रक्रिया को गड़बड़ा सकते हैं और आप डेटा खो सकते हैं।

स्रोत ब्लॉक और गंतव्य ब्लॉक की पहचान करने के बाद, ब्लॉक को पुनर्प्राप्त करने के लिए निम्नलिखित कमांड का उपयोग करें:

सूडो ddrescue -डी -एफ -आर2 / देव / [ स्रोत ] / देव / [ गंतव्य ] बैकअप.लॉग

चलो मान लो /dev/sdb गंतव्य ब्लॉक है, इसलिए इसकी प्रतिलिपि बनाने के लिए /देव/एसडीए नए ब्लॉक उपयोग के लिए निर्देशिका:

सूडो ddrescue -डी -एफ -आर2 / देव / एसडीए / देव / एसडीबी बैकअप.लॉग

फिर से, इस प्रक्रिया को आजमाने से पहले पिछले अनुभागों में उल्लिखित महत्वपूर्ण विचारों को देखें।

पुनर्प्राप्त छवि फ़ाइलों से विशिष्ट डेटा पुनर्प्राप्त करना

कई मामलों में, डेटा पुनर्प्राप्ति का उद्देश्य दूषित ड्राइव से विशिष्ट फ़ाइलों को ढूंढना है। विशिष्ट फ़ाइल तक पहुँचने के लिए आपको छवि फ़ाइल को माउंट करना होगा। लिनक्स पर, पुनर्प्राप्त छवि फ़ाइल का उपयोग करके पता लगाया जा सकता है पर्वत आज्ञा।

छवि फ़ाइल को माउंट करने से पहले, एक फ़ोल्डर या निर्देशिका बनाएं जिसमें आप छवि फ़ाइल की सामग्री को निकालना चाहते हैं।

mkdir रिकवरीमाउंट

इसके बाद, छवि फ़ाइल का उपयोग करके माउंट करें:

सूडो पर्वत -ओ लूप रिकवरी.img ~ / रिकवरीमाउंट

-ओ ध्वज विकल्पों को इंगित करता है, जबकि लूप विकल्प का उपयोग छवि फ़ाइल को ब्लॉक डिवाइस के रूप में मानने के लिए किया जाता है।

अब आपके पास छवि फ़ाइल की सामग्री तक पहुंच है, जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है।

ब्लॉक को अनमाउंट करने के लिए, का उपयोग करें umount आज्ञा।

सूडो umount ~ / रिकवरीमाउंट

उन्नत विशेषताएँ

किसी विशिष्ट बिंदु से पुनर्प्राप्ति प्रारंभ करने के लिए, का उपयोग करें -मैं झंडा या -इनपुट-स्थिति . यह बाइट्स में होना चाहिए, डिफ़ॉल्ट रूप से यह है 0 बाइट्स किसी विशिष्ट बिंदु से नकल फिर से शुरू करने के लिए यह महत्वपूर्ण है। उदाहरण के लिए, यदि आप 10 जीबी बिंदु से प्रतिलिपि बनाने की प्रक्रिया शुरू करना चाहते हैं, तो निम्न आदेश का उपयोग करें।

सूडो ddrescue -i10GiB / देव / एसडीए इमेजफाइल.आईएमजी लॉगफाइल.लॉग

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

सूडो ddrescue -s10GiB / देव / एसडीए इमेजफाइल.आईएमजी लॉगफाइल.लॉग

-पूछना विकल्प काफी उपयोगी हो सकता है, क्योंकि यह प्रतिलिपि प्रक्रिया शुरू करने से पहले इनपुट और आउटपुट ब्लॉक की पुष्टि के लिए संकेत देता है। जैसा कि पहले चर्चा की गई है, सिस्टम गतिशील रूप से ब्लॉकों को नाम निर्दिष्ट करता है, और वे रीबूट पर बदल जाते हैं। तो, उस स्थिति में, यह विकल्प उपयोगी हो सकता है।

सूडो ddrescue --पूछना / देव / एसडीए इमेजफाइल.आईएमजी लॉगफाइल.लॉग

इसके अलावा, कुछ अन्य विकल्पों की सूची नीचे उल्लिखित है:

-आर -रिवर्स नकल की दिशा को उलटने के लिए
-क्यू -अत्यंत सभी आउटपुट संदेशों को दबाने के लिए
-में -verbose विस्तृत करने के लिए, सभी आउटपुट संदेश
-पी -प्रीआवंटन आउटपुट फ़ाइल के लिए भंडारण पूर्व-आवंटित करने के लिए
-पी -डेटा-पूर्वावलोकन नवीनतम डेटा रीड की डिस्प्ले लाइनें डिफ़ॉल्ट 3 लाइनें हैं

ड्रेस्क्यू कैसे काम करता है

ddrescue एक शक्तिशाली पुनर्प्राप्ति एल्गोरिदम का उपयोग करता है जिसे चार चरणों में विभाजित किया गया है:

1. नकल करना

2. ट्रिमिंग

3. खुरचना

4. पुनः प्रयास करना

ddrescue एल्गोरिथ्म निष्पादन निम्नलिखित छवि में दिखाया गया है।

निष्कर्ष

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