Відновлення пошкодженої таблиці розділів на HD-машині часу


3

У мене були втрати потужності, коли я відновлював деякі дані з резервної копії Time Machine. Коли я повернув комп'ютер до резервного копіювання, мій диск від 4 Тб був непридатним, і OS X запропонував мені діалогове вікно, яке написало: "Вставний диск не читався на цьому комп'ютері".

Після групи читання та копання навколо я виявив, що проблема стосується таблиці розділів. І справді, коли я намагаюся подивитися на це, я бачу:

# sudo gpt -r -vv show disk2
gpt show: disk2: mediasize=4000787029504; sectorsize=512; blocks=7814037167
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Bad CRC in GPT table at sector 2
gpt show: disk2: Bad CRC in GPT table at sector 7814037134
   start        size  index  contents
       0           1         PMBR
       1  7814037166

Тут є кілька подібних питань щодо обміну стеками, і рішення, як правило, полягає в тому, щоб відновити GPT вручну, що все здається досить прямим. На щастя, у мене є доступ до ідентичного hd, який використовується як диск Time Machine, і ось що я бачу з цим:

     start        size  index  contents
         0           1         PMBR
         1           1         Pri GPT header
         2          32         Pri GPT table
        34           6         
        40      409600      1  GPT part - "EFI System Partition"
    409640  7813365344      2  GPT part - ""
7813774984      262150         
7814037134          32         Sec GPT table
7814037166           1         Sec GPT header

З огляду на це, здається, що відтворити GPT має бути просто. Однак, як тільки я додаю основний резервний розділ, я одразу отримую той самий діалог "Диск, який ти вставив, не читався", і якщо я роздруковую GPT, я отримую точно такі ж результати, як і розпочав - наче я ніколи не робив жодної роботи над цим.

Отже, для початку я розпочну зі створення структури GPT та розділу EFI:

# sudo gpt create -f disk2
# sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk2
disk2s1 added
# sudo gpt -r -vv show disk2
gpt show: disk2: mediasize=4000787029504; sectorsize=512; blocks=7814037167
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Pri GPT at sector 1
gpt show: disk2: Sec GPT at sector 7814037166
     start        size  index  contents
         0           1         PMBR
         1           1         Pri GPT header
         2          32         Pri GPT table
        34           6
        40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
    409640  7813627494
7814037134          32         Sec GPT table
7814037166           1         Sec GPT header

Поки що добре виглядає. Тепер я створюю другий розділ:

# sudo gpt add -b 409640 -i 2 -s 7813365344 -t 48465300-0000-11AA-AA11-00306543ECAC disk2
disk2s2 added
# sudo gpt -r -vv show disk2
gpt show: disk2: mediasize=4000787029504; sectorsize=512; blocks=7814037167
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Bad CRC in GPT table at sector 2
gpt show: disk2: Bad CRC in GPT table at sector 7814037134
   start        size  index  contents
       0           1         PMBR
       1  7814037166

І ось я знову там, де я почав. Щось мені не вистачає? У когось ще можна спробувати?

Дякую.

Редагувати. Зауважте, що якщо я використовую gdisk для того, щоб цей другий розділ був меншим за загальний (наприклад, 1 ТБ замість того, щоб зайняти іншу частину диска), я не бачу цього повідомлення про помилку і GPT не отримати магічний скидання.

# sudo gpt -r -vv show -l disk2
gpt show: disk2: mediasize=4000787029504; sectorsize=512; blocks=7814037167
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Pri GPT at sector 1
gpt show: disk2: Sec GPT at sector 7814037166
     start        size  index  contents
         0           1         PMBR
         1           1         Pri GPT header
         2          32         Pri GPT table
        34           6
        40      409600      1  GPT part - "EFI System Partition"
    409640  2147483648      2  GPT part - "Backup"
2147893288  5666143846
7814037134          32         Sec GPT table
7814037166           1         Sec GPT header

У цей момент він не встановиться, і запуск fsck_hfs повідомляє мені, що існує недійсна кількість блоків виділення, але, принаймні, вона автоматично не потрапляє у сміття. Чи це показово, що моя проблема полягає в тому, що я встановлюю межі цього другого розділу невірно?


Спробуйте знищити GPT: sudo gpt destroy diskX. Потім спробуйте повторити свої кроки, щоб створити новий GUIDpt і додати два розділи. Якщо це не вдалося, нуль перших 34 та останніх 33 блоків: sudo dd if=/dev/zero of=/dev/diskX count=34 bs=512і sudo dd if=/dev/zero of=/dev/diskX seek=7814037134 count=33 bs=512. Тут використовуйте належний diskX. Потім повторіть 3 дії, щоб відновити GUIDpt ще раз. diskX не повинен встановлюватися.
кланомат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.