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_dirs
或dont_scan_files
in 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 中,因此它应该首先出现。