El menú rEFInd no se muestra en una máquina Mac / Ubuntu dual

10

Tengo un pequeño problema con rEFInd y no pude encontrar algo específico al respecto.

Instalé con éxito Ubuntu 14.04 para arranque dual con OS X Yosemite en mi MacBook Pro 3.1 usando rEFInd, pero ahora, después de arrancar en Ubuntu, el menú rEFInd no aparece después de un reinicio. Simplemente va directamente a la comida. Después de reiniciar nuevamente en OS X (usando la tecla de opción en el inicio) a veces aparece rEFInd, a veces no, no puedo entender cómo se activa.

¿Hay alguna manera de garantizar que rEFInd aparezca primero, sin importar qué sistema operativo haya arrancado anteriormente?


Editar

Usar efibootmgr -vme da:

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)

Si configuro el NextBoot con la opción -0080 -n, después de reiniciar, aparece rEFInd. FFFF me trae directamente a OSX. 0081 parece fallar.

¡Gracias por la ayuda!

Paulkernstock
fuente
Aquí parece ser el artículo oficial de rEFind: "Recuperarse de un golpe usando Linux" o "Usar efibootmgr para ajustar la prioridad de arranque" ayudaría: rodsbooks.com/refind/bootcoup.html
kenju

Respuestas:

11

Los sistemas operativos a veces restablecen el programa de arranque predeterminado, especialmente si actualizan sus cargadores de arranque estándar. Realmente no hay forma de evitar que esto suceda, por lo que simplemente debe saber cómo corregir el problema cuando ocurra. En Linux, esto se hace mediante el uso del efibootmgrprograma. En OS X, se hace a través de bless. Ver aquí para más información efibootmgr.

Si este malabarismo ocurre cada vez que reinicia, entonces algo está muy mal. Si Ubuntu restablece GRUB como el valor predeterminado en cada reinicio, entonces personalmente, lo eliminaría, pero no soy fanático de GRUB (lo suficiente como para bifurcarme para hacer REFInd en lugar de tratar con GRUB). Supongo que también podría llamar efibootmgren un script de apagado, pero eso corre el riesgo de desconectarse de la realidad y causar problemas, por lo que sería reacio a hacerlo.


EDITAR:

Sí, cambiar la BootOrdervariable (a través de la -oopción a efibootmgr) como sugiere es apropiado. Puede eliminar la entrada de OpenSUSE con:

sudo efibootmgr -b 0 -B

Puede haber archivos OpenSUSE instalados que puede eliminar usando rm, probablemente sudo rm -r /boot/efi/EFI/opensusede Ubuntu. (Estos archivos no deberían causar ningún daño per se, pero podrían ser confusos o reactivarse accidentalmente en el futuro). Puede eliminar Ubuntu GRUB de manera similar, aunque podría reinstalarse si / cuando Ubuntu lo actualiza en el futuro. Además, mantenerlo como método de respaldo de arranque puede tener sentido.

Si deja instalado el GRUB de Ubuntu pero no desea verlo en el menú de rEFInd, puede usar dont_scan_dirso dont_scan_filesen refind.conf(probablemente /boot/efi/EFI/refind/refind.confdesde Ubuntu) para ocultar la entrada de GRUB.

Rod Smith
fuente
Por favor vea mi edición arriba. Por lo tanto, supongo que el siguiente paso sería eliminar la entrada de uso abierto (eliminé esta distribución hace algún tiempo) y establecer el BootOrder en "0080,0001, FFFF", por ejemplo. ¿Es eso correcto? Además, no me importaría eliminar completamente GRUB2, pero ¿cómo puedo hacer esto y obtener rEFInd para iniciar Ubuntu directamente? ¿Tendré que instalar EFI Stub Loader como se indica en su sitio web? ¡Gracias de nuevo!
paulkernstock
Por favor vea mi edición arriba.
Rod Smith
Ahora esto definitivamente resolvió mi pregunta. Pero antes de eliminar GRUB2, me gustaría tener rEF y entrar en Ubuntu, pero no es así. En el menú rEFInd veo dos entradas de Ubuntu, una que dice "grub_x64" y otra que intenta iniciar directamente en Ubuntu usando el kernel vmlinuz-3.13.0-67-generic que, cuando se selecciona, se cuelga en rEFInd-booting-prompt . Golpear F2 en el menú me permitirá elegir mi versión real (3.19.0-32-generic), pero con el mismo resultado. Al presionar F2 nuevamente, las opciones se muestran en /boot/refind_linux.conf, ro quiet splash nomodeset vt.handoff=7que son las mismas que en GRUB.
paulkernstock
¿Hay una root={something}especificación en refind_linux.conf? Si no, necesita ser agregado. Debería poder hacer que esto funcione ejecutando el mkrlconfscript que viene con rEFInd, pero probablemente tendrá que agregar la --forceopción, como en sudo mkrlconf --force(pero tal vez con la ruta completa a mkrlconf). Si eso todavía omite la root=opción, muéstrame qué sucede cuando escribes cat /proc/cmdline.
Rod Smith
Lo refind-linux.confque hice usando su mkrlconf-script tiene tres entradas con una root=especificación-(ver aquí ). En GRUB2 tuve que agregar la opción nomodesetpara ejecutar mi nVidia-GPU. cat /proc/comdlineme da: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Además, a pesar de que el proceso de arranque se cuelga visualmente en la pantalla de inicio de rEFInd, el sistema parece iniciarse, por ejemplo, mi fan-control-daemon se está iniciando y los ventiladores van despacio.
paulkernstock
8

Esto me sucedió y lo arreglé con lo siguiente mientras estaba en Ubuntu (esto es específico para su caso como lo es su arranque de Ubuntu Boot0001*):

sudo efibootmgr -o 80,1

Si vuelve a escribir sudo efibootmgr, su orden de inicio debería ser ahora BootOrder: 0080,0001. Esto garantiza que Mac se inicie primero, y dado que rEFInd se instaló en Mac, entonces debería aparecer primero.

iDuran
fuente