rEFInd 菜单未显示在双 Mac/Ubuntu 机器上

rEFInd 菜单未显示在双 Mac/Ubuntu 机器上

我在使用 rEFInd 时遇到了一点问题,但找不到有关它的具体信息。

我使用 rEFInd 在我的 MacBook Pro 3.1 上成功安装了 Ubuntu 14.04 和 OS X Yosemite 双启动,但现在启动 Ubuntu 后,重启后 rEFInd 菜单不显示。它直接进入 grub。再次启动 OS X 后(在启动时使用选项键)有时rEFInd 有时会出现,有时不会,无法弄清楚它是如何触发的。

有没有办法确保无论我之前启动了哪个操作系统,rEFInd 都会首先启动?


编辑

使用efibootmgr -v给我:

BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0080,0000
Boot0000* opensuse-secureboot   HD(4,1962b000,4e800,11f33185-0ff8-493d-86bd-b9fee568adb8)File(\EFI\opensuse\shim.efi)
Boot0001* ubuntu    HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\ubuntu\shimx64.efi)
Boot0080* Mac OS X  HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\refind\refind_x64.efi)
Boot0081* Mac OS X ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,1d02ba00,0b1ce04a-50b7-40b5-94f0-1a255d748d15)
Boot0082* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)
BootFFFF* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)File(\System\Library\CoreServices\boot.efi)

如果我将 NextBoot 的 -option 设置-n为 0080,则重启后,rEFInd 就会出现。FFFF 会直接带我进入 OSX。0081 似乎失败了。

谢谢您的帮助!

答案1

操作系统有时会重置默认引导程序,特别是当它们升级标准引导加载程序时。实际上没有办法阻止这种情况发生,因此您必须知道如何在问题发生时纠正它。在 Linux 中,这是通过使用efibootmgr程序。在 OS X 中,它通过bless。 看这里了解更多信息efibootmgr

如果每次重启时都会发生这种变化,那么一定出了问题。如果 Ubuntu 每次重启时都会将 GRUB 重置为默认设置,那么我个人会删除它——但我不喜欢 GRUB(以至于我分叉了 rEFIt 来制作 rEFInd 而不是处理 GRUB)。我想你也可以efibootmgr关机脚本,但这样做可能会脱离现实并引发问题,所以我不愿意这样做。


编辑:

是的,按照您的建议更改BootOrder变量(通过-o选项efibootmgr)是合适的。您可以使用以下命令删除 OpenSUSE 条目:

sudo efibootmgr -b 0 -B

可能安装了 OpenSUSE 文件,您可以使用它们删除它们rm——可能是sudo rm -r /boot/efi/EFI/opensuse来自 Ubuntu。(这些文件本身不会造成任何危害,但它们可能会造成混淆或在将来意外重新激活。)您可以以类似的方式删除 Ubuntu GRUB,尽管如果/当 Ubuntu 将来更新它时可能会重新安装它。此外,将其保留作为启动的备份方法可能是有意义的。

如果您保留安装的 Ubuntu 的 GRUB 但不想在 rEFInd 的菜单中看到它,您可以使用dont_scan_dirs或(可能来自 Ubuntu)dont_scan_files来隐藏 GRUB 条目。refind.conf/boot/efi/EFI/refind/refind.conf

答案2

这发生在我身上,我在 Ubuntu 中使用以下命令修复了它(这特定于您的情况,因为您的 Ubuntu 启动是Boot0001*):

sudo efibootmgr -o 80,1

如果你再次输入sudo efibootmgr,你的启动顺序现在应该是BootOrder: 0080,0001。这保证了 Mac 首先启动,并且由于 rEFInd 已安装在 Mac 中,因此它应该首先出现。

相关内容