Як виправити зламаний розділ EFI?


24

У мене є iMac під управлінням OSX Lion. Я також встановив bootcamp та Windows 7. Під час встановлення Windows 7 я не звертав повної уваги та видаляв та відформатував розділ EFI.

Я не дуже усвідомлював значення цього, оскільки машина продовжувала працювати нормально, завантажуючи і Windows, і OSX.

Я помітив, що оновлення прошивки EFI не вдалося встановити, але це не враховувало.

Однак зараз я хочу встановити Mountain Lion і є ціла купа проблем. Гірський лев не встановиться без дійсного розділу EFI.

Ось мій таблиця розділів.

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                  Apple_HFS EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                200.3 GB   disk0s4

Як ви бачите, я мав намір виправити розділ EFI за допомогою наступної команди:

newfs_hfs -v EFI / dev / disk0s1

Схоже, це не створило правильний тип розділу, він створив Apple_HFS замість EFI.

Моє запитання (без форматування диска), як створити розділ EFI?

Спасибі Річ


Дивіться також цю відповідь, щоб змінити тип розділу: apple.stackexchange.com/a/342139/14586
mivk

Відповіді:


31

Ви можете відтворити системний розділ EFI (ESP) за допомогою інструмента командного рядка gpt. Він повинен починатися з сектору 40, і він повинен бути 409600 секторів (рівно 200MiB). Тип запису GPT повинен бути C12A7328-F81F-11D2-BA4B-00A0C93EC93B, а якщо у вас є гібридний MBR, той тип повинен бути EE. Формат - це фактично підмножина FAT, а не HFS +. Ви можете читати GPT за допомогою команди sudo gpt -r show disk0у вікні терміналу, це дає результат, який виглядає приблизно так:

      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  447801712      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  448211352    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  449480888   40753831         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

Ви можете бачити правильний розділ EFI в індексі 1. Якщо цей рядок не відповідає точно, найпростіший спосіб - видалити розділ на його місці і відтворити його.

Переконайтеся, що ви знаєте, що ви робите, перш ніж виходити звідси - ви можете втратити дані, якщо зіпсуєте.

Ви не можете редагувати таблицю розділів, використовуючи gptпід час встановлення розділів на диску, тому вам потрібно буде завантажитися з іншого диска (наприклад, USB-накопичувача з інсталятором OSX) або запустити mac у режимі цільового диска та виконати розділення з ще один мак. Можливо, вам доведеться вимкнути будь-які автоматично встановлені томи, які використовуються diskutil unmountDisk disk0перед тим, як перейти між ними та між ними .

Щоб видалити "поганий" розділ EFI, запустіть цю команду:

sudo gpt remove -i 1 disk0

Переконайтесь, що disk0 - це дійсно той диск, який ви хочете змінити - цифри можуть змінюватися між перезавантаженнями. Крім того, це буде працювати лише в тому випадку, коли у вас вже є не ESP-розділ на місці ESP - якщо ні, видалення розділу 1 може бути катастрофічним! У цьому випадку вам потрібно буде перемістити індекси вздовж, оскільки я думаю, що у ESP повинен бути індекс 1. У звуковій формі це не буде потрібно у вашому випадку.

Після видалення повторно додайте розділ із правильним компонуванням та введіть:

sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

Це має розібрати сам розділ, але, як ви створили на його місці HFS-розділ, вам також потрібно виправити його формат.

Формат EFI System Partition тут задокументований Apple . Як бачите, вони рекомендують клонувати наявний ESP, а не відтворювати файлову систему за допомогою newfs_msdos. Якщо у вас є зовнішній накопичувач із таблицею розділів GPT (у нього має бути стик для встановлення OSX), ви можете його клонувати.

Переконайтеся, що ви правильно встановили номери своїх дисків і розділів або можете перезаписати дані:

Якщо disk1 - ваш зовнішній диск, і він містить ESP як перший розділ (disk1s1), а disk0 - це привід, ESP (disk0s1), який ви хочете виправити, виконайте цю команду:

sudo dd if=/dev/disk1s1 of=/dev/disk0s1

Це скопіює кожен блок ESP диска1 та замінить відповідний блок у ESP диска0.

Крім того, візьміть азартну гру newfs_msdos.


Дякую за дуже детальну відповідь. Зрештою мені вдалося виправити свою проблему за допомогою iParition. Однак читання вашого методу, схоже, є точним методом, який я шукав, якщо iParition не існувало. Ще раз дякую, я відзначаю це правильною відповіддю.
Багатий

Цей метод спрацював для мене чудово 10,6 після того, як GParted клонував ESP для блокування 2048 на SSD. Завантажуючи інсталяційний диск і слідуючи вищесказаному, я ddзберігав клонований ESP у файлі, перш ніж видаляти, відновлювати і записувати його назад. Спасибі!
Нік Вестгейт

Працював чудово на моєму mbp з гібридним приводом ssd. EFI був перезаписаний установкою grub, і цей метод відмінно працював, щоб повернути його.
sean_m

Дякую, що поділились. Щоб зберегти введення тексту, ви можете фактично вказати EFI як тип розділу замість GUID: sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0

1
Як я можу змінити індекси розділів, щоб ESP міг бути в індексі 1?
Аддісон

3

Спробуйте це:

  1. Резервне копіювання диска на машині часу.
  2. Перезапустіть, перезавантажте на дисковій установці Lion.
  3. Перейдіть на Disk Utility.
  4. Стерти розділ.
  5. Стерти HD.
  6. Ще раз видаліть розділ, цього разу давши йому ім’я.
  7. Клацніть на HD.
  8. Перевірте HD, щоб підтвердити, що повідомлення про помилку EFI більше не з’являється.
  9. Поверніться, щоб встановити екран.
  10. Виберіть відновлення із резервної копії.

2

Тут було знайдено простіше рішення: /unix//a/174522/182014

Розділ EFI можна створити через GParted Live CD / USB :

  • Створіть диск на 200 МБ (весь вільний простір на початку):
    • Тип: fat32
    • Мітка: EFI
  • Відформатуйте
  • Встановіть прапори завантаження (опція доступна лише після форматування) на "boot, esp"

введіть тут опис зображення

Готово!


0

Спробуйте iPartition 3 або вище. Перейдіть до меню перегляду та відображення системних пристроїв. Оскільки в ньому відсутній EFI 200 Мб, сподіваємо зменшити перший розділ на диску на 200 Мб. Створіть новий розділ, тоді у вікні інспектора дисків є вкладки. Можна вибрати багато різних типів файлової системи. Просто виберіть системний розділ EFI.


0

Це вирішило для мене проблему.

1) Резервне копіювання розділу Bootcamp за допомогою Winclone

2) Резервне копіювання Mac OSX-накопичувача за допомогою Carbon Copy Clone на зовнішній диск

3) Встановіть Mountain Lion на флешку або зовнішній диск

4) Придбайте копію iPartition, завантажте на флешку або зовнішній диск

5) Перезавантажтесь, утримуючи клавішу Option, щоб отримати меню завантаження

6) Виберіть спалах або зовнішній привід для завантаження

7) Витягнути iPartition та виконати. Виберіть "Перегляд" та "Інспектор" зі спадного меню.

8) Виберіть «Bootcamp Partition» на вкладці «Розділ» і відмітьте два поля у списку (Active and Visible у Windows), а потім закрийте вікно.

9) Кнопку Go слід засвітити, якщо ні, то трохи підростіть розділ Bootcamp. Моя - 2 ТБ OSX, 500 ГБ Windows на 2,5 ТБ накопичувачі.

10) Після натискання кнопки Go слід почати обробку; хоча вам, можливо, доведеться вбити будь-який процес, який не дає йому працювати (Готово з монітором активності)

11) Після завершення вимкніть і вийміть зовнішній завантажувальний пристрій, а потім увімкніть Mac. Це повинно бути виправлене і завантажуватися нормально - принаймні, моє.

Я працюю на iMac 27, 3,2 ГГц Intel Core i3 з 16 ГБ оперативної пам’яті та 2,5 ТБ жорстким диском. Більшість перелічених елементів я вже робила до встановлення Mountain Lion, за винятком поточної резервної копії накопичувача Bootcamp. Winclone працював, хоча Bootcamp не завантажувався і процес відновлення генерував помилку при написанні MBR. Я просто проігнорував помилку і продовжував роботу з рештою процесу. Мабуть, гірський лев заплутався з PMBR або EFI і навіть rEFIt це не виправить, але все, що зробив iPartition; його тепер виправлено.

* ВІДХОДЖЕННЯ **

Хоча цей процес, можливо, спрацював мені добре, МОЖЕ НЕ РОБОТИ ДЛЯ ВАС! Як і з будь-яким процесом, який редагує таблицю учасника та дані про завантаження, ви зберігаєте шанс втрати даних. РЕКЛАМУЙТЕ СВОЙ Драйв, ЯКЩО Ви хочете зберегти свої дані.

Я настійно рекомендую Carbon Copy Clone для резервного копіювання розділу OSX, оскільки він може створити завантажувальний клон, який у мене ніколи не виходив з ладу.

Я впевнений, що інші досягли успіху в вирішенні цієї проблеми і вдячні за всіх, хто опублікував те, що вони зробили, оскільки це допомогло мені вирішити цю проблему на моєму iMac.

Дякую всім і сподіваюся, що це допомагає комусь іншому. (Опубліковано в Apple Forum) https://discussions.apple.com/message/19220149#19220149

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.