因为安装双系统导致破坏 EFI 引导分区的事情发生,这通常是指WindowsmacOS双系统并存的情况。一些台式机友为了彼此系统相安无事,就加装另一块硬盘,将WindowsmacOS在物理上进行隔离,这样做的好处是每块硬盘上都会有自己的 EFI 分区,通过 EFI 引导分区分别进行引导。台式机可以加装一块硬盘达到双 EFI 的效果,那笔记本只有一块硬盘的情况下又该如何做呢?

操作环境:macOS

打开终端,输入命令:

$ diskutil list/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI ⁨EFI⁩                     209.7 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk2⁩         1000.0 GB  disk0s2
   
/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                       1000.0 GB  disk2
                                 Physical Store disk0s2
   1:                APFS Volume ⁨Hackintosher - 数据⁩     528.2 GB   disk2s1
   2:                APFS Volume ⁨Preboot⁩                 291.7 MB   disk2s2
   3:                APFS Volume ⁨Recovery⁩                613.6 MB   disk2s3
   4:                APFS Volume ⁨VM⁩                      2.1 GB     disk2s4
   5:                APFS Volume ⁨Hackintosher⁩            15.0 GB    disk2s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.0 GB    disk2s5s1  

我们可以看到,这块1TB的固态硬盘上已经存在了一个 EFI分区,设备地址为:disk0s1,它位于/dev/disk0的首部,后面的空间是建立了一个Apple_APFS的容器,它占满了所剩的磁盘空间,/dev/disk2是容器的具体布局和分区,我们今天要操作的磁盘是/dev/disk0,所以/dev/disk2部分的内容可直接忽略。

打开磁盘工具

点击 显示 – 显示所有设备,如图所示:

在你的硬盘上建立第二个 EFI 分区-1

选中左侧的磁盘:CT1000P1SSD8 Media,点击右侧窗口的分区

在你的硬盘上建立第二个 EFI 分区-2

在弹出的窗口中选择:分区,在弹出的窗口里选择容器所在的分区,比如小兵的磁盘分区名称是Hackintosher,点击   添加磁盘分区,分区名称任意,比如:ESP 或者 OC 等等,磁盘格式选择Mac OS 扩展(日志式),分区大小选择大于200MB,这里小兵填写的是:500MB,点击 应用

在你的硬盘上建立第二个 EFI 分区-3

这个时候磁盘工具会自动进行分区操作,它需要点时间,请务必耐心等待它操作完成,在弹出的小窗口中点击 分区

在你的硬盘上建立第二个 EFI 分区-4

警告:在调整启动宗卷大小的过程中电脑会停止响应,切勿将此电脑关机;整个过程可能持续几分钟或者几小时。若要避免这种情况,您可以在恢复模式下使用分区

请点击继续让它完成分区的操作

在你的硬盘上建立第二个 EFI 分区-5

开始执行 分区 的操作,这时所有的后台应用都被隐藏,只留下这个磁盘工具在前台工作,请务必等待它执行完毕

在你的硬盘上建立第二个 EFI 分区-6

这是完成时的画面:

在你的硬盘上建立第二个 EFI 分区-7

现在,我们就可以对这个扩展成功的分区 ESP 进行重新格式成 FAT 分区,请于窗口左侧选中 ESP 分区,点击窗口右侧的 抹掉 ,

在你的硬盘上建立第二个 EFI 分区-8

磁盘格式选择: MS-DOS(FAT),点击 抹掉 ,它会重新将该分区抹成 FAT 以支持 UEFI 引导

在你的硬盘上建立第二个 EFI 分区-9

现在,我们就拥有了另一个可以引导的 EFI 分区。

想验证它是否成功,可以通过打开终端,输入命令:

$ diskutil list disk0
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI ⁨EFI⁩                     209.7 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk2⁩         999.5 GB   disk0s2
   3:       Microsoft Basic Data ⁨ESP⁩                     499.1 MB   disk0s4

我们会看到,现在有两个可引导的 EFI 分区,卷标分别为:EFI / ESP

将你想引导的 EFI内容复制进新生成的 ESP卷标里,然后添加引导就可以使用它了。

 

如何使用第二个 EFI 分区

使用场景1

  • EFI分区:通过OpenCore 引导macOS 【稳定版】【生产用】
  • ESP分区:通过Windows Boot Manager 引导 Windows

使用场景2

  • EFI分区:通过OpenCore 引导macOS【稳定版】【生产用】
  • ESP分区:通过Clover Bootloader 引导 macOS【测试版】【调试配置文件/驱动用】

使用场景3

  • EFI分区:通过 OpenCore 引导 macOS【稳定版】【生产用】
  • ESP分区:通过 Grub Bootloader 引导 Linux

如何将第二个 EFI 分区添加进 UEFI Bootloader引导菜单

工具:Easy UEFI for Windows

用法:略

工具:Bootice for Windows

用法:略

工具:UEFI SHELL

如何通过UEFI SHELL添加UEFI引导的正确姿势

无论是Clover还是OpenCore,经常会遇到的问题是:重置了NVRAM后就会导致UEFI引导项的丢失。正确的、最简单的插入姿势就是:进入UEFI SHELL (CLOVER)或者Open Shell(OpenCore),然后查看EFI所在的fsV

假如你的是fs0,那么如何判断fs0目录下面就是EFI呢,可以这样验证:

Shell> ls fs0:
如果显示有`EFI`的目录,那么就继续执行
Shell> ls fs0:efi
显示`BOOT``OC`或者`BOOT``CLOVER`目录,那么可以确定这是你需要操作的位置
Shell> bcfg boot add 0 fs0:efiocopencore.efi "OpenCore Bootloader"
这是添加`OC`的引导项命令
Shell> bcfg boot add 0 fs0:eficlovercloverx64.efi "Clover Bootloader"
这是添加`CLOVER`的引导项命令
Shell> exit
退出`UEFI Shell`

UEFI SHELL其它的用法请谷歌

在你的硬盘上建立第二个 EFI 分区-10
UEFI SHELL

添加完 UEFI 引导项后,可进入 BIOS 检查是否添加成功,成功后的截图如下:

在你的硬盘上建立第二个 EFI 分区-11在你的硬盘上建立第二个 EFI 分区-12