दुर्घटनावश dd / dev / sda किया


35

मैंने अपनी हार्ड डिस्क का उपयोग करके ISO छवि लिखी sudo dd if=image.iso of=/dev/sda। मेरा मतलब था /dev/sdc, और अब sudo fdisk -lकेवल एक ही विभाजन / dev / sda पर रिटर्न चल रहा है जबकि माना जाता है कि 6. क्या मेरा डेटा पुनर्प्राप्त करना संभव है?

मैंने अभी तक अपना कंप्यूटर बंद नहीं किया (रिबूट)।


24
ddने अपना बदसूरत 'डेटा डिस्ट्रॉयर' चेहरा फिर से दिखाया है :-( इसने ड्राइव के हेड एंड (आइसो फ़ाइल के आकार के अनुसार) को ओवरराइट कर दिया है। जो डेटा वहां खो गए थे, क्या आपको हाल ही में बैकअप मिला है। वे फ़ाइलें जिन्हें आप खोना नहीं छोड़ सकते हैं; अन्यथा आपको विभाजन तालिका और फ़ाइल सिस्टम को सुधारने के लिए कड़ी मेहनत के लिए तैयार होना चाहिए, जो टेस्टडिस्क का उपयोग करते हुए एक क्लोन कॉपी पर सबसे अच्छा है , और यदि वह विफल रहता है, तो फ़ाइल डेटा को पुनर्प्राप्त करने के लिए कठिन काम करने के लिए 'पीछे' पाया जाना चाहिए। ड्राइव का हिस्सा जो ओवरराइट किया गया है। आप उस उद्देश्य के लिए PhotoRec का उपयोग कर सकते हैं । इस लिंक को देखें, cgsecurity.org
sudodus

6
ड्राइव जेपीटी विभाजन है, इसमें ड्राइव के अंत में बैकअप पार्टीशन टेबल का लाभ है। आईएसओ के आकार के लिए ड्राइव की शुरुआत पूरी तरह से ओवरराइट की गई थी और खो गई है। विभाजन के आकार पर निर्भर करता है तो आप कुछ या अधिकांश अन्य विभाजनों को पुनर्प्राप्त करने में सक्षम हो सकते हैं।
21

10
@sudodus " ddने अपने बदसूरत 'डेटा डिस्ट्रॉयर' चेहरे को फिर से दिखाया है" - इसके अलावा इसका कोई लेना-देना नहीं है dd, इसे सीधे डिस्क डिवाइस को रूट के रूप में एक्सेस करना है। किसी भी अन्य उपकरण का समान प्रभाव हो सकता था। cat image.iso > /dev/sdaठीक उसी तरह का प्रभाव पड़ा होगा। या pv ...। या, कुछ हद तक, यहां तक ​​कि vi /dev/sda। वास्तव में, यह मुझे उस कहानी की याद दिलाता है जहां लिनुस टॉर्वाल्ड्स ने मॉडेम डिवाइस के बजाय अपनी हार्ड ड्राइव डिवाइस का उपयोग करके नेटवर्क में डायल करने की कोशिश की , डायल-हैंडशेक के साथ अपने ड्राइव की शुरुआत को ओवरराइट किया । कुछ नहीं करना है dd
23

4
आपकी .isoफ़ाइल कितनी बड़ी है ? क्या आपने बाधित किया dd, या इसे पूरा करने के लिए चला?
23

4
@marcelm, आप सही हैं। लेकिन वास्तविक जीवन में, लोग ddइस (इस उद्देश्य के लिए) का उपयोग कर रहे हैं , इसलिए मुझे लगता है कि 'डेटा डिस्ट्रॉयर' चेतावनी प्रासंगिक है, हालांकि पूरी तरह से सही चेतावनी लंबे समय तक होनी चाहिए: "एक कमांड लाइन का उपयोग sudo dd if=image.iso of=/dev/sdxकिसी द्रव्यमान के क्लोन की तरह न करें संग्रहण डिवाइस। एक उपकरण का उपयोग करें जो आपको सही लक्ष्य डिवाइस को पहचानने और चुनने में मदद करता है और जिसमें एक अंतिम चेकपॉइंट होता है, ताकि आप यह जांच सकें कि आप आइसो फ़ाइल से सही लक्ष्य डिवाइस पर क्लोन करेंगे, जैसे स्टार्टअपअपस्क्रीट, डिस्क, मस्कब , Win32DiskImager। "
सूडोडस

जवाबों:


65

चूंकि आपका कंप्यूटर अभी भी चालू है, इसलिए आपके पास चीजों को सहेजने का एक अच्छा मौका है।

सबसे पहले, sysfsविभाजन तालिकाओं की स्मृति दृश्य में कर्नेल को उजागर करता है। अभी, आपके कर्नेल ने डिस्क की तालिका को फिर से नहीं बनाया है और यह आपके विभाजन को याद रखता है। अंदर /sys/block/sda/, प्रत्येक विभाजन के लिए एक निर्देशिका होनी चाहिए। प्रत्येक ऐसे उपनिर्देशिका में एक फ़ाइल startऔर एक फ़ाइल होती है size, जो कि क्षेत्रों में विभाजन के स्थान और आकार का प्रतिनिधित्व करती है। भागो fdiskऔर फिर प्रत्येक विभाजन (क्रम में!) को अपनी sysfsनिर्देशिका में जानकारी के साथ फिर से बनाएँ । ध्यान दें कि आपको एक नया पार्टीशन टेबल भी बनाना होगा। सुनिश्चित करें कि आपकी नई विभाजन तालिका पहले की तरह ही है। आप इसमें चेक कर सकते हैं /sys/block/sda। यदि आप देखते हैं sda1अप करने के लिएsda7जब आपके पास केवल 6 विभाजन हैं, तो आपके पास एमबीआर होने की संभावना थी, और अन्यथा यह शायद जीपीटी था। आपको इन विभाजनों के लिए ध्वज और प्रकार सेट करने की भी आवश्यकता है। /etc/fstabआपके द्वारा किए गए विभाजन के प्रकारों के बारे में जानकारी को देखने और चमकाने का प्रयास करें, फिर विकिपीडिया को अपनी विभाजन योजना के कोड में बदलने के लिए जाँचें।

जब से आप अपने फाइलसिस्टम का उपयोग करने में सक्षम होते हैं, यह संभावना है कि आपके ddकिसी भी इसे अधिलेखित करने के लिए नहीं मिला, क्योंकि फाइल सिस्टम के अधिकांश महत्वपूर्ण मोर्चे सामने हैं। /etc/fstabयह देखने के लिए जांचें कि आपके सिस्टम के किस हिस्से के लिए कौन से विभाजन अनुरूप हैं, और फिर आपके द्वारा मूल्यांकन ddकिए गए डेटा की मात्रा का उपयोग करें कि आपने कितना भुगतान किया है। यदि आप एक फाइलसिस्टम के केवल एक हिस्से को ओवरवोट करते हैं, तो एक अच्छा इसे ठीक करने में सक्षम fsck हो सकता है (लेकिन आपने डेटा का एक अच्छा हिस्सा खो दिया है)।

सबसे अधिक संभावना है, आपने ओवरवोट किया /boot। आपको अपने कर्नेल (साथ aptitude) को पुनर्स्थापित करना होगा और GRUB2 (साथ grub-install) को पुनर्स्थापित करना होगा (जो इसके पहले और दूसरे चरण को नष्ट कर दिया गया है)। GRUB2 को फ़ाइलों के साथ कॉन्फ़िगर किया गया है /etc, इसलिए आपको मैन्युअल रूप से कुछ भी पुनः बनाने की आवश्यकता नहीं होगी।


15
" /sys/block/sda/*/{start,end}इस जानकारी के साथ अपने विभाजनों की जाँच करें और पुनः बनाएँ": क्या आप इस पर थोड़ा विस्तार कर सकते हैं? यह एक तुच्छ कार्य नहीं है और यह आपके अन्यथा उत्कृष्ट उत्तर का मुख्य बिंदु प्रतीत होता है।
terdon

आउटपुट को समझने के लिए आसान है कि, प्रत्येक के बाद वापसी के साथ खोल में इन शीघ्र टाइप ...............: sudo parted, unit s, print all,quit
हन्नू

3
किसी भी मूल्यवान जानकारी को किसी अन्य ड्राइव (जैसे USB स्टिक) पर कॉपी करें जैसा कि आपको पता है। यदि विभाजन-मनोरंजन के किसी भी चरण में पूरी तरह से नहीं जाते हैं, तो आप अभी भी चल रहे कंप्यूटर की याद में क्या करना चाहते हैं, इसका रिकॉर्ड रखना चाहते हैं। इसके अलावा, आपकी सबसे मूल्यवान और / या छोटी फ़ाइलों (जैसे .bashrcआपके होम डायरेक्टरी से सामान और अन्य डॉट फाइलें, और सभी /etc, अपने वास्तविक डेटा के अलावा) को किसी अन्य डिस्क पर कॉपी करें , जबकि आपका चालू कंप्यूटर अभी भी काम कर रहा है । tar.gz संपूर्ण निर्देशिकाओं की प्रतिलिपि बनाने के लिए एक अच्छा प्रारूप है (क्योंकि यह अनुमतियाँ और सामान को संरक्षित करता है)।
पीटर कॉर्ड्स

उसे यह भी सुधारने की आवश्यकता होगी कि क्या था / बूट, जो उस तरह का खतरनाक है जब अनिश्चितता होती है कि कर्नेल आपके विभाजन लेआउट के बारे में क्या सोचता है ...
randandboneman

1
@rackandboneman कर्नेल माउंटेड विभाजन के साथ एक डिस्क पर विभाजन तालिकाओं को फिर से भरने से इंकार करता है। /bootइस तरह से सुधार करना पूरी तरह से "सुरक्षित" है ( इस स्थिति के बारे में सचमुच सब कुछ ) क्योंकि कर्नेल किसी भी चीज के बारे में अनिश्चित नहीं है।
HTNW

21

अपने कठिन भाग्य के बारे में पढ़ने के लिए क्षमा करें

मुझे लगता है कि आपके पास कोई वर्तमान बैकअप नहीं है, और मुझे आपके कठिन भाग्य का उपयोग करने के बारे में पढ़ने के लिए खेद है

sudo dd if=image.iso of=/dev/sdx

जहाँ आपने ड्राइव लेटर का उपयोग किया है x= aताकि आप अपनी हार्ड डिस्क ड्राइव की शुरुआत में ओवरराइटिंग कर रहे हों जहाँ आपने बहुत सारा मूल्यवान डेटा संग्रहीत किया हो।

आप पहले व्यक्ति नहीं हैं और मैं इस समस्या से प्रभावित अंतिम व्यक्ति से नहीं डरता। ddकई वेब साइटों पर इस तरह का उपयोग करने की सिफारिश की जाती है। यह एक शक्तिशाली लेकिन खतरनाक तरीका है, क्योंकि यह वही करता है जो आप इसे बिना किसी सवाल के करते हैं। इस कारण से इसे अक्सर 'डेटा डिस्ट्रॉयर' नाम दिया जाता है।

@marcelm टिप्पणी करता है, कि यह उपनाम अनुचित है। वह सही है कि एक डिवाइस फ़ाइल में सीधे लिखना क्योंकि रूट जोखिम पैदा कर रहा है । तो कृपया ध्यान रखें कि आप आसानी से एक ड्राइव को अधिलेखित कर सकते हैं और संबंधित डिवाइस फ़ाइल पर लिखकर मूल्यवान डेटा को नष्ट कर सकते हैं /dev/sdx। (इस उत्तर के अंत में सुरक्षित उपकरण सूचीबद्ध हैं।)

विभाजन तालिका, फ़ाइल सिस्टम और / या फ़ाइल सामग्री पुनर्प्राप्त करें

  • ड्राइव के साथ जितना संभव हो उतना कम करें, और सबसे ऊपर, इसे कुछ भी न लिखें, क्योंकि यह डेटा को ओवरराइट करके स्थिति को बदतर बना सकता है, जो अभी भी पुनर्प्राप्त करना संभव है।

  • यदि आपका डेटा मूल्यवान है, तो आपको एक क्लोन कॉपी पर काम करना चाहिए , न कि मूल (आंशिक रूप से अधिलेखित) ड्राइव पर। इस लिंक को देखें, 'एक विभाजन तालिका की उन्नत मरम्मत, फाइल सिस्टम और / या फाइलों की वसूली' के लिए नीचे स्क्रॉल करें।

    एक pendrive की विभाजन तालिका और फ़ाइल सिस्टम को सुधारें

  • यदि आपके पास GUID विभाजन तालिका, GPT है, तो ड्राइव के अंत में विभाजन तालिका का बैकअप है /dev/sda, और आप उपकरण का उपयोग करके इस बैकअप तालिका से मुख्य विभाजन तालिका को पुनर्स्थापित करने में सक्षम हो सकते हैं gdiskman gdiskविवरण के लिए मैनुअल देखें।

  • आप विभाजन तालिका और फाइल सिस्टम का उपयोग कर बहाल करने के लिए प्रबंधन कर सकते हैं TestDisk से

    http://cgsecurity.org

    CGSecurity वेब साइट पर निर्देशों को पढ़ें और @EldGeek द्वारा प्रदान किया गया लिंक, इंस्टॉल करने के बाद बिजली की हानि के बाद गायब हो गए

  • आप @CSM द्वारा उपलब्ध कराए गए लिंक के अनुसार gpart / gparted का उपयोग करके विभाजन तालिका और फ़ाइल सिस्टम को पुनर्स्थापित करने का प्रबंधन भी कर सकते हैं ,

    HOWTO: नष्ट किए गए विभाजन को हटाए गए या दूषित विभाजन तालिका में पुनर्स्थापित करें

  • PhotoRec : यदि आप विभाजन तालिका और फ़ाइल सिस्टम को पुनर्प्राप्त करने में विफल रहते हैं, तो आप अभी भी कुछ फ़ाइल डेटा पुनर्प्राप्त कर सकते हैं। सिर के सिरे की फाइलें, शायद 1-1.5 जीबी की हैं, ओवरराइट और खोई हुई हैं, लेकिन ड्राइव के उस हिस्से के पीछे की फाइलें अभी भी हैं। Http://cgsecurity.org से PhotoRec एक उपकरण है, जो फ़ाइल सिस्टम के बिना 'ड्राइव सतह से डेटा' को पुनर्प्राप्त कर सकता है। सामान्य फ़ाइल प्रकारों की शुरुआत में विशिष्ट डेटा पहचान के लिए उपयोग किया जाता है।

    निम्न लिंक PhotoRec के बारे में विवरण प्रदान करता है,

    https://www.cgsecurity.org/wiki/PhotoRec

    आपको फ़ाइलों को एक अलग ड्राइव में एक विभाजन में सहेजना चाहिए।

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

उबंटू के साथ यूएसबी बूट ड्राइव बनाने के लिए सुरक्षित उपकरण

भविष्य में, कृपया एक उपकरण का उपयोग करें जो आपको सही लक्ष्य डिवाइस को पहचानने और चुनने में मदद करता है और जिसमें एक अंतिम चेकपॉइंट है, ताकि आप यह जांच सकें कि आप आईएसओ फ़ाइल से सही लक्ष्य डिवाइस पर क्लोन करेंगे , उदाहरण के लिए

  • Ubuntu में: Ubuntu स्टार्टअप डिस्क निर्माता (Ubuntu 16.04 LTS और नए संस्करणों में),
  • लिनक्स में:

    • डिस्कस उर्फ gnome-disks,
    • mkusb ,
  • विंडोज में: Win32DiskImager

आप एक्स्ट्रेक्टिंग टूल्स का भी उपयोग कर सकते हैं , उदाहरण के लिए एक अंतिम चौकी प्रदान करते हैं


1
मैं cgsecurity के टेस्टडिस्क के लिए वाउच कर सकता हूं, अन्य विकल्पों की तुलना में बहुत बेहतर काम करता है, जो मैंने अतीत में आजमाए हैं, जहां टेस्टडिस्क एकमात्र ऐसा था जो उपयोगी कुछ भी करने में कामयाब रहा। लेकिन सावधान रहें, ड्राइव पर अपने विभाजन को ठीक करने की कोशिश करने के लिए थोड़ा कमीने वाला चूक जाता है !! xx
हैनसेनरिक

1
+1। मैं भी वाउच कर सकता हूं testdisk। इसके अलावा अपने / sda / sdb / जो भी एक अच्छा विचार है लिखने से रोकने के लिए एक आवरण स्क्रिप्टdd
विनयुनुच्स

19

आपकी ddआज्ञा से, आपने / dev / sda के विभाजन तालिका और छवि के आकार के रूप में दूर तक सभी डेटा ओवरवोट किया।

तो आप जो सबसे अच्छा प्राप्त कर सकते हैं, वह है अपने विभाजन तालिका (सटीक आकारों के साथ) को कम से कम / देव / sda के अंत में विभाजन को पुनर्प्राप्त करने के लिए।


1
यदि आप जानना चाहते हैं कि सटीक आकार कैसे प्राप्त करें, तो इस उत्तर का दूसरा पैराग्राफ देखें ।
wizzwizz4

16

बैकअप से रिस्टोर करने में कम, पूरी तरह से ठीक होने का कोई रास्ता नहीं है। डीडी ने विभाजन तालिका और डिवाइस के कुछ डेटा को ओवरराइट किया है।


19
मुझे लगता है कि मुझे तब अपने सभी आपदा वसूली बैकअप को फेंक देना चाहिए।
21

23
@ गाय गाय, बेशक यह एक जवाब है और निश्चित रूप से डेटा को पुनर्प्राप्त करने का कोई तरीका नहीं हो सकता है। जब आप डेटा को अधिलेखित करते हैं, तो इसका मतलब है: यह चला गया है।
21

22
@ ChaiT.Rex एक मिथक प्रतीत होता है, कम से कम किसी भी उपकरण पर जो आपको पिछले एक दशक में बने पीसी में मिलने की संभावना है।
डेविड श्वार्ट्ज

19
@ ChaiT.Rex यह केवल पूरी तरह से अधिलेखित डिस्क पर लागू होता है जहां डिस्क का केवल एक हिस्सा मिटा दिया जाता है। यदि पूरी डिस्क को मिटा दिया गया है या अधिलेखित कर दिया गया है, हालांकि, कोई डेटा रिकवरी नहीं है। विशेषज्ञ या नहीं।
थॉमस वार्ड Thomas

8
@BaaingCow जैसा कि आप जानते हैं कि डेटा को पुनर्स्थापित करने का एक तरीका होना चाहिए, कृपया हमें बताएं। बहुत से लोग आपकी तकनीक के लिए पैसे देने को तैयार होंगे!
टिम

9

यदि आप ड्राइव को अलग /और विभाजन में विभाजित करते हैं /home, और /homeविभाजन के बाद विभाजन था /, तो आप अपना डेटा पुनर्प्राप्त कर सकते हैं। एमबीआर जो सूचीबद्ध करता है जहां अधिकांश विभाजन ओवरराइट किए गए हैं। हालांकि, gparted आपके /homeविभाजन को पुनर्प्राप्त कर सकता है ।

उबंटू फ़ोरम पर यह पोस्ट यह कैसे करना है पर कुछ विचार देता है; मैंने पाया कि "gparted पुनर्प्राप्त विभाजन" की खोज करके।

एक बार जब आप अपना खोया हुआ विभाजन पा लेते हैं (एक विस्तारित विभाजन के अंदर हो सकता है), तो आपको इसे विभाजन तालिका में एकमात्र विभाजन के रूप में जोड़ना चाहिए।

एक बार जब आप ऐसा कर लेते हैं, तो आपको बरामद विभाजन को रखने के लिए कहकर लिनक्स को फिर से स्थापित करना होगा /home


2

बचाव के लिए Testdisk

मैं व्यक्तिगत रूप से Testdisk के लिए वाउच कर सकता हूं जिसने बार-बार कॉपी करने और निर्देशों को चिपकाने /dev/sdbऔर इसे बदलने के लिए मेरे डेटा को बचा लिया /dev/sddथा, जो कि मेरा यूएसबी था। केवल एक बार मैं इसे बदलना भूल गया और वहाँ /dev/sdbसे कूड़ेदान में चला गया ।

अपने सिस्टम को कभी भी लिखने के लिए सेट न करें /dev/sda

मैं दृढ़ता से एक आवरण स्क्रिप्ट बनाने की सलाह देता हूं: SSD या HDD को नष्ट करने से `dd` को रोकें । यह सुनिश्चित करता है कि आपके सामूहिक भंडारण उपकरणों ddको कभी भी /dev/sdaया संभवतः /dev/sdbया किसी अन्य को न लिखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.