Как исправить сломанный раздел EFI?


24

У меня есть iMac под управлением OSX Lion. Я также установил bootcamp и Windows 7. Во время установки Windows 7 я не уделял должного внимания, удалял и форматировал раздел EFI.

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

Я заметил, что обновления прошивки EFI не удалось установить, но не обратил на это внимания.

Однако сейчас я хочу установить Mountain Lion, и тут куча неприятностей. 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 секторов (ровно 200 МБ). Тип записи 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 документирован 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. Перейдите в Дисковую утилиту.
  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 и выполнить. Выберите View и Inspector из выпадающего меню.

8) Выберите Bootcamp Partition на вкладке Partition и отметьте два поля в списке (Active и Visible в Windows), затем закройте поле.

9) Кнопка Go должна светиться, если нет, то немного увеличьте раздел Bootcamp. У меня 2 ТБ OSX, 500 ГБ Windows на 2,5 ТБ диске.

10) Как только кнопка Go нажата, она должна начать обрабатываться; хотя вам может потребоваться убить любой процесс, который не позволяет ему работать (сделано с Activity Monitor)

11) По завершении выключите и удалите внешнее загрузочное устройство, а затем снова включите Mac. Это должно быть исправлено и загрузиться нормально - по крайней мере, мой сделал.

Я использую iMac 27, 3,2 ГГц Intel Core i3 с 16 ГБ оперативной памяти и 2,5 ТБ жестким диском. Большинство перечисленных элементов я уже выполнил до установки Mountain Lion, за исключением текущей резервной копии диска Bootcamp. Winclone работал даже несмотря на то, что Bootcamp не загружался, и процесс восстановления выдавал ошибку при записи MBR. Я просто проигнорировал ошибку и продолжил процесс. Очевидно, что Mountain Lion перепутался с 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.