टूटी हुई वर्चुअलबॉक्स मशीन .vdi से फाइलें पुनर्प्राप्त करें


23

जब मैं इस पर सॉफ़्टवेयर स्थापित कर रहा था तब मेरा Ubuntu 12.04.1 वर्चुअलबॉक्स पर चल रहा था और अब यह रिबूट नहीं हो रहा है । मुझे ऐसी फाइलें मिली हैं, जिनसे मुझे उबरने की जरूरत है। मेरे पास ubuntu64.vdiमेरे विंडोज 7 (होस्ट) लैपटॉप पर फ़ाइल है और मैं सोच रहा था कि क्या वीडी फ़ाइल से फ़ाइलों को पुनर्प्राप्त करने का कोई तरीका है।

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

मैं vdiएक काम में डिस्क की सूची में borked जोड़ सकते हैं । तब मैंने बोर्नड डिस्क को माउंट करने के लिए गनोम नॉटिलस का इस्तेमाल किया।

मैं वहां फाइलें ढूंढ सकता हूं, लेकिन वे लगभग 2 महीने पुरानी हैं। मुझे लगता है कि यह पिछली बार के साथ मेल खाता है कि मैंने मशीन का एक वर्चुअलबॉक्स स्नैपशॉट किया था, लेकिन आखिरी बार मुझे एक काम करने वाली मशीन नहीं मिली, जो कल थी। क्या vdiदुर्घटनाग्रस्त होने से ठीक पहले कल के बढ़ते जाने का कोई तरीका है ?

संपादित:

यहाँ Virtual Media Managerमुझे अपनी ubuntu64.vdiफ़ाइल के बारे में बताया गया है : यहाँ छवि विवरण दर्ज करें

EDITED2:

मैंने अपने ubuntu.vdiडिस्क पर बहुत सारे डिस्क स्थान के साथ एक बाहरी USB की प्रतिलिपि बनाई । मैंने इसे क्लोन करने के लिए विंडोज का उपयोग करने की कोशिश की, लेकिन एक त्रुटि मिली:

यहाँ छवि विवरण दर्ज करें

मैंने USB ड्राइव के साझा फ़ोल्डर के माध्यम से काम कर रहे वीएम से एक ही कोशिश की, और यह क्लोनिंग शुरू कर दिया। एक अच्छा समय लिया, लेकिन सफलतापूर्वक समाप्त हो गया:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

EDITED3:

कच्ची फ़ाइल बनाने के बाद, मैं testdiskसाथ चलता Deeper Searchहूं, मुझे एक सूची मिलती है: यहाँ छवि विवरण दर्ज करें

Ater Deeper Searchसमाप्त हो गया है, मुझे इस तरह एक सूची मिलती है:

यहाँ छवि विवरण दर्ज करें

लेकिन मुझे नहीं पता कि कौन सा स्नैपशॉट है ... कोई विचार?


@ तक्कत, जो अच्छा लगता है। मैं उसे कैसे कर सकता हूँ?
719016

@ तक्कत, मैंने इसे किया और इसे गनोम नॉटिलस का उपयोग करके माउंट किया, लेकिन मेरा मानना ​​है कि इसने मशीन के दो महीने पुराने संस्करण को माउंट किया।
719016

2
यहां समस्या यह नहीं है कि डिस्क को कैसे पुनर्प्राप्त किया जाए बल्कि इसे स्नैपशॉट के साथ विलय कैसे किया जाए। यदि आप अपने vdi को क्लोन करने की कोशिश करते हैं, तो यह एक और uuid होगा स्नैपशॉट इसके साथ काम नहीं करेगा और आप नवीनतम डेटा को ढीला कर देंगे। मैं नियमित रूप से स्नैपशॉट का उपयोग नहीं करता हूं क्योंकि मेरे पास अतीत में भ्रष्ट डिस्क हैं और मैं आधार डिस्क को पुनर्प्राप्त करने में सक्षम था, लेकिन हमेशा डेल्टा खो दिया। मुझे उम्मीद है कि यहां कोई व्यक्ति आधार और डेल्टा दोनों को पुनर्प्राप्त करने के लिए एक अच्छा नुस्खा देता है।
पाब्लो मारिन-गार्सिया

1
यह अगली बार के लिए है: कभी भी वर्चुअल मशीन पर डेटा स्टोर न करें, हमेशा एक बाहरी ड्राइव माउंट करें ... या इसके माध्यम से लगातार बैकअप / सिंक करें rsync
डी

1
सबसे हाल के स्नैपशॉट को क्लोन करने की कोशिश करें, मूल डिस्क नहीं। आपको उपयोग करना चाहिए Vboxmanage clonehd 2208...(सबसे हाल के यूयूआईडी की प्रतिलिपि यहां)। देखें serverfault.com/a/506581/195528
Rmano

जवाबों:


21

कमांड लाइन का

यदि हम एक मेजबान के रूप में उबंटू का उपयोग करते हैं तो हम अपनी .vdi डिस्क को निम्न कमांड के साथ एक कच्ची डिस्क में बदल सकते हैं:

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

फिर हम वर्चुअल ड्राइव की छवि पर फ़ाइलों को पुनर्प्राप्त करने के लिए इस फ़ाइल के साथ टेस्टडिस्क खोल सकते हैं Testdisk स्थापित करें(नीचे भी देखें):

testdisk <clone.raw>

एक वर्चुअल मशीन की

यदि टूटी हुई VDI ड्राइव छवि अभी भी वर्चुअल बॉक्स के साथ पंजीकृत है, तो हम इस छवि को अपनी नई वर्चुअल मशीन में ड्राइव के रूप में जोड़ने में सक्षम हो सकते हैं:

यहाँ छवि विवरण दर्ज करें

अपना वर्चुअल उबंटू शुरू करें जिसमें हमने टूटी हुई .vdi जोड़ी थी लेकिन ड्राइव को माउंट न करें

  1. कटे हुए डेटा (जैसे ~/rescued) को रखने के लिए वहां एक माउंटेड विभाजन पर एक निर्देशिका बनाएं ,

  2. वर्चुअल मशीन पर टेस्टडिस्क स्थापित करें Testdisk स्थापित करें

  3. वहाँ एक टर्मिनल से टेस्टडिस्क शुरू करें:

    sudo testdisk
    
  4. (यहां के लिए दिखाया गया है /sdb) से डेटा कटाई के लिए उपयुक्त ड्राइव चुनें और चुनें[Proceed]

    यहाँ छवि विवरण दर्ज करें

  5. उपयुक्त विभाजन लेआउट चुनें (आमतौर पर Intel)

  6. चुनें [Analyse]-[Quick Search]

  7. उस विभाजन का चयन करें जिसमें फसल काटने के लिए डेटा है (यहाँ केवल एक NTFS विभाजन मौजूद था):

    यहाँ छवि विवरण दर्ज करें

  8. P उस पार्टीटन पर फाइलों को सूचीबद्ध करने के लिए दबाएँ ।

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

  10. का उपयोग कर फसल के लिए निर्देशिका या फ़ाइलों का चयन करें : । सभी चयनित फ़ाइलों / निर्देशिकाओं को हरे रंग में चिह्नित किया जाएगा:

    यहाँ छवि विवरण दर्ज करें

  11. ऊपरी C निर्देशिका को सभी चयनित निर्देशिकाओं / फाइलों को बचाव निर्देशिका में कॉपी करने के लिए दबाएं , जिसे अगले चरण में चुना जाएगा।

  12. बचाया डेटा रखने के लिए अपने Ubuntu VM के माउंटेड पार्टीशन पर एक निर्देशिका चुनें:

    यहाँ छवि विवरण दर्ज करें

  13. c अपने स्वस्थ वीएम में हमारी बचाव निर्देशिका के लिए टूटे हुए .vdi से डेटा की नकल शुरू करने के लिए दबाएं ।

टिप्पणियाँ:

  • मामले में हम अपनी फ़ाइलों को [Quick Search]विकल्प 6 में नहीं देख सकते हैं [Deeper Search]। हमें प्रदर्शन करना पड़ सकता है । यह पिछले हटाए गए और अधिलेखित विभाजन को भी सूचीबद्ध करेगा। इसलिए हमें यह सुनिश्चित करने की आवश्यकता है कि हम उन उपयुक्त विभाजनों का चयन करें जहां हमारा डेटा रहता है।

  • अगर हमने .vdi का स्नैपशॉट ले लिया है, तो हम इन्हें पा सकते हैं, ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdkलेकिन जब भी हमने वर्चुअल बॉक्स के स्नैपशॉट फीचर का इस्तेमाल किया होगा, तो स्नैपशॉट से किसी भी बदलाव को एक अंतर फाइल में लिखा जाएगा।

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

    VBoxManage clonehd <name_of_source> <clone>
    

    फिर हम ऊपर दिखाए गए अनुसार हमारे बचाव वीएम के लिए क्लोन बांधते हैं।

  • टूटी हुई .vdi को लिखना डेटा सुरक्षित होने के बाद ही किया जाना चाहिए क्योंकि इससे फाइल सिस्टम को और नुकसान हो सकता है।

  • यदि हमारा बचाव उबंटू बचा हुआ डेटा रखने के लिए बहुत छोटा है तो हम वीएम से जुड़ने के लिए एक और नया वर्चुअल ड्राइव बना सकते हैं। इस ड्राइव को तब वीएम में माउंट किया जाना है ताकि वहां टेस्टडिस्क से डेटा को बचाया जा सके।


इन शानदार विस्तृत निर्देशों के लिए धन्यवाद। मैंने उनका सही तरीके से पालन किया और फाइलों को अपने बचाया फ़ोल्डर में कॉपी करने के लिए जोड़ा। नकल सफल रही लेकिन फाइलों का टाइमस्टैम्प काफी पुराना था: दो दिन पहले की बजाय 2013 की गर्मी। मुझे याद नहीं है कि मैंने कुछ विशेष रूप से 8 महीने पहले किया था, लेकिन पहली नज़र में, दो दिन पहले की मेरी फाइलें नहीं थीं। मैं अब Deeper Searchइसे फिर से ब्राउज़ करने के लिए उपयोग कर रहा हूं ।
719016

@ 213441265152351 - स्नैपशॉट फ़ोल्डर पर भी एक नज़र है ... एक नया .vmdk हो सकता है (कम से कम यह मेरे सिस्टम के साथ यहां था)। आशा है कि आपको अपना डेटा मिल जाएगा :)
Takkat

मैंने Deeper Searchकुछ घंटों के बाद किया, फिर से जिन सामग्रियों को मैं पुनर्प्राप्त करना चाहता था, उन्हें फिर से ब्राउज़ किया: वे अभी भी आभासी मशीन के एक ग्रीष्मकालीन 2013 संस्करण की ओर इशारा कर रहे हैं, इससे पहले कि सिर्फ ग्नोम नॉटिलस के साथ विभाजन को बढ़ाना, जो मुझे एक जीवित दे रहा था। 2014 संस्करण, लेकिन अभी भी दो दिन पहले से फ़ाइलों को खोजने में सक्षम नहीं है।
719016

1
@ 213441265152351: अच्छी तरह से तब और अधिक जटिल है। यह हो सकता है कि "क्रैश" होने पर ड्राइव में अलग-अलग छवियां अभी तक उचित रूप से नहीं लिखी गई थीं। आप वर्चुअल मीडिया मैनेजर से डिस्क पर एक नज़र डालने की कोशिश कर सकते हैं (देखें virtualbox.org/manual/ch05.html#diffimages ) यह देखने के लिए कि क्या मामला था, लेकिन मेरा कहना है कि तब मेरे पास अच्छा नहीं होगा इन छवियों से डेटा को पुनर्प्राप्त करने के बारे में विचार करें।
ताकत

2
@ रमनो: वास्तव में एक क्लोन वीडीआई में कोई स्नैपशॉट शामिल नहीं होगा, लेकिन वीएम का अंतिम वर्तमान राज्य होगा जिसमें अंतर विलय होगा। केवल उसी स्थिति में जब हमें पहले के स्नैपशॉट को क्लोन करने की आवश्यकता होती है, हम एक स्नैपशॉट वीडीआई का उपयोग क्लोन करने के लिए कर सकते हैं, लेकिन बाद में स्नैपशॉट की तुलना में सभी परिवर्तन क्लोन में शामिल नहीं होंगे।
तक्षक

5

1) UUID द्वारा स्नैपशॉट पुनर्प्राप्त करने का प्रयास करें, हैक का उपयोग करें:

  • उस राज्य का UUID चुनें, जिसे आप पुनर्प्राप्त करना चाहते हैं।
  • खुली फ़ाइल .xml, अधिमानतः एक उपकरण (इंटरनेट एक्सप्लोरर काम करता है) जो XML फ़ाइल के आसान नेविगेशन की अनुमति देता है।
  • स्टोरेज कंट्रोलर सेक्शन में, बहुत सी स्थिति में, वर्तमान स्थिति का UUID ढूंढें और StorageController नाम =, टाइप = और अटैच्डडेविस टाइप =, पोर्ट = और डिवाइस = सेटिंग्स को नोट करें।
  • बीच में, इच्छित स्नैपशॉट ढूंढें।
  • स्नैपशॉट के संग्रहण नियंत्रक अनुभाग में, अटैच्डवाइस को उन मानों (नाम / प्रकार / टाइप / पोर्ट / डिवाइस) के साथ खोजें जो ऊपर दिए गए मानों से मेल खाते हों।
  • वह छवि UUID हार्ड डिस्क के लिए स्नैपशॉट छवि की पहचान करता है। {} कोष्ठक निकालें, और

कमांड दर्ज करें C:> VBoxManage clonehd <UUID> CloneDisk.vdi

आशा है कि यह मदद करता है, मैं यहाँ समाधान पाया: ( https://forums.virtualbox.org/viewtopic.php?t=791 )

2) यदि चरण 1 में) काम नहीं करता है, तो एक और कदम उठा सकता है। डिस्क की वर्तमान स्थिति को कैसे क्लोन करें:

  • वर्चुअल मीडिया मैनेजर खोलें (मेनू: फ़ाइल> वर्चुअल मीडिया मैनेजर)।
  • उस हार्ड डिस्क पर नेविगेट करें जिसे आप क्लोन करना चाहते हैं और पेड़ का पूरी तरह से विस्तार करना चाहते हैं (संख्यात्मक कीपैड पर * कुंजी का उपयोग करें)।
  • {HexUUID} .vdi फ़ाइल जो वीएम से जुड़ी है उसे आप वर्तमान स्थिति का क्लोन बनाना चाहते हैं। यह (एक) एक शाखा के अंत में पत्ती फ़ाइलों में से एक होगा। जब आप इसे चुनते हैं, तो विंडो के नीचे स्थित 'अटैच्ड टू:' टेक्स्ट कहेगा: 'अटैच्ड टू:', इसके बाद किसी भी (स्नैपशॉट नाम) के बिना ब्रैकेट में।
  • विंडो के निचले भाग में प्रदर्शित 'स्थान:' के दाईं ओर फ़ाइल नाम पर क्लिक करें।
  • Ctrl + C / पाठ को क्लिपबोर्ड पर कॉपी करने के लिए कॉपी करें, जो कुछ इस प्रकार होगा: (पथ) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Ctrl + V / Paste और hexUUID मान ({} कोष्ठक को हटाकर) निकालें और इसे क्लोन करने के लिए क्लोन चलाएं!

थि समाधान यहाँ से है: ( http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) दोनों ज्यादातर एक ही के बारे में बोलते हैं।


1

मेरे पास एक लिनक्स सिस्टम भ्रष्ट था /और fsckइसे ठीक नहीं कर सका । मैंने निम्नलिखित सरल दृष्टिकोण का उपयोग किया:

  1. मशीन में एक नया प्रतिस्थापन VDI जोड़ें।
  2. एक नया लिनक्स आईएसओ डाउनलोड करें।
  3. आपके (1) में जोड़े गए डिस्क पर एक नया लिनक्स बूट करें और इंस्टॉल करें।
  4. अपने नए सिस्टम पर डिस्क को माउंट करें और अपनी ज़रूरत की फ़ाइलों को कॉपी करें। आमतौर पर, इसका मतलब /home/user/फ़ोल्डर की प्रतिलिपि बनाना है । छिपी हुई फ़ाइलों (सेटिंग्स फ़ाइलों) को कॉपी करना याद रखें।

मेरे लिए अच्छा काम किया। डिस्क भ्रष्टाचार केवल बूट बाधा था, मेरे होम फ़ोल्डर में कोई डेटा हानि नहीं थी।

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