Нужен ли отдельный раздел EFI для каждой ОС, использующей общий диск?

Я устанавливал FreeBSD на мой MacBook Air. При разбиении диска установщик сказал мне

This partition scheme requires a boot partition for the disk to be bootable. Would you like to make one now? <Yes/No>

Проблема в том, что у меня уже есть раздел EFI на моем внутреннем SSD, который, по-видимому, обслуживает macOS. Нужно ли создавать другой для FreeBSD?

Я провел несколько болезненных экспериментов по этому вопросу:

  • Когда я выбрал NoFreeBSD перестает загружаться, т. Е. FreeBSD просто не отображается в меню rEFInd.
  • Когда я выбрал Yes"Установщик FreeBSD, похоже, создал очень плохую гибридную MBR на вашем диске, и это сбивает с толку OS X", и, таким образом, мой диск был поврежден. К счастью, после того, как я следую инструкции @Rod Smith (создал новую защитную MBR вместо плохой гибридной MBR), эта проблема теперь решена, но теперь на моем диске 2 раздела EFI.

    Теперь мой внутренний SSD выглядит так:

    sunqingyaos-MacBook-Air:~ sunqingyao$ diskutil list
    /dev/disk0 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *121.3 GB   disk0
       1:                        EFI EFI                     209.7 MB   disk0s1
       2:                  Apple_HFS Macintosh HD            60.6 GB    disk0s2
       3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
       4:                        EFI EFI                     209.7 MB   disk0s4
       5:                FreeBSD UFS                         53.5 GB    disk0s5
       6:               FreeBSD Swap                         6.2 GB     disk0s6
       7: 83BD6B9D-7F41-11DC-BE0B-001560B84F0F               101.4 KB   disk0s7
    

    Также,

    sunqingyaos-MacBook-Air:~ sunqingyao$ sudo gpt -r show disk0
    Password:
          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  118284248      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      118693888    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
      119963424     409600      4  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      120373024  104447992      5  GPT part - 516E7CB6-6ECF-11D6-8FF8-00022D09712B
      224821016   12156928      6  GPT part - 516E7CB5-6ECF-11D6-8FF8-00022D09712B
      236977944        198      7  GPT part - 83BD6B9D-7F41-11DC-BE0B-001560B84F0F
      236978142          1
      236978143         32         Sec GPT table
      236978175          1         Sec GPT header
    

2 ответа

Решение

ESP обычно разделяются между операционными системами, поэтому нет, вам не нужна вторая; но это также не должно вызывать проблем. Тем не менее, некоторые инструменты или операционные системы могут запутаться из-за присутствия двух ESP. Установщик Windows - единственный пример, о котором я знаю. (Это влияет на Windows 7, но я не знаю о более поздних версиях.) Если вы столкнулись с такой проблемой, вы всегда можете изменить код типа на ESP, который вы не хотите использовать установщиком Windows - даже просто временно, (Временное изменение может быть полезно, если вы хотите установить две версии Windows, каждая с собственным ESP.)

Расположение ESP относительно других ваших разделов делает удаление одного неудобным - для восстановления места вам нужно переместить начальную точку хотя бы одного раздела, что отнимает много времени и опасно. Возможно, не стоит восстанавливать только около 200 МБ пространства, но опять же, ваш диск занимает всего 120 ГБ. Вы должны будете оценить, насколько драгоценно ваше пространство, в сравнении с затратами времени и риска.

Удалите раздел 4, так как он имеет ту же подпись (C12A7328-F81F-11D2-BA4B-00A0C93EC93B), что и 1-й раздел!

Для последовательности загрузки UEFI требуется только один системный раздел EFI (ESP).

Диспетчер загрузки UEFI проверяет устройства и загружает файл (загрузчик ОС), к которому обращается первый кандидат на загрузку, сохраненный в NVRAM (если его устройство присутствует), в противном случае пытается следующий кандидат на загрузку и так далее.

Все загрузчики UEFI хранятся в ESP:

\ EFI \ компания.....

\ EFI \ boot... является резервным загрузчиком.

MBR не должен играть с процессом загрузки UEFI. MBR необходим только для старшей загрузки BIOS. Возможно, загруженная ОС (OSX) проверяет MBR по какой-то неизвестной причине, поскольку диски в стиле GPT имеют таблицу разделов GPT и не используют информацию, хранящуюся в MBR.

Существует также гибридный процесс загрузки на дисках в стиле GPT:

Код MBR загружает загрузочный код из специального "загрузочного раздела BIOS", который, в свою очередь, "знает", что загружать дальше. Эта схема создается некоторыми дистрибутивами Linux, когда вы загружаете установочный носитель с помощью загрузки BIOS, а затем производите установку - предполагается, что загрузка BIOS выполняется на GPT-диске.

С прошивкой UEFI и GPT-диском всегда загружайте любой (установочный) носитель с помощью загрузки UEFI!!!

Другие вопросы по тегам