我有一台 MacBook Air,我将其转换为带有 Crouton KDE Linux 环境的 Chrome OS 机器,我想知道我是否可以以某种方式配置 EFI 以直接启动到 Chromium OS(Neverware 家庭版),而不是每次启动时都按住 alt/option。(这台机器上没有 mac os,我不喜欢它。)
如果我不按住选项,我只会看到一个闪烁的白色文件夹,但有趣的是,通过 EFI 启动可以让它看到 Chromium OS 安装。我以前没有在这个级别上使用过 MacBook,所以请小声点 >.<
编辑:感谢 @cory-t,我取得了一些进展,但现在我被困在这里,我不知道该选什么,以防我的 MacBook 变砖 => 终端输出
更新:我尝试了所有 4 种方法,但都没有成功。我看到的只是一个带有问号的白色文件夹。仍然如此。
更新:我彻底卸载了 Chrome OS,并用 KDE 替换它,但仍然
efibootmgr: EFI variables are not supported on this system
答案1
广义上讲,有两种方法可以实现这一点,但这两种方法中都有很多变体。请注意,在开始之前,您应该了解分区表布局。我建议您sudo gdisk -l /dev/sda
从紧急 Linux 磁盘输入。除其他外,这将显示如下内容:
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
此示例显示了一个纯 GPT 磁盘 --GPT: present
表示该磁盘是 GPT 磁盘,MBR: protective
表示它是标准合法 GPT 磁盘。如果它读取MBR: hybrid
和GPT: present
,则表示该磁盘是混合 MBR 的 GPT 磁盘;如果它读取MBR: MBR only
和GPT: not present
,则表示该磁盘是纯 MBR 磁盘。您拥有的磁盘类型决定了 Mac 固件的行为方式,稍后将详细说明。
您还应该查找包含Code
列的分区EF00
。如果存在,则这是EFI 系统分区 (ESP),这对于 EFI 模式启动很重要。
有了这些信息,您就可以开始考虑您的启动模式选项......
BIOS/CSM/传统模式安装
对于 Mac 上的 Linux 专用安装,在纯 MBR 磁盘上安装 BIOS/CSM/传统模式通常是最简单的。这会导致 Mac 以 BIOS 模式启动,无需配置 EFI 启动变量。不过,从您所在的位置进入此状态的具体方法取决于您当前的磁盘布局。可能的步骤包括:
- 启动 Linux 紧急系统。
- 将硬盘从 GPT 转换为 MBR。此步骤可能是或可能不是必需的,具体取决于磁盘的当前状态。请参阅本文档(我的文档的一部分
gdisk
)用于一般信息。请注意,如果您有超过四个分区,或者预计将来需要超过四个分区,则需要将一些分区设置为逻辑分区,并且存在放置问题。如果不知道扇区精确的当前分区布局,我无法更精确地进行设置。 - 安装 BIOS 模式的引导加载程序。对于 Ubuntu 和相关发行版,最简单的方法是使用引导修复。不过,我不能保证这个工具能很好地与其他发行版配合使用。你可能需要手动完成,恐怕我没有现成的指南来完成这项任务。有些发行版会将 GRUB 作为操作系统安装的一部分手动安装,对于这些发行版,它们的安装说明应该会告诉你如何操作。
让 EFI 模式启动正常工作
Mac 具有 EFI 固件,因此可以进行原生 EFI 模式启动;但是,Mac 总是有点奇怪。对于大多数基于 EFI 的计算机,如果要以 EFI 模式启动,提供 BIOS 兼容性的兼容性支持模块 (CSM) 会很复杂。(请参阅我关于这个主题的页面了解详情。)在 Mac 上,CSM 是通过硬盘上的 MBR 或混合 MBR 来激活的,因此您需要确保它确实不是存在。parted
如果磁盘分区为 GPT 磁盘,则可以使用 GParted 并擦除混合 MBR,并且gdisk
可以通过其专家菜单上的选项擦除混合 MBR n
。请注意,GPT 通常是用于 EFI 模式启动的分区表类型。因此,如果磁盘使用 MBR,您可能需要转换它,这gdisk
可以做到。(加载分区表然后通过命令将其保存回来w
可能会完成这项工作。您可能需要创建一个EFI 系统分区 (ESP),尽管。)
如果光盘或 USB 闪存驱动器支持此启动模式,Mac 也可以以 BIOS/CSM/传统模式启动。听起来您尝试的某些媒体也出现了这种情况。
帮助控制启动模式的一种方法是使用我的rEFInd 启动管理器。下载 U 盘版 rEFInd,写入 U 盘,然后编辑磁盘EFI/BOOT/refind.conf
上的文件:取消注释该scanfor
行,并确保三个 BIOS 模式启动选项(hdbios
、biosexternal
和cd
)正确无误。不是行上显示的内容scanfor
。启动 rEFInd 介质时,它应该会显示 EFI 模式启动选项仅有的。这应该能够让您以 EFI 模式启动另一个介质——当然,前提是该介质支持 EFI 模式启动(并非所有介质都支持)。请注意,rEFInd 有时显示某些启动选项的速度很慢。按 Esc 键会使其再次扫描可启动介质。
无论如何,一旦您以 EFI 模式启动 Linux 操作系统,您就应该能够使用它efibootmgr
来添加、删除和修改 EFI 启动管理器条目。Cory T 概述了如何激活特定条目,但不清楚您的 Linux 启动加载程序是否有一个条目——或者是否安装了。如果您没有安装 Linux EFI 模式启动加载程序,一种方法是将 rEFInd 安装到您的硬盘上。最好在您启动到目标操作系统本身后再执行此操作。(refind-install
脚本应该甚至可以从紧急磁盘运行,但该代码测试得相对较差,无法弄清楚它可能需要的一切,因此启动到目标操作系统是一个更安全的选择。)另一个选择是使用 Boot Repair——但如上所述,我不知道它在与 Ubuntu 不密切相关的发行版上工作得如何。我对您尝试安装的发行版不够熟悉,不知道它是否提供 EFI 模式引导加载程序。如果没有,您必须自己安装一个。请参阅我的Linux 的 EFI 引导加载程序建议页面。
答案2
您可以使用 efibootmgr 来调整 EFI 启动变量。我在我的黑色 Mac Pro 上做了同样的事情,立即进入了我的 systemd-boot。
如果你运行:
sudo efibootmgr -v
它将打印系统中所有 efi 启动项的列表。它们将以十六进制列出(0000、0001、001A 等)。我们所做的任何更改都将在完成后打印在屏幕上。假设我们想要默认的启动项,并且是启动顺序中的第一个启动项,其十六进制代码为 00B6,您将:
sudo efibootmgr -b B6 -a
这将使 boot 00B6 处于活动状态。它将显示所有已知的 efi 启动条目,所有活动条目旁边都有一个星号 (*),这些条目可能包括可用的物理块设备,如硬盘、SSD、光驱等。接下来让我们确保 boot 是 efi 寻找的第一个:
sudo efibootmgr -o 00B6
这将使启动顺序从您想要的 efi 启动项开始。执行命令后,当它再次打印设置时,您将在 BootOrder 中看到它。确保它是第一个,然后重新启动,您应该直接启动到那里,不需要选项键。