किसी अन्य मशीन पर mdadm छापे 1 का हिस्सा होने वाली डिस्क पर डेटा माउंट / पुनर्प्राप्त करने के लिए कैसे?


18

कुछ पृष्ठभूमि

  • डिस्क अपने आप में एक दोस्त द्वारा "काम" किया गया था और कहा जाता है कि वह अभी भी बरकरार है, अप्रतिबंधित है और अभी भी माउंटेबल / अपूर्ण है
  • डिस्क उबंटू 12.04 पर एक सॉफ्टवेयर छापे 1 का हिस्सा था
  • मूल छापे 1 में अन्य डिस्क को स्वरूपित किया गया था और एक अन्य उद्देश्य के लिए उपयोग किया गया था, वर्तमान डिस्क (प्रश्न में एक) को छोड़कर अभी भी तकनीकी रूप से छापे का हिस्सा है जो अब मौजूद नहीं है

जो मैंने पहले से ही आजमाया हुआ है

  • बुनियादी बढ़ते

    • मैंने fstab में एक प्रविष्टि जोड़ दी, डिस्क को ext3 / ext4 के रूप में चिह्नित किया और माउंट करने का प्रयास किया।
    • बढ़ते जाने पर निम्न त्रुटि दिखाई देती है

      wrong fs type, bad option, bad superblock on

    • और dmesg में

      EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

  • मैंने डिस्क के फ़ाइल सिस्टम प्रकार को खोजने की कोशिश की है और साथ आया हूं

    $sudo file -s /dev/sdc
    /dev/sdc: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 63, 1953520002 sectors, code offset 0xb8

जहाँ मुझे कुछ मदद की ज़रूरत है / मेरे प्रश्न

  • क्या डेटा को नुकसान पहुंचाए बिना डिस्क को ext4 में बदलने का एक तरीका है?
  • क्या लिनक्स 83 फ़ाइल प्रकार डिस्क को माउंट करने और डेटा को पुनर्प्राप्त करने का एक सरल तरीका है?
  • मेरे पास वर्तमान में एक और डिस्क है जो किसी भी तरह से छापे का पुनर्निर्माण करने की संभावना है
  • मेरा मुख्य लक्ष्य डिस्क से डेटा को पुनर्प्राप्त करना है। मैं सभी विकल्पों के लिए खुला हूं।

अपडेट करें

कुछ कमांड का आउटपुट

  • fdisk -l / dev / sdc

    $fdisk -l /dev/sdc

    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0005ed9c

    Device Boot Start End Blocks Id System
    /dev/sdc1 63 1953520064 976760001 83 Linux

  • file -s / dev / sdc1

    $file -s /dev/sdc1
    /dev/sdc1: data

  • hexdump -C -n 32256 / dev / sdc (सुनिश्चित नहीं है कि यह मदद कर सकता है या नहीं)

    $hexdump -C -n 32256 /dev/sdc`
    00000000  fa b8 00 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |................|
    00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
    00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
    00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
    00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
    00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001b0  00 00 00 00 00 00 00 00  9c ed 05 00 00 00 00 fe  |................|
    000001c0  ff ff 83 fe ff ff 3f 00  00 00 82 59 70 74 00 00  |......?....Ypt..|
    000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
    00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00007e00
    

समस्या यह है कि विभाजन को लगता है कि उस पर कुछ छापे गए आयतन हैं, न कि कोई ext4fs। और कर्नेल सही है। हालाँकि जैसा कि यह एक छापे 1 था यह एक ext4fs होने के लिए होता है। a mount -f ext4 /dev/sdc1 /mountpointचाल करना चाहिए। फ़ाइल सिस्टम की तलाश करने के बजाय ext4 मानने के लिए माउंट को मजबूर करने के लिए क्या -f करता है
Bananguin

1
बल माउंट कोई त्रुटि नहीं देता है, लेकिन माउंट बिंदु रिक्त है। या तो डेटा चला गया है, या माउंट उम्मीद के मुताबिक काम नहीं किया है। एक कर dfपता चलता है कि मुझे नव डिस्क घुड़सवार उपयोग में 2% जो काफी कम उम्मीद से है।
एडम

@ user1129682, अगर माउंट कहता है कि यह ext4 नहीं है, तो यह नहीं है ... इसे लागू करने की कोशिश करने से यह मदद करने वाला नहीं है।
psusi

@psusi: मेरे लिए काम किया। गाइल्स का उत्तर बताता है कि यह कुछ परिस्थितियों में क्यों काम करता है
बानगुनिन

@Bananguin क्या आपका मतलब यह नहीं है mount -t ext4? -F झंडा 'नकली' बढ़ते (ubuntu 14.04) के लिए है।
क्वांटम

जवाबों:


13

यह Ubuntu 14.04 में उत्कृष्ट रूप से काम कर रहा है:

sudo -i
mdadm --assemble --scan

तुम्हे मिल जाएगा:

mdadm: /dev/md/1 has been started with 1 drive (out of 2)

फिर अपनी फ़ाइलें माउंट करें और देखें:

cd /mnt && mkdir to-restore-md1 && mount /dev/md1 to-restore-md1
ls -la to-restore-md1

"मौजूद था, लेकिन एक md सरणी नहीं है" एक असफल हार्ड ड्राइव पर था जो एक सरणी का हिस्सा था ... और यह अन्य सभी सुझावों से बेहतर काम करता था। सफलतापूर्वक माउंट किया गया, अभी डेटा को कॉपी करने में व्यस्त है।
ज़ेन एस हल्सल

इस विकल्प ने मेरे लिए अच्छा काम किया। RAID1 में 2 इंटेल एसएसडी। एक खींच लिया और sata बंदरगाह बंद suse linux पीसी के लिए। प्रारंभ में केवल /dev/sdcऔर जैसे ही दिखाई देता है /dev/md127। तब था mdadm --assemble --scanके परिणामस्वरूप जो /dev/md/Volume0_0p1और /dev/md/Volume0_0p2और इतने 4 विभाजन कि डिस्क पर थे करने के लिए इसी पर। P2 वह था जिसकी मुझे आवश्यकता थी: mkdir /p2 इसके बाद mount /dev/md/Volume0_0p2 /p2आरोहित किया गया था जो कि EXT3 था और मैं आसानी से डेटा तक पहुंच और कॉपी कर सकता हूं। इसने इसे पठन-पाठन के रूप में भी रखा।
रॉन

आपने मेरा दिन बना दिया! धन्यवाद!
गोआशन

कभी-कभी --scanमोड लापता डिस्क के साथ सरणियों को शुरू नहीं करता है, मेरे मामले में यहां मुझे ऑटो-इकट्ठे सरणी को रोकना और इसे फिर से शुरू करना थाmdadm --assemble --force /dev/md/1 /dev/sdc1
ब्रूनो जेसीएम

7

लिनक्स mdraid के कई मेटाडेटा प्रारूप हैं । प्रारूप 0.9 और 1.0 में मेटाडेटा युक्त डिवाइस के अंत में रखा गया है, और पेलोड (फाइलसिस्टम) डिवाइस की शुरुआत में शुरू होता है और सीधे छापे की परत से गुजरे बिना पहुँचा जा सकता है। फॉर्मेट्स 1.1 और 1.2 में क्रमशः डिवाइस के मध्य और शुरुआत में मेटाडेटा रखा गया है, इसलिए पेलोड एक ऑफसेट पर है।

उबंटू इंस्टॉलर 1.2 मेटाडेटा प्रारूप के साथ वॉल्यूम बनाता है, इसलिए आपका डेटा डिवाइस की शुरुआत के बजाय मेटाडेटा के बाद शुरू होता है।

उस डेटा तक पहुंचने का सबसे सरल तरीका है छापे उपकरण को इकट्ठा करना। RAID -1 वॉल्यूम में, एक एकल डिवाइस पर्याप्त है।

madadm -A /dev/sdc1

(जब तक आपको दर्द पसंद नहीं है, तब तक यहां रुकें।)

आप ऑफ़सेट पर डेटा भी एक्सेस कर सकते हैं। ऐसा करने के लिए मैं केवल एक ही बिंदु देख सकता हूं यदि आपको बहुत पुराने कर्नेल में काम करना है जो 1.x mdraid स्वरूपों का समर्थन नहीं करता है। सबसे पहले, ऑफसेट का निर्धारण करें mdadm -E /dev/sdc1: लाइन के लिए देखें Data Offset : SSS sectors। एक mdadm सेक्टर 512 बाइट्स है।

sectors=$(mdadm -E /dev/sdc1 | awk -F: '$1 ~ /Data offset/ {print $2}')
bytes=$(($sectors * 512))
losetup -f -o $bytes /dev/sdc1

हताशा में, 1.x प्रारूपों के साथ, डेटा ऑफसेट को मेटाडेटा के 128-135, छोटे-छोरों में संग्रहीत किया जाता है। डिवाइस की शुरुआत के बाद 1.2 मेटाडेटा 4096 बाइट्स है।

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

¹ या प्लेटफ़ॉर्म एंडियननेस के साथ? मुझे यकीन नहीं है।


डेटा अलग-अलग ऑफ़सेट्स पर शुरू हो सकता है (देखें mdadm -E /dev/sdc1जहाँ वास्तव में) लेकिन निश्चित रूप से 1.2 मेटाडेटा के लिए 4k पर नहीं, क्योंकि 4k ठीक है जहाँ मेटाडेटा संग्रहीत है। यह भी देखें unix.stackexchange.com/q/57477/22565
स्टीफन चेज़लस

@ स्टेफेनचैलेजस ऊप्स, हां, मस्तिष्क गोज़। धन्यवाद।
गिल्स एसओ- बुराई को रोकना '

3
mdadm -A /dev/sdc1आउटपुट mdadm: device /dev/sdc1 exists but is not an md array.मैं mdadm का उपयोग करने के लिए थोड़ा आगे बढ़ गया हूं और देखें कि क्या कोई अतिरिक्त जानकारी है ... mdadm --misc --examine /dev/sdc1आउटपुट mdadm: No md superblock detected on /dev/sdc1.। क्या कोई ऐसा तरीका है जो मैं इस डिस्क पर सुपरब्लॉक को फिर से लिख सकता हूं ताकि इसे RAID असेंबली के लिए उपलब्ध डिस्क के रूप में चिह्नित किया जा सके?
एडम

@ गिल्स ए mdadm -E /dev/sdcमेरे लिए निम्नलिखित विवरण देता है: /dev/sdc: MBR Magic : aa55 Partition[0] : 1953520002 sectors at 63 (type 83) लेकिन / देव / sdc1 के लिए कोई जानकारी नहीं
एडम

1
@ अदम अगर mdadm अपनी मेटाडेटा नहीं पा सकता है तो आप वहां कुछ भी नहीं कर सकते हैं: आप इसे कुछ करने के लिए मजबूर नहीं कर सकते क्योंकि यह नहीं जानता कि क्या करना है। आपको एक फाइल सिस्टम देखने की जरूरत है, और अगर साईसी की सलाह कहीं भी नहीं है, तो दृष्टिकोण धूमिल है। हो सकता है कि डिस्क के पहले कुछ किलोबाइट का एक हेक्सडंप किसी को प्रेरित कर सकता है (सावधान रहें कि यह कुछ गोपनीय डेटा को उजागर कर सकता है)।
गिलेस एसओ- बुराई को रोकना '

5

मेरे आश्चर्य के लिए, मैं केवल सबसे महत्वपूर्ण डेटा का उपयोग करके पुनर्प्राप्त करने में सक्षम था ।

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


मुझे एहसास हुआ कि यह कुछ समय पहले था! लेकिन क्या आपको याद है कि क्या आप विभाजन को बढ़ाए बिना सबसे आगे इस्तेमाल कर पाए हैं?
फिलीपोरिल्ली

क्षमा करें, मुझे अब इसका विवरण याद नहीं है। : /
एडम

3

ऐसा लगता है कि आप पहले से ही mdadm सुपरब्लॉक को टैप कर चुके हैं। यदि यह वहाँ हुआ करता था और 1.1 या 1.2 का प्रारूप था, तो सबसे अधिक संभावना है कि फाइलसिस्टम 2048 क्षेत्रों की भरपाई में है। आप e2fsck /dev/sdc1?offset=2048उस ऑफसेट पर शुरू होने वाले फाइल सिस्टम को देखने के लिए इसे मजबूर करने के लिए चला सकते हैं । यदि यह मिल जाता है तो आप अपनी विभाजन तालिका को संशोधित कर सकते हैं कि फाइल सिस्टम वास्तव में कहां शुरू होता है। आप सेक्टरों की इकाइयों का उपयोग करने के लिए parted /dev/sdcऔर unit sकमांड का उपयोग कर सकते हैं । printतालिका, प्रारंभ और अंत क्षेत्र पर ध्यान दें, फिर rmविभाजन, फिर mkpartउसी के साथ इसे फिर से बनाएँ और उपयोग करें, लेकिन ऑफसेट को प्रारंभ क्षेत्र में जोड़ें।

यदि 2048 काम नहीं करता है, तो आप 1985 की कोशिश भी कर सकते हैं।


रनिंग e2fsck /dev/sdc1?offset=2048(मैंने ऑफ़सेट = 1985 भी चलाया) आउटपुट के Bad magic number..Superblock invalid...साथ-साथ यह भी सुझाव देता है कि सुपरब्लॉक भ्रष्ट है और वैकल्पिक सुपरब्लॉक के साथ e2fsck चलाने की कोशिश कर रहा है। लगता है कि मुझे इसे आगे बढ़ने के लिए एक वैकल्पिक सुपरब्लॉक प्रदान करना चाहिए।
आदम

@ एडम, नहीं, आपको सिर्फ सही ऑफसेट प्राप्त करने की आवश्यकता है। testdiskएक विस्तृत स्कैन करने में सक्षम होना चाहिए और आपके लिए विभाजन तालिका को ठीक करना चाहिए।
Psusi

testdiskमेरे लिए पूरी तरह से नया क्षेत्र है। एक मूल रन (विश्लेषण) शो No ext2, JFS, Reiser.. marker. Bad relative sector. No partition is bootable.यह भी निम्नलिखित प्रदान करता है: 1 P Linux 0 1 1 121600 254 63 1953520002स्थिति की मदद करने के लिए मैं इसे कैसे समझ सकता हूं?
एडम

@ एडम, मैंने इसे कभी खुद इस्तेमाल नहीं किया है, मुझे पता है कि इसे स्कैन करने और सुपरब्लॉक खोजने में सक्षम होना चाहिए। आपने इसे पूरे डिस्क पर चलाया, विभाजन सही नहीं?
Psusi

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