मैक हार्ड ड्राइव विभाजन को Fdsik_partition_scheme के रूप में कैसे ठीक करें


8

मेरी स्थिति बहुत हद तक MBR को भ्रष्ट GUID हार्ड ड्राइव को ठीक करने के समान लगती है, लेकिन पर्याप्त अंतरों के साथ जो मैं एक आश्वस्त समाधान नहीं कर पाया।

मेरे पास USB एनक्लोजर में 3TB तोशिबा ड्राइव है जिसका इस्तेमाल OS X El Capitain 10.11.3 के साथ Mac पर किया जा रहा है।

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

ड्राइव ने सामान्य रूप से लंबे समय तक काम किया लेकिन फिर हाल ही में पहचाना जाने में विफल रहा। डिस्क उपयोगिता के साथ जांच करने पर, यह दर्शाता है कि एक विभाजन प्रकार की FDisk_partition_scheme है । मुझे यकीन है कि यह मूल रूप से ओएस एक्स एक्सटेंडेड (जर्नलेड) के रूप में स्वरूपित GUID विभाजन मानचित्र का विशिष्ट डिफ़ॉल्ट था ।

मैं किसी भी विशिष्ट उपयोग या घटना के बारे में नहीं सोच सकता जो बदलाव का कारण हो सकता है।

इस जानकारी को मैंने ड्राइव से एकत्र किया है।

diskutil list / dev / disk6

/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *3.0 TB     disk6
   1:                       0xEE                         375.1 GB   disk6s1

diskutil की जानकारी / dev / disk6

   Device Identifier:        disk6
   Device Node:              /dev/disk6
   Whole:                    Yes
   Part of Whole:            disk6
   Device / Media Name:      DT01ABA300

   Volume Name:              Not applicable (no file system)

   Mounted:                  Not applicable (no file system)

   File System:              None

   Content (IOContent):      FDisk_partition_scheme
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Not Supported

   Total Size:               3.0 TB (3000592982016 Bytes) (exactly 5860533168 512-Byte-Units)
   Volume Free Space:        Not applicable (no file system)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (no file system)

   Device Location:          External
   Removable Media:          No

   Virtual:                  No
   OS 9 Drivers:             No
   Low Level Format:         Not supported

fdisk / dev / disk6

Disk: /dev/disk6    geometry: 97451/255/63 [1565565872 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -  732566645] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

जीपीटी रिकवरी / देव / डिस्क 6

gpt recover: /dev/disk6: no primary or secondary GPT headers, can't recover

gpt -r -vv शो / देव / डिस्क 6

gpt show: /dev/disk6: mediasize=3000592982016; sectorsize=512; blocks=5860533168
gpt show: /dev/disk6: PMBR at sector 0
       start        size  index  contents
           0           1         PMBR
           1  5860533167

gdisk / dev / disk6

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

यहाँ wxHexEditor में ड्राइव के पहले भाग का स्क्रीन शॉट है। EFI PART 4096 से शुरू होता है।

WxHexEditor में ड्राइव की शुरुआत

मैंने HFSJ स्ट्रिंग की तलाश 409642 की ऑफसेट से शुरू की, जैसा कि अन्य उत्तरों में सुझाया गया है, लेकिन इसे वहां नहीं मिला। इसलिए मैंने ड्राइव की शुरुआत से खोज शुरू की और ऑफसेट 314598400 पर पहली घटना को पाया।

हालाँकि, अगर मैं HFSJ की घटनाओं को खोजता रहता हूं, तो मुझे उनमें से बहुत कुछ ऐसा लगता है जो बिल्कुल एक जैसे हैं और उनके आसपास बहुत सारे शून्य स्थान हैं, जैसे पहले। वे 360424448 से शुरू होते हैं और 32768 से अलग हैं। उदाहरण के लिए, ऑफ़सेट्स 360424448 360457216 360489984 360522752 360555520 पर

मैंने wxHexEditor में फाइंड ऑल सर्च का इस्तेमाल किया और कुछ मिनटों के बाद रुक गया। यह उस समय कुछ हज़ार मिला था। मुझे यकीन नहीं है कि उन का क्या बनाना है, अगर कुछ भी।

मैं 3000592961536 पर ऑफसेट में EFI सिस्टम विभाजन नामक एक खंड को खोजने में सक्षम था। यह उस नाम को भी दिखाता है जो ड्राइव में था, "रोज़ी"।

यहां पहले HFSJ विभाजन और EFI सिस्टम विभाजन के स्क्रीन शॉट्स हैं। टिप्पणियों के आधार पर ऑफसेट 8192 का स्क्रीन शॉट जोड़ा गया।

पहले HFSJ विभाजन, EFI विभाजन अंत में, और ऑफसेट 8192।

किसी भी मदद के लिए धन्यवाद।


यदि आपकी डिस्क में 4096 बाइट्स का ब्लॉक आकार दिखाई देता है और अब 512 बाइट्स का आकार है। चूँकि डिस्क पर स्वयं ब्लॉक आकार संग्रहीत नहीं है, तो मेरा प्रश्न होगा: क्या आपने हार्डवेयर को किसी भी तरह से बदल दिया है? इसके अलावा, यदि ब्लॉक का आकार 4096 बाइट्स था, तो आपको 8192 बाइट्स पर शुरू होने वाली पुरानी जीपीटी टेबल प्रविष्टियों को पढ़ने में सक्षम होना चाहिए। अब तक, आपने केवल GPT हेडर को 4096 बाइट्स पर शुरू किया है। यहां दी गई जानकारी का उपयोग करके हेक्स डंप को सही दशमलव मानों में बदला जा सकता है
डेविड एंडरसन

@DavidAnderson, हार्डवेयर ने इसमें बदलाव किया कि ड्राइव एक अलग USB केस में है। मुझे मूल मामला मिल सकता है अगर वह कुछ भी मदद करता है।
डग स्मिथ

@DavidAnderson मैंने ऑफ़सेट 8192 में जोड़ने के लिए स्क्रीन शॉट को बदल दिया। यह वहाँ EFI सिस्टम विभाजन दिखाता है ।
डग स्मिथ

@klanomath हां, आपका जुड़ा हुआ उत्तर सही था। मैंने ब्लॉक और ऑफसेट को मिलाया। यह ऑफसेट 209736704 के आसपास सभी शून्य है, हालांकि। मैंने यह भी विभाजित करने की कोशिश की कि 8 (26217088) मामले में 4096 ब्लॉक आकार का मुद्दा था। यह मुझे बहुत सारे डेटा में रखता है, लेकिन देखने में कोई HFSJ स्ट्रिंग नहीं है।
डग स्मिथ

@klanomath, मैंने आपकी प्रक्रिया के माध्यम से शुरुआत की थी। पहले 40 ब्लॉकों को अधिलेखित करने के मेरे प्रयास ने वास्तव में कोई डेटा नहीं लिखा:0+0 records in 0+0 records out 0 bytes transferred in 0.000013 secs (0 bytes/sec)
डग स्मिथ

जवाबों:


9

कृपया निम्नलिखित प्रयास कीजिए:

  • अपने बाहरी 3 टीबी ड्राइव की डिस्क पहचानकर्ता प्राप्त करें

    diskutil list
    

    नीचे मैं मानती हूं कि डिस्क पहचानकर्ता डिस्क 6 है

  • डिस्क को अनमाउंट करें:

    diskutil umountDisk disk6
    
  • पहले 40 ब्लॉकों को अधिलेखित करें:

    sudo dd if=/dev/zero of=/dev/disk6 bs=512 count=40
    
  • एक नया gpt बनाएँ:

    sudo gpt create /dev/disk6
    
  • इसके साथ डिस्क जानकारी की जाँच करें:

    diskutil info /dev/disk6
    

    अपने आप को आश्वस्त करें कि डिवाइस ब्लॉक का आकार अभी भी 512 बाइट्स है

    आप भी उपयोग कर सकते हैं

    sudo gpt -r show /dev/disk6
    

    यदि gpt दिखाता है:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
    

    आपके पास एक डिस्क और डिस्क नियंत्रक है जो 512 बाइट्स के एक तार्किक ब्लॉक आकार की रिपोर्ट करता है। कृपया अगले चरण के साथ जारी रखें।

    यदि gpt दिखाता है:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2           4         Pri GPT table
    

    आपके पास एक डिस्क और डिस्क नियंत्रक है जो 4096 बाइट्स के एक तार्किक ब्लॉक आकार की रिपोर्ट करता है। कृपया यहाँ रुकें और एक टिप्पणी जोड़ें।

  • पहले EFI प्रविष्टि का पुनर्निर्माण करें:

    sudo gpt add -b 40 -i 1 -s 614400 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    

    डिस्क के आकार और सिस्टम संस्करण के आधार पर अलग-अलग आकार के EFI वॉल्यूम बनाए जाते हैं यदि डिस्क यूटिलिटी के साथ विभाजन किया जाता है: या तो आकार 200 MiB के साथ या 300 MiB के साथ एक। यहां यह स्पष्ट है कि आपकी डिस्क में 300 MiB EFI और संभवतः बिना डिस्क वाले डिस्क स्थान की 4096 बाइट्स हैं: (314598400-1024) / 512 = 614448 (= प्रारंभ ब्लॉक मुख्य मात्रा) 614448-40-8 = 614400 (= EFI का आकार)

  • इसके साथ अपनी मुख्य मात्रा का पुनर्निर्माण करें:

    sudo gpt add -b 614448 -i 2 -s SizeOfVolume1 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

    मुख्य मात्रा का आकार दूसरी GPT तालिका की पहली (दूषित और पुरानी) प्रविष्टि द्वारा निर्धारित किया जा सकता है: (3000592961536/512) = 5860533128 इसकी ब्लॉक संख्या है। फिर आकार की गणना 5860533128-614448 = 5859918680 ब्लॉक द्वारा की जाती है। चूंकि 5859918680 8 (4096 भौतिक ब्लॉक आकार / 512 तार्किक ब्लॉक आकार) से विभाजित करने योग्य है, इसलिए यह वॉल्यूम आकार के लिए एक अच्छा अनुमान है।

    सबसे अच्छा अनुमान अंत में है:

    sudo gpt add -b 614448 -i 2 -s 5859918680 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

    दूसरा सबसे अच्छा अनुमान है:

    sudo gpt add -b 614448 -i 2 -s 5859918672 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    
  • संभवतः आपकी खोई हुई मात्रा अब बढ़ गई है। इसके साथ वॉल्यूम सत्यापित करें:

    diskutil verifyVolume disk6s2
    

    यदि आवश्यक हो तो वॉल्यूम को ठीक करने की कोशिश करें।

    diskutil repairVolume disk6s2
    

चूंकि आपने "दूषित" डिस्क को एक अलग मामले में स्थानांतरित किया था और डिस्क नियंत्रक तार्किक ब्लॉक आकार को संशोधित किया था। पुराना विभाजन नक्शा संभवतः 4096 बाइट्स के तार्किक ब्लॉक आकार पर आधारित है।

पुराने (4096b) मामले में विभाजन का नक्शा पुनर्प्राप्त करने के लिए आपको GPT (डेविड एंडरसन के उत्तर पर आधारित) को पुनर्स्थापित करने के लिए निम्नलिखित दर्ज करना होगा:

  • एक नया gpt बनाएँ:

    sudo gpt create /dev/disk6
    
  • पहले EFI प्रविष्टि का पुनर्निर्माण करें:

    sudo gpt add -b 6 -i 1 -s 76800 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    
  • इसके साथ अपनी मुख्य मात्रा का पुनर्निर्माण करें:

    sudo gpt add -b 76806 -i 2 -s 732457067 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    
  • अंतिम विभाजन का नक्शा इस तरह दिखता है:

     sudo gpt -r show disk1
           start        size  index  contents
               0           1         PMBR
               1           1         Pri GPT header
               2           4         Pri GPT table
               6       76800      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           76806   732457067      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
       732533873       32768         
       732566641           4         Sec GPT table
       732566645           1         Sec GPT header
    

4096b भाग के आधार पर डिस्क को 512b तार्किक ब्लॉक आकार मामले में डिस्क को स्थापित करने के बाद "retranslates":

  • एक नया gpt बनाएँ:

    sudo gpt create /dev/disk6
    
  • पहले EFI प्रविष्टि का पुनर्निर्माण करें:

    sudo gpt add -b 48 -i 1 -s 614400 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    
  • इसके साथ अपनी मुख्य मात्रा का पुनर्निर्माण करें:

    sudo gpt add -b 614448 -i 2 -s 5859656536 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

यह मेरे उत्तर के पहले (स्वीकृत) भाग से भिन्न है लेकिन उचित है! चूँकि EFI वास्तव में "खाली" है और 262144 असंबद्ध ब्लॉकों में केवल शून्य हैं, "पहले और किसी तरह गलत" उत्तर मात्रा के संचालन को प्रभावित नहीं करता है।


2

यह एक उत्तर नहीं है, बल्कि आपके द्वारा प्रस्तुत डेटा से GPT विभाजन की जानकारी निकालने का एक उदाहरण है। द्वितीयक (बैकअप) GPT विभाजन प्रविष्टियों का उपयोग किया गया था क्योंकि आपने प्राथमिक GPT विभाजन प्रविष्टियों की सामग्री पोस्ट नहीं की थी। डेटा की व्याख्या करने के लिए दस्तावेज़ " GUID विभाजन तालिका " का उपयोग किया गया था।

अंतिम उपयोग योग्य LBA GPT हेडर में पाया जा सकता है। यह पता 8244 पर होता है। मान है

70 14 aa 2b 00 00 00 00 little endian = 0x2baa1470 = 732566640 @ 4096 bytes/block.

सेकंडरी (बैकअप) जीपीटी प्रविष्टियों की शुरुआत अगले ब्लॉक पर शुरू होती है। मान है

(732566640 + 1) * 4096 = 3000592961536 bytes.  

ईएफआई विभाजन तालिका प्रविष्टि की शुरुआत के रूप में इसका उपयोग करते हुए, मुझे निम्नलिखित मूल्य मिलते हैं। 3000592961568 पते पर मिलने वाले EFI विभाजन की शुरुआत होती है

06 00 00 00 00 00 00 00 little endian = 0x6 = 6 @ 4096 bytes/block.

3000592961576 पते पर पाया गया ईएफआई विभाजन का अंत, है

05 2c 01 00 00 00 00 00 little endian = 0x12c05 = 76805 @ 4096 bytes/block.

जो विभाजन का आकार देता है

76805 - 6 + 1 = 76800 @ 4096 bytes/block.

3000592961696 पते पर पाया गया एचएफएस विभाजन की शुरुआत है

06 2c 01 00 00 00 00 00 little endian = 0x12c06 = 76806 @ 4096 bytes/block.

HFS विभाजन का अंत, पता 3000592961704 पर मिला, है

70 94 a9 2b 00 00 00 00 little endian = 0x2ba99470 = 732533872 @ 4096 bytes/block.

जो विभाजन का आकार देता है

732533872 - 76806 + 1 = 732457067 @ 4096 bytes / block.

यदि आप 512 बाइट्स के ब्लॉक आकार का उपयोग करने जा रहे हैं, तो उपरोक्त परिणामों को 512 बाइट्स / ब्लॉक में बदलने के लिए 8 के मान से गुणा करना होगा।


+1 हमें EFI के लिए एक समान आकार और स्टार्ट ब्लॉक मिलता है और एक समान स्टार्ट ब्लॉक लेकिन मुख्य वॉल्यूम का एक अलग आकार।
क्लानोमथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.