无法从 GRUB 链式加载 OS X Clover 引导加载程序

无法从 GRUB 链式加载 OS X Clover 引导加载程序

因此,我有一个三重启动设置,其中我刚刚将 OS X(Hackintosh)更新到最新版本,并有一个新引导加载程序(从 Chimera 到 Clover)。它看起来像这样:

  • /dev/sda 上的 Ubuntu 14.04 LTS(hd0
  • /dev/sdb 上的 Windows 10 Pro(高清3
  • /dev/sdd 上的 OS X 10.11 El Capitan (高清2),其分区如下:
    • GPT1的用于 EFI Clover 引导加载程序(67E5-17ED 是此卷的 UUID)
    • GPT2的用于主 OS X 磁盘

一切运行正常,我可以从 BIOS 启动每个操作系统,没有任何问题。不过,我喜欢使用 GRUB 作为我的主要引导程序。


以前,有这样的事情:

menuentry "OS X 10.10" {
    insmod hfsplus
    set root=(hd2,gpt2)
    multiboot /boot
}

我能够链式加载到奇美拉从 GRUB 引导加载程序没有任何问题,并从那里启动 OS X。


然而,随着新的基于 UEFI三叶草引导加载程序,无论我如何尝试:

menuentry "OS X 10.11" {
    insmod chain
    insmod part_gpt
    set root=(hd2,gpt1)
    chainloader /efi/boot/bootx64.efi
}

或者

menuentry "OS X 10.11" {
    insmod part_gpt
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root 67E5-17ED
    chainloader ($root)/efi/boot/bootx64.efi
}

正如建议的那样这里这里

invalid signature当我选择“OS X 10.11”时,我不断收到来自 GRUB 的错误。

我甚至尝试过:

menuentry "OS X 10.11" {
    insmod chain
    insmod part_gpt
    set root=(hd2,gpt2)
    chainloader +1
}

这会导致屏幕空白,并且顶部显示一些随机字符。


问题似乎与。但是,我在 BIOS 偏好设置中禁用了安全启动。

反正,我的问题我是否可以尝试以其他方式将这些引导加载程序链接在一起以像 Chimera 一样工作,或者是否有其他方法可以从 GRUB 直接启动到 OS X。

提前致谢,

答案1

必须注意您的启动模式:BIOS/CSM/legacy 或 EFI/UEFI。

上次我检查时,Chimera 严格来说是 BIOS 模式的引导加载程序。由于 GRUB 不能从 EFI 模式更改为 BIOS 模式(反之亦然),这意味着您的 GRUB 也安装在 BIOS 模式下(或至少曾经安装在 BIOS 模式下)。如果您已将 GRUB 从 BIOS 模式切换到 EFI 模式,那么这是一个关键的细节。

另一方面,Clover 更复杂。它的核心是启动 OS X 的 EFI 模式引导管理器;但是,Clover 包含一个完整的 EFI 实现,它像 BIOS 模式引导加载程序一样运行——本质上,EFI 在 BIOS 模式计算机上作为软件运行,而不是作为固件运行。因此,Clover 可以在 BIOS 模式计算机或基于 EFI 的计算机上运行。如果您没有对 GRUB 进行任何更改,则只有在您还安装了 Clover 的 BIOS 模式 EFI“模拟器”软件的情况下,您才能从 GRUB 启动 Clover;然后您需要像启动 Chameleon 一样启动 Clover。您的前几个 Clover 示例(引用的那些bootx64.efi)可以在运行 EFI 模式版本的 GRUB 的基于 EFI 的计算机上运行,​​但如果您使用的是 BIOS 模式计算机,则将无法运行。您的最后一个示例(带有行chainloader +1)用于 BIOS 模式启动,因此可能有效如果您已经安装了 Clover 的 BIOS 模式组件。

退一步来说,您可能需要检查其他操作系统组件以及计算机的功能。如果您的计算机是在 2011 年中期或之后推出的,那么它可能是基于 EFI 的;但如果它更老,那么它可能就是一台仅使用 BIOS 的机器。Ubuntu 很容易在启动模式之间切换,只要您知道如何为每种模式安装合适的启动加载程序。Windows 有点棘手,因为它将其分区表类型与其启动模式绑定在一起——Windows 仅在 BIOS 模式下从 MBR 磁盘启动,在 EFI 模式下仅从 GPT 磁盘启动。(我听说过这条规则的一些例外情况,但它们非常奇怪。)因此,切换 Windows 启动模式需要更改分区表安装新的引导加载程序。

在所有这些问题之间,三重启动设置非常复杂,并且您忽略了最重要的细节——即大多数操作系统的分区表类型和启动模式(尽管我已经推断出其中一些信息)。这使得提供具体建议变得困难。不过有一点:Clover 配置和设置远远超出了本网站的范围。但是,如果您想使用 GRUB 作为主启动管理器,则必须注意启动模式,并以与 GRUB 使用的相同模式(BIOS/CSM/legacy 与 EFi/UEFI)安装后续启动加载程序。


编辑:

根据您的新信息,有几种可行的方法。一种是,正如您所建议的,将 Windows 和 Ubuntu 都转换为以 EFI 模式启动。另一种是混合设置。一种方法如下:

  1. 下载我的 USB 闪存驱动器或 CD-R 版本rEFInd 启动管理器并从中创建启动介质。
  2. 启动 rEFInd。它应该会显示一个适用于 Ubuntu 的选项,也可能显示其他选项。(如果有 OS X 选项,请忽略它;它不起作用。如果有 Clover 选项,它可能会起作用。)
  3. 启动 Ubuntu。
  4. 安装 rEFInd 的 PPA 或 Debian 包版本。
  5. 编辑/boot/efi/EFI/refind/refind.conf:取消注释该scanfor行并添加hdbios到选项列表中。
  6. 移除 rEFInd 外部启动介质并以 EFI 模式重新启动。rEFInd 应该会启动并允许您启动 Ubuntu,也许还有 Clover(然后是 OS X)。还应该有一个或多个灰色菱形图标,其中一个应该可以启动 Windows。
  7. 如果您只看到一个灰色图标,并且无法启动 Windows,则必须refind.conf再次编辑并取消注释该uefi_deep_legacy_scan选项。请注意,您可能需要手动安装 ESP,或者添加一个选项以/etc/fstab自动执行此操作。

此时您可能需要进行一些调整,但这就是它的基本轮廓。在此配置中,rEFInd 将使您能够启动 Ubuntu(在 EFI 模式下)、Clover(在 EFI 模式下)或 Windows(在 BIOS 模式下);并且 Clover 应该启动 OS X(并且可能还会显示适用于 Windows 和/或 Linux 的选项)。

使用 Clover 作为主启动管理器应该可以实现类似的效果;但是,使用此设置,Clover 将显示 OS X(在 EFI 模式下)、GRUB(在 BIOS 模式下;或者在安装软件包时在 EFI 模式下grub-efi)和 Windows(在 BIOS 模式下)的选项。我不知道您要采取的具体设置步骤。您更喜欢将 Clover 还是 rEFInd 作为主启动菜单取决于个人喜好。

将所有东西都转换为 EFI 模式的计划也是可行的,但短期内需要付出更多努力,风险也略大。设置完成后,您可以使用 GRUB、Clover 或 rEFInd 作为主启动管理器。如果您使用 GRUB 或 rEFInd 作为主启动管理器,您仍然需要 Clover 来启动 OS X;如果您使用 Clover 作为主启动管理器,您需要使用 GRUB 或 rEFInd 来启动 Ubuntu。

您可以在 USB 闪存驱动器或 CD-R 上使用 rEFInd 来试用其中一些选项,看看它们如何工作,这对您的配置几乎没有风险,因为您不会对硬盘进行任何更改。

总而言之,您有很多选择,在易用性或复杂性方面没有明显的赢家 - 它们都应该运行良好,但您至少需要两个启动管理器来启动一个操作系统路径。

相关内容