无需 rEFInd 即可实现 OS X 或 macOS 与 Linux 的双启动

无需 rEFInd 即可实现 OS X 或 macOS 与 Linux 的双启动

我认为标题很好地概括了这篇文章的内容。我想在不使用第三方引导加载程序的情况下双启动 MacBook Pro 13'。我发现的所有教程都使用 rEFIt 或 rEFInd 在安装 Linux 后成功启动它,但我不太愿意抹去默认的 Apple 引导加载程序,因为对我来说,这是我见过的最好的引导加载程序。

有什么办法可以做到这一点吗?

谢谢!

答案1

Ubuntu 会在 Mac 电脑的第一个 EFI 系统分区中安装 grub 和其他文件。通常,这是 Mac 电脑上的第一个分区。让 Ubuntu 出现在启动管理器上的过程相当简单。步骤如下。

注意:从 Ubuntu 18 开始,安装程序软件应自动创建在 Mac 上启动 Ubuntu 所需的文件。因此,Ubuntu 18 及更高版本的用户应该能够跳过步骤 5 和 6。

  1. 安装 Ubuntu。

  2. 完成后,重新启动并按住option键以调用启动管理器。选择从 OS X(或 MacOS)卷启动。

  3. 打开终端应用程序窗口。

  4. 通过输入以下命令来安装 EFI 系统分区。

    diskutil mount disk0s1
    
  5. Boot在文件夹中创建一个名为的文件夹/Volumes/EFI/EFI。您可以使用 Finder 应用程序或输入下面给出的命令。

    mkdir /Volumes/EFI/EFI/Boot
    
  6. 将文件grubx64.efi从文件夹 复制/Volumes/EFI/EFI/ubuntu到文件夹/Volumes/EFI/EFI/Boot。接下来,重命名此文件bootx64.efi。此步骤可以通过使用 Finder 应用程序或输入下面给出的命令来完成。

    cp /Volumes/EFI/EFI/ubuntu/grubx64.efi /Volumes/EFI/EFI/Boot/bootx64.efi
    
  7. (可选)从 sourceforge 网站下载图标集苹果电脑. 使用 Finder 应用程序打开下载的文件mac-icns.dmg,然后输入以下命令将 Ubuntu 图标文件复制os_ubuntu.icns到 EFI 系统分区。

    cp /Volumes/mac-icns/OSX10.11.6/os_ubuntu.icns /Volumes/EFI/.VolumeIcon.icns
    

    这会将以下 Ubuntu 图标添加到启动菜单。

    查看 Ubuntu 18.04 操作系统

    注意:完成后,您可以使用 Finder 应用程序弹出该mac-icns卷。

  8. 使用 Finder 应用程序或输入以下命令来卸载标有 的 EFI 系统分区EFI

    diskutil unmount disk0s1
    

答案2

请注意,rEFIt 和 rEFInd 都不会损坏,更不会“消灭”默认的 Apple 引导加载程序;事实上,rEFIt 和 rEFInd 都只是将自己插入到引导过程中然后自己启动Apple的引导加载程序。

从根本上讲,rEFIt 和 rEFInd 是引导经理。启动管理器会显示一个菜单或其他用户界面工具,以便您选择要启动的操作系统。大多数 EFI(包括 Apple 的 EFI)都包含自己的启动管理器;但是,这些内置的启动管理器通常非常原始。在 Mac 上,您可以在计算机启动时(启动铃声响起时)按住 Option(或 Alt)键来启动内置的启动管理器。Mac 的内置启动管理器访问起来很不方便,功能也有限。我猜想这就是 Christoph Pfisterer 创建 rEFIt 的动机。在 rEFIt 失修后,我将 rEFIt 分叉为 rEFInd。我更关心基于 UEFI 的 PC 上的启动问题,但 rEFInd 仍然是一种绕过 Apple 启动管理器限制的方法。

一只靴子装载机,相比之下,引导加载程序将内核加载到内存中并将控制权移交给它。引导加载程序不需要直接与用户交互(尽管它可以)。从技术上讲,rEFIt 和 rEFInd 都不是引导加载程序,尽管 Linux 内核创建了一条模糊的界线,因为它包含一个功能(EFI 存根加载器),使其能够作为自己的 EFI 引导加载程序运行。此外,一些引导加载程序(例如 Linux 发行版中流行的 GRUB 2 引导加载程序)不仅可以作为引导加载程序,还可以作为引导管理器。

如果你在 Mac 上双启动 Ubuntu 和 OS X(或 macOS,最近已重新命名),那么在实际操作中有必要添加某物启动过程。您可以依靠 Apple 的启动管理器来控制要启动的操作系统,在这种情况下,启动 OS X 时不会涉及任何非 Apple 工具。不过,您仍然需要某些东西(GRUB、rEFInd 或其他一些引导加载程序或启动管理器)来启动 Linux 内核。鉴于大多数这些工具比 Apple 的内置启动管理器更方便使用,大多数用户将它们设置在启动顺序中,以便在 OS X 启动管理器之前调用它们。

如果你只是不喜欢 rEFInd,你当然可以不用它。你可以依赖 GRUB 2 的启动管理器功能,或者你可以安装另一个工具,如 gummiboot/systemd-boot。理论上,如果你安装 Ubuntu在 EFI 模式下,它应该以使其成为默认启动管理器的方式安装 GRUB 2,并且应该提供启动 Ubuntu 和 OS X 的选项。实际上,我不确定这是否会起作用 —— Apple 的做法有点不同,而且很少有人这样做,所以我不能保证它会起作用。不过,你可以尝试一下,然后解决事后遇到的任何问题。不过,我建议在开始之前了解有关 EFI 启动的更多信息,这样你就不会犯一些基本的错误,比如在 BIOS 模式下启动安装程序或以错误的方式设置分区。你可以从这些页面开始:

如果你决定坚持使用 rEFInd 这条更常见的方法,请务必检查你遵循的任何说明的日期。一些非常旧的页面仍然存在,它们通常无法解决新问题,例如系统完整性保护 (SIP);或者他们描述使用已废弃的 rEFIt 而不是较新的 rEFInd。(尽管 rEFIt 仍可与较新的 OS X 版本配合使用,但这样做可能需要克服未记录的障碍。)

相关内容