我是否需要为共享公共磁盘的每个操作系统分配一个单独的 EFI 分区?

nal*_*zok 2 boot freebsd partitioning efi installation

我在我的 MacBook Air 上安装 FreeBSD。分区磁盘时,安装程​​序告诉我

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

问题是,我的内部 SSD 上已经有一个 EFI 分区,大概是为 macOS 服务的。我需要为 FreeBSD 创建一个不同的吗?

我在这个问题上做了一些痛苦的实验:

  • 当我选择 时No,FreeBSD 变得无法启动,即“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
    
    Run Code Online (Sandbox Code Playgroud)

    还,

    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
    
    Run Code Online (Sandbox Code Playgroud)

Rod*_*ith 5

ESP通常在操作系统之间共享,所以不,您不需要第二个;但它也不应该引起问题。也就是说,某些工具或操作系统可能会因两个 ESP 的存在而感到困惑。Windows 安装程序是我所知道的唯一示例。(这会影响 Windows 7,但我不知道更高版本。)如果您遇到这样的问题,您可以随时更改您不希望 Windows 安装程序使用的ESP 上的类型代码- 即使只是暂时更改。(如果您想要安装两个 Windows 版本,每个版本都有自己的 ESP,则临时更改可能会很有用。)

ESP 相对于其他分区的位置使得删除任一分区都变得很困难 - 要恢复空间,您需要移动至少一个分区的起点,这既耗时又危险。仅恢复大约 200 MB 的空间可能不值得 - 但话又说回来,您的磁盘只有 120 GB。您必须根据所涉及的时间和风险来判断您的空间有多宝贵。