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

pau*_*ock 10 mac grub2 dual-boot refind

我在使用 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)
Run Code Online (Sandbox Code Playgroud)

如果我将带有-n-option的 NextBoot 设置为 0080,则在重新启动后,rEFInd 出现。FFFF 将我直接带入 OSX。0081 好像失败了。

谢谢您的帮助!

Rod*_*ith 13

操作系统有时会重置默认引导程序,尤其是在升级其标准引导加载程序时。确实没有办法防止这种情况发生,因此您必须知道如何在问题发生时进行纠正。在 Linux 中,这是通过使用该efibootmgr程序来完成的。在 OS X 中,它是通过bless. 有关更多信息,请参见此处efibootmgr

如果每次重新启动时都发生这种杂耍,那么事情就严重错误了。如果 Ubuntu 在每次重新启动时将 GRUB 重置为默认设置,那么就个人而言,我会删除它——但我不是 GRUB 的粉丝(足以让我分叉 rEFIt 来制作 rEFInd 而不是处理 GRUB)。我想您也可以efibootmgr关闭脚本中调用但这有与现实脱节并导致问题的风险,所以我不愿意这样做。


编辑:

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

sudo efibootmgr -b 0 -B
Run Code Online (Sandbox Code Playgroud)

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

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


小智 9

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

sudo efibootmgr -o 80,1
Run Code Online (Sandbox Code Playgroud)

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