我整天都在尝试让我的 MacBook 在启动菜单中识别 Ubuntu(启动时按 alt)。我真的不想安装 rEFIt。还有其他方法吗?非常感谢!!
答案1
首先,rEFIt 是废弃软件;它已经六年没有更新了。因此,我创建了一个名为rEFInd,它正在积极开发中,并且与 Linux(包括 Ubuntu)和最新版本的 OS X 配合使用的效果比 rEFIt 更好。因此,如果您无法让它按您想要的方式工作,请考虑使用 rEFInd 而不是 rEFIt。
也就是说,在 OS X 下安装 Ubuntu 有两种方法,每种方法都有几种变体。问题的答案取决于您选择的方法和变体:
- BIOS/CSM/传统模式-- 许多较早的文档描述了使用兼容性支持模块 (CSM)(又称 BIOS 模式或传统模式支持)在 Mac 上安装 Ubuntu。在其最简单的安装配置中,这涉及在 BIOS 模式下启动 Ubuntu 安装程序并让其安装 GRUB 2。然后,您应该在 Mac 的启动菜单上看到一个用于启动 BIOS 模式操作系统的选项。如果我没记错的话,它不知道不同引导加载程序之间的区别,因此它会将 GRUB 2 称为“Windows”,但它应该可以工作。如果您愿意,您可以安装 LILO、GRUB Legacy 或更奇特的引导加载程序而不是 GRUB 2,但这将涉及额外的麻烦。这种方法的最大问题是它需要使用混合型 MBR,这是一个丑陋的危险的如果你不了解 GPT、MBR 和混合 MBR,我强烈不建议采用这种方法,因为这样很容易导致硬盘损坏。如果您确实了解这些主题,那么您可能可以采用这种方法而不会造成太多问题,但这仍然不是我个人的首选。
- 电喷模式-- Ubuntu 的 EFI 模式安装消除了对混合 MBR 的需求,这使其更加安全。有很多方法可以做到这一点,但从广义上讲,它们分为两类:
- 标准 EFI 安装-- 在基于 UEFI 的 PC 上,Ubuntu 将 EFI 模式 GRUB 2 安装到EFI 系统分区 (ESP)并将指向 GRUB 的条目添加到 NVRAM 启动管理器列表中。不幸的是,Apple 的 EFI 并不以正常方式使用此启动菜单列表,因此尽管这种方法可以使 GRUB 成为默认启动管理器,但它不太可能显示在 Mac 的 GUI 启动菜单中。GRUB 可能能够或可能无法启动 OS X(我见过成功和失败的报告)。因此,在 Mac 上常规的 EFI 模式下安装 Ubuntu 可能会出现问题。只要有足够的耐心和对 GRUB 的了解,您也许能够让它工作,但不会像您所说的那样。
- 假装是 Mac OS X-- OS X 将其引导加载程序安装
/System/Library/CoreServices/boot.efi
在 HFS+ 卷上。如果您创建 HFS+ 卷并将 GRUB 2 (grubx64.efi
) 以及一些支持文件复制到该名称,OS X 的系统选择器将注意到它并允许您选择它。请参阅这篇博文有关此方法的更多信息,请参见。但是,Ubuntu 不支持这种安装类型(除非它是 16.04 的新版本,而我还没有了解它)。因此,如果您想使用此方法,则需要手动设置它。此外,最近有一些变化(El Capitan,IIRC——或者可能是 Yosemite)似乎需要一些额外的支持文件才能在 OS X 自己的启动选择器中显示选择。我还没有研究过这些变化,所以我还不知道到底需要什么。如果您想尝试这种安装方法,最好进行常规 EFI 模式安装,然后将主 GRUB 2 文件及其支持文件复制到一个小的 HFS+ 卷,然后添加特定于 Mac 的支持文件。请注意,您必须创建专用的 GRUB 2 HFS+ 卷或使用以前无法启动的 HFS+ 卷。您一定不尝试将常规 OS X 卷用于此目的,因为这将清除 OS X 引导加载程序,导致 OS X 无法启动。
还要注意,Ubuntu 安装程序的初始启动模式(即 BIOS 与 EFI)决定了它将安装 BIOS 模式还是 EFI 模式 GRUB。因此,您必须控制此启动模式。Apple 的启动管理器可能对此不清楚,甚至可能不提供您想要的选项。(详细信息因 Mac 型号、固件版本以及启动介质的准备方式而异。)启动 Ubuntu 后,您可以通过查找名为 的目录来检查您的启动模式/sys/firmware/efi
。如果该目录存在,则您已在 EFI 模式下启动;如果不存在,则您已在 BIOS 模式下启动。
总而言之,这些选项都不是既简单又好用的——BIOS 模式安装简单但丑陋且有潜在危险;而 EFI 模式启动设置起来更困难,但更安全、更干净。这是许多 Mac 用户使用 rEFInd(或之前的 rEFIt)的原因之一。
请注意,rEFInd 不会增加 Ubuntu 启动的复杂性,因为它可以代替GRUB 2。根据您如何配置它,通过 rEFInd 启动时会出现 rEFInd 菜单。此菜单可以将启动过程定向到 OS X 的引导加载程序、启动 GRUB 2(BIOS 模式或 EFI 模式,假设已安装),或直接启动 Linux 内核。由于最后一种可能性,GRUB 2 甚至不需要安装。如果您想这样做,最简单的方法是:
- 在 BIOS 模式或 EFI 模式(基本上无关紧要)下启动 Ubuntu 安装程序。
- 出现提示时,选择尝试 Ubuntu 而不安装它的选项。
- 在 Ubuntu 实时会话中打开一个终端窗口。
- 输入
ubiquity -b
。这将启动 Ubuntu 安装程序,但会告诉它不是安装 GRUB 2。 - 安装 Ubuntu。最好不要创建单独的
/boot
分区;但如果要创建(以支持 LVM、RAID 或磁盘加密),请记下 Ubuntu 根 (/
) 分区(/dev/sda5
、/dev/mapper/ubuntu-root
或其他)的标识。此外,对保存 Linux 内核的分区(根 [/
] 分区,或者,如果使用,则是单独的/boot
分区)使用 ext4fs。 - 重启。OS X 应该会出现。
- 安装 rEFInd。
- 重启。rEFInd 应该会出现,并为您提供 OS X 和 Ubuntu 的选项。测试它们两者。如果您创建了单独的
/boot
分区,则必须执行一些额外的步骤:- 当您突出显示 Ubuntu 选项时,请不要按 Enter;而是按 F2 或 Insert 两次。
- 添加
ro root={whatever}
到选项中,其中{whatever}
是您的根(/
)文件系统标识符。 - 在 Ubuntu 中,找到
mkrlconf
rEFInd 附带的脚本并运行它。(您应该能够从 OS X 卷运行它;或者您可以重新下载 rEFInd 文件.zip
,解压它,然后从那里运行它。) - 重新启动后,您应该能够在 rEFInd 菜单中选择 Ubuntu,然后按 Enter 键启动它。
如果您想避免使用 rEFIt,因为您通常想要启动 OS X(或 Ubuntu)并且不想处理菜单,请注意您可以调整 rEFInd,以便只有在启动时按住某个键时才会出现其菜单:编辑文件refind.conf
以便设置以下选项:
timeout = -1
default_selection = "OS X"
default_selection
当然,您可以根据需要进行调整。