我花了 3 个晚上在网上搜索如何双启动最新的 macOS 10.12 Sierra 和 Ubuntu 的简单指南,但似乎人们推荐的方法太多了,而其他论坛上人们却建议不要这样做。我的理想情况当然是通过 Apple 标准引导加载程序中的 alt 键选择 macOS 或 Linux。David Anderson 发表了一篇关于此的帖子,我觉得很有吸引力,尽管如此,我还是有点怀疑,因为没有对他的方法的评论或答案(不是质疑他的能力),而且大多数人还是建议使用 rEFInd。
在已安装 macOS 和 Windows 的 Mac 上安装 Ubuntu
我当然同意这一点,我也阅读了 Rod Smiths 网站上的相关文章,但由于 macOS 的每个新版本(尤其是 El Capitan 中集成 SIP 之后)似乎都会改变其处理启动过程的方式,并且有关此主题的大多数文章都早于 10.11,这让我现在感到有点迷茫。我对 rEFInd 最大的担忧是其他用户抱怨的休眠功能出现故障。
我的设备包括一台 2012 年中期非视网膜 Macbook Pro,运行 macOS 10.12.3。据我目前所知,我计划:
- 使用磁盘实用程序在 macOS 中创建三个新的 hfs+ 分区作为占位符(一个小的用于 refind,一个用于 Ubuntu 的主根分区和一个交换分区)
- 安装 Ubuntu,重新格式化主 Linux 分区并选择交换分区(我必须更改引导加载程序安装的位置吗?)
- 重新启动进入恢复模式,
./refind-install --ownhfs /dev/disk0sX
然后安装 rEFInd,以便它能够找到现有的 Ubuntu 并在启动过程中跳过 GRUB
我读到在单独的 hfs 分区上安装 rEFInd 可以解决休眠问题。在这种情况下,我是否必须在 Linux 安装期间选择/重新格式化小 hfs 分区作为 EFI 系统分区(如 David Anderson 建议的那样)?我应该为引导加载程序安装设置哪个卷?
在另一个帖子中,一位用户表示,自从有了 El Capitan 之后,我们最好不要将 rEFInd 安装在单独的 hfs 上,但没有说明原因。此外,支持这一说法的一个论据当然是,rEFInd 在较新版本中默认安装在标准 EFI 分区上。即使我会以默认方式执行所有操作(包括休眠问题的风险),安装 Ubuntu 时正确的分区选择是什么?在这种情况下,我需要定义一个新的 EFI 系统分区吗?还是根本不需要?
您可能已经注意到,我有很多问题,如果这篇文章让您感到困惑,我提前道歉。我将非常感激任何形式的帮助。
问候,蒂姆
答案1
过去 3 个晚上,我在网上的各个角落寻找如何双启动最新的 macOS 10.12 Sierra 与 Ubuntu 的简单指南,但似乎人们推荐的方法太多,而其他论坛上人们却不建议这样做。
你遇到了选择悖论——关于这个问题的选项太多了,让人很困惑。实际上,很难说这个特定问题中的任何一个选项真的比其他选项更好,除非符合某些非常具体的目标,而其中大多数你没有提到任何偏好,除了:
我的理想情况当然是通过 Apple 标准引导加载程序中的 alt 键选择 macOS 或 Linux。
在这种情况下,您链接的解决方案是有意义的,尽管我怀疑它可能在某些方面有点过于复杂。(但我对此并不是 100% 肯定。)
但请注意,启动 Mac 时按住 Alt/Option 键时看到的屏幕不是启动装载机;这是一只靴子经理。您仍然依赖单独的引导加载程序(Apple 的boot.efi
文件用于启动 macOS 或 GRUB 用于启动 Linux)来启动计算机。从某种意义上说,这只是一个术语上的小问题;但重要的是要理解引导管理器是用户界面工具,而引导加载程序将内核加载到内存中并执行它们,因为在某些情况下,这种区别非常重要。不幸的是,人们往往对这种区别很马虎。
每个新版本的 macOS(尤其是自从 El Capitan 集成 SIP 以来)似乎都会改变其处理启动过程的方式,并且有关此主题的大多数文章都早于 10.11,这让我现在感到有点迷茫。
是的,macOS 启动不断变化的特性可能会带来问题。我建议你首先忽略任何建议在 BIOS/CSM/传统模式下安装 Linux 的内容。尽管这样做有时没有必要,但今天这种情况很少见。从广义上讲,你有两个选择:
- 用作启动管理器-- 上面,您表达了对 Mac 内置启动管理器的偏好。此工具功能有限,但您知道它已经存在于计算机中。两个主要替代方案是 GRUB 2(由 Ubuntu 安装,但我看到很少讨论使用它来启动 macOS)和 rEFInd(您显然知道它是 Mac 上的流行选择)。rEFIt 也曾经是一个不错的选择,但它已被废弃多年,因此 rEFInd(我从 rEFIt 中分叉而来)是更好的选择。
- 用什么作为引导加载程序-- 您引用的方法以及使用 GRUB 作为引导管理器的任何方法都可能使用 GRUB 作为引导加载程序。rEFInd 可以执行相同的操作,但 rEFInd 也可以使用EFI 存根加载器,这是一项内核特性,它将 Linux 内核转变为自己的引导加载程序。
请注意,GRUB两个都一个引导管理器和一个引导加载程序。另一方面,rEFInd 从技术上来说只是一个引导管理器;但是 EFI 存根加载程序(从技术上来说是一个引导加载程序而不是引导管理器)的存在使得 rEFInd 可以充当 Linux 内核的引导加载程序。
我对 rEFInd 最大的担心是其他用户抱怨的休眠功能出现故障。
这是前段时间的一个大问题,但我最近没有看到任何关于它的投诉,所以我相信当前的默认设置可以refind-install
解决这个问题。正如您所建议的,将 rEFInd 安装到单独的 HFS+ 分区是一种已报告的解决方案,因此如果您将 rEFInd 安装到 ESP 并遇到问题,您可以随时尝试此方法。
即使在安装了所有东西之后,也可以切换引导管理器和加载程序。在这个特定问题上,如果您决定使用 rEFInd,您可以通过留出约 200 MiB 的分区来稍微规避风险。最初甚至不要将文件系统放在它上面。使用其默认值安装 rEFInd,这会将其放在 ESP 上。如果您遇到问题,则可以将 HFS+ 文件系统放在小备用分区上,然后将 rEFInd 重新安装到其中。如果这解决了问题,那就太好了。如果没有,您可以将 GRUB 2 放在小 HFS+ 分区上,方法与您链接的页面中描述的方法不同。
安装 Ubuntu,重新格式化主 Linux 分区并选择交换分区(我必须更改引导加载程序安装的位置吗?)
如果 Ubuntu 安装程序在 EFI 模式下运行,它将把 GRUB 2 安装到 ESP。如果出现安装引导加载程序的位置提示,在 EFI 模式下它会被忽略。
还值得一提的是,如果你打算使用 rEFInd 和 EFI 存根加载器,可以通过启动“安装前尝试”模式来启动 Ubuntu 安装程序,打开终端窗口,然后输入ubiquity -b
。该-b
选项告诉安装程序不是安装 GRUB。这将最大程度地减少启动政变将来,它将阻止 GRUB 在内核更新以修改其配置文件时运行耗时的脚本(如果您没有在启动过程中包含 GRUB,则不会使用这些配置文件)。
我读到过,在单独的 hfs 分区上安装 rEFInd 可以解决休眠问题。在这种情况下,我是否必须在 Linux 安装期间选择/重新格式化小 hfs 分区作为 EFI 系统分区(如 David Anderson 建议的那样)?
不是。从技术上讲,ESP必须使用FAT 文件系统。实际上,Mac 的固件在启动引导加载程序时并不关心分区是否标记为 ESP 或标准 HFS+ 分区。
我还应该指出,在您链接的说明中,我看不出创建第二个 ESP 有什么意义。不过,也许我漏掉了什么。
即使我以默认方式执行所有操作(包括休眠问题的风险),安装 Ubuntu 时正确的分区选择是什么?在这种情况下,我是否需要定义一个新的 EFI 系统分区,还是根本不需要?
不,ESP 旨在由计算机上的所有操作系统共享。但就 Mac 而言,据我所知,Apple 仅将其用于固件更新;其引导加载程序驻留在其Recovery HD
卷上。
话虽如此,你能创建多个 ESP;这样做是合法的,据我所知,所有 EFI 都支持此类配置。这样做几乎没有意义。