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


10

我对rEFInd有点问题,找不到特定的东西。

我成功使用rEFInd在MacBook Pro 3.1上成功安装了Ubuntu 14.04与OS X Yosemite进行双重引导,但是现在在引导到Ubuntu后,重新引导后不会显示rEFInd菜单。它只是直接进入g。再次引导进入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)

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

谢谢您的帮助!


这似乎是rEFind的官方文章:“使用Linux从政变中恢复”或“使用efibootmgr调整启动优先级”将有所帮助:rodsbooks.com/refind/bootcoup.html
kenju

Answers:


11

操作系统有时会重置默认的引导程序,特别是如果它们升级其标准引导加载程序。确实没有防止这种情况发生的方法,因此您必须简单地知道在问题发生时如何纠正。在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_dirsdont_scan_filesrefind.conf(可能/boot/efi/EFI/refind/refind.conf来自Ubuntu)中隐藏GRUB条目。


请在上方查看我的修改。因此,我想下一步将是删除opensuse-entry(前一段时间删除了此发行版),并将BootOrder设置为“ 0080,0001,FFFF”。那是对的吗?另外,我不介意完全删除GRUB2,但是如何做到这一点并让rEFInd直接启动到Ubuntu?我是否必须按照您的网站上的指示安装EFI存根加载器?再次感谢!
paulkernstock 2015年

请在上方查看我的修改。
Rod Smith

现在,这肯定解决了我的问题。但是在删除GRUB2之前,我希望rEFInd进入Ubuntu,但事实并非如此。在rEFInd菜单中,我看到两个Ubuntu条目,其中一个说“ grub_x64”,另一个试图使用内核vmlinuz-3.13.0-67-generic直接引导到Ubuntu,如果选中,它们将挂在rEFInd-booting-prompt中。 。在菜单中按F2键可以选择实际版本(3.19.0-32-generic),但结果相同。再次按下F2时,选项在/boot/refind_linux.conf ro quiet splash nomodeset vt.handoff=7中显示为与GRUB中的相同。
paulkernstock 2015年

root={something}规范refind_linux.conf吗?如果不是,则需要添加它。您应该可以通过运行mkrlconfrEFInd随附的脚本来使此工作正常进行,但是您可能必须添加该--force选项,如中所示sudo mkrlconf --force(但可能具有的完整路径mkrlconf)。如果仍然忽略该root=选项,请告诉我当您键入时会发生什么cat /proc/cmdline
Rod Smith

refind-linux.conf我提出通过使用mkrlconf-script有三个条目与root=-specification(见这里)。在GRUB2中,我必须添加选项nomodeset以使nVidia-GPU运行。cat /proc/comdline给我:BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7。另外,尽管引导过程在rEFInd引导屏幕上直观地挂起,但系统似乎已启动,例如,我的fan-control-daemon正在启动,并且风扇运行缓慢。
paulkernstock 2015年

8

这发生在我身上,我在Ubuntu中使用以下命令修复了此问题(这是针对您的情况的,因为您的Ubuntu引导为Boot0001*):

sudo efibootmgr -o 80,1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.