У мене були втрати потужності, коли я відновлював деякі дані з резервної копії 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 повідомляє мені, що існує недійсна кількість блоків виділення, але, принаймні, вона автоматично не потрапляє у сміття. Чи це показово, що моя проблема полягає в тому, що я встановлюю межі цього другого розділу невірно?
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 не повинен встановлюватися.