我在 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
还,
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
答案1
ESP 是通常跨操作系统共享,所以你不需要第二个;但它也不会造成问题。也就是说,一些工具或操作系统可能会因两个 ESP 的存在而感到困惑。Windows 安装程序是我所知道的唯一示例。(这会影响 Windows 7,但我不知道后续版本。)如果你遇到这样的问题,你可以随时更改 ESP 上的类型代码不希望 Windows 安装程序使用 - 即使只是暂时的。(如果您想要安装两个 Windows 版本,每个版本都有自己的 ESP,则临时更改会很有用。)
ESP 相对于其他分区的位置使得删除其中一个分区变得很麻烦——要恢复空间,您需要移动至少一个分区的起始点,这既耗时又危险。这可能不值得只恢复大约 200 MB 的空间——但话又说回来,您的磁盘只有 120 GB。您必须判断您的空间有多宝贵,以及所涉及的时间和风险。
答案2
删除分区 4因为它具有与第一个分区相同的签名(C12A7328-F81F-11D2-BA4B-00A0C93EC93B)!
UEFI 启动顺序只需要一个 EFI 系统分区(ESP)。
UEFI 启动管理器检查设备并加载由 NVRAM 中存储的第一个启动候选者寻址的文件(操作系统加载器)(如果其设备存在),否则尝试下一个启动候选者,依此类推。
所有 UEFI 加载程序都存储在 ESP 上:
\EFI\公司.....
\EFI\boot... 是后备引导加载程序。
MBR 不应与 UEFI 启动过程一起发挥作用。只有较旧的 BIOS 启动才需要 MBR。也许加载的操作系统 (OSX) 正在检查 MBR,因为 GPT 样式的磁盘具有 GPT 分区表,并且不使用存储在 MBR 中的信息。
GPT 样式磁盘上还有混合启动过程:
MBR 代码从特殊的“BIOS 启动分区”加载启动代码,而该分区又“知道”下一步要加载什么。某些 Linux 发行版在您使用 BIOS 启动加载安装介质然后进行安装时创建了此方案 - 假定 BIOS 在 GPT 磁盘上启动。
使用 UEFI 固件和 GPT 磁盘始终使用 UEFI 启动来启动任何(安装)媒体!!!