El TL; DR, agregado en la edición:
La pregunta es:
¿Cómo puedo hacer que el BIOS prefiera GRUB sobre Windows Boot Manager en la misma partición de arranque UEFI?
El problema no es con Grub; Grub hace lo correcto cuando el BIOS lo inicia. El problema no es con "el disco no es de arranque", porque tanto el arranque UEFI de Windows como el arranque UEFI de Grub son arrancables. El problema es desde qué arranque UEFI el BIOS elige arrancar.
Estoy configurando una nueva computadora, y quiero que arranque por defecto en Ubuntu, pero tengo la opción de seleccionar Windows en el arranque. Esto es especialmente importante si se va la luz y vuelve; Ni siquiera estaré en la casa.
Comencé instalando Ubuntu 17.04 en mi disco NVMe interno, particionado con GPT para usar la mitad del disco y una partición de arranque UEFI separada. GRUB arranca bien, y veo el menú de arranque de GRUB en el inicio donde puedo seleccionar cualquier elemento que GRUB conozca.
Luego instalé Windows 10 Pro desde un ISO descargado recientemente. Instaló Windows Boot Manager en la misma partición UEFI, y dejó el Ubuntu intacto (¡genial!) Y eso arranca bien en Windows 10.
Sin embargo, hizo "algo" que hace que el firmware UEFI seleccione inmediatamente el Administrador de arranque de Windows en lugar de GRUB en el encendido. La única forma de iniciar Linux ahora es usar el administrador de inicio de BIOS (F11 en mi BIOS) y seleccionar el cargador de inicio GRUB manualmente. El BIOS UEFI sabe que hay varias instalaciones de arranque en la partición UEFI, porque puedo elegir entre ellas en el administrador de arranque. Sin embargo, cuando estoy en el menú de configuración en el BIOS UEFI, solo me permite elegir "UEFI arrancar mi disco interno" en la selección de prioridad de arranque; no me permite elegir qué cargador de arranque particular en esa partición usar . Y, por defecto, elige Windows, no GRUB.
Los Internet (y este sitio) sugieren que la forma antigua de solucionar esto es ejecutar update-grub
(para que GRUB reconozca Windows) y luego grub-install
(para volver a colocar GRUB en el dispositivo). Lo he hecho, pero desafortunadamente, todavía tiene el comportamiento como descrito anteriormente, donde el BIOS por defecto elige el Administrador de arranque de Windows. ( update-grub
encuentra la instalación del Administrador de arranque de Windows y la agrega al menú, y ese elemento del menú funciona cuando elijo manualmente la partición GRUB en el administrador de arranque UEFI).
¿Qué puedo hacer para que GRUB sea el arranque "predeterminado" en mi partición de arranque UEFI?
Usando una placa base MSI X399 Carbon.
Segunda edición: Debido a que la respuesta correcta termina siendo mencionada en un comentario a una respuesta, la repetiré aquí:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
fuente
Respuestas:
Hay varias maneras diferentes de hacer esto, que incluyen:
ubuntu
, dado que lo instaló desde esa distribución).bcfg
comando en un shell EFI versión 2, como se describe en la wiki de Arch Linux. Si su sistema aún no está configurado con un shell de fácil acceso, es probable que este enfoque sea más difícil de usar que los demás, pero es independiente del sistema operativo.ubuntu
entrada en la lista de EasyUEFI y moverla a la parte superior.bcdedit
- Elbcdedit
comando de Windows puede alterar el orden de arranque basado en NVRAM. Específicamente, abrir una ventana del símbolo del sistema del administrador y escribirbcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi
(opcionalmente seguido debcdedit /set "{bootmgr}" description "ubuntu"
para mantener la descripción razonable) debería ser el truco.efibootmgr
- Esta herramienta de Linux puede ajustar el orden de arranque. Comience escribiendosudo efibootmgr
solo para ver las opciones. Tenga en cuenta el número (Boot####
) asociado con laubuntu
entrada y el orden de arranque actual (en laBootOrder
línea). Luego puede ingresar un nuevo orden de inicio con laubuntu
entrada en la parte superior mediante la-o
opción. Por ejemplo, si el orden de arranque actual es 0000,0003,0007,0004 yubuntu
es 0007, escribiríasudo efibootmgr -o 0007,0000,0003,0004
para ajustar el orden de arranque.refind-mkdefault
- Este script viene con rEFInd, y es una forma de automatizar el procedimiento anterior. Si no está usando rEFInd, necesitará descargar el script aquí y hacerlo ejecutable (chmod a+x refind-mkdefault
). Luego lo ejecutará comosudo ./refind-mkdefault -L ubuntu
osudo ./refind-mkdefault -L shimx64
para hacer de GRUB la entrada de arranque predeterminada.Hay posibles problemas y complicaciones con cualquiera de estas opciones. El factor de complicación más probable es si hay
ubuntu
entradas de arranque antiguas o alternativas . Es importante que mueva el correcto a la posición superior en el orden de arranque; si mueve el incorrecto, terminará sin cambios en el comportamiento o con un arranque no funcional, lo que dificultaría el arranque. Si lo usaefibootmgr
, laBootCurrent
línea puede ayudarlo a decir qué opción debe establecer como predeterminada.Hay otras formas de hacerlo que son excesivas. Reinstalar GRUB (a través de Boot Repair o
grub-install
) debería hacer el truco, por ejemplo. Sin embargo, estos enfoques corren el riesgo de dañar una configuración GRUB que funciona bien.Tenga en cuenta también que algunos EFI tienen errores y hay otros problemas que pueden dificultar que GRUB arranque de manera confiable. Es posible que desee consultar estas preguntas y respuestas en AskUbuntu si tiene estos problemas:
fuente
sudo efibootmgr -n 0002
es mucho mejor que modificar el orden SO actual. CambiaBootNext: 0001
y saleBootCurrent: 0002
para la próxima vez, dejando intactas sus entradas actuales de GRUB. Simplemente agregue un bash conchmod +x
y ajuste ese comando junto con el reinicio.He tenido este problema exacto las últimas semanas. Lo descubrí usando estas opciones. Antes de hacer cualquiera de estas cosas, le recomiendo que vaya a su BIOS / UEFI y verifique el orden de arranque y asegúrese de que el lugar donde está instalado grub esté primero en orden.
Entonces, cómo lo veo, tienes dos opciones.
Opción 1
Lo que te recomendaría es instalar Windows 10 primero. Luego instala ubuntu. Pero sé que es un poco tabú decir "reinstalar el software", así que también ofreceré una alternativa.
opcion 2
Con su configuración actual, le recomendaría que inicie en una unidad de CD / flash Live Ubuntu e instale y ejecute
boot-repair
. Haga clic en la opción "Reparación recomendada" y siga las instrucciones proporcionadas. Revíselo cuidadosamente y lea todos los comandos antes de ejecutarlo. Esto anulará la instalación de grub actual con una nueva que con suerte debería solucionarlo.fuente
Veo varias soluciones:
efibootmgr
. En Windows no estoy seguro, pero creo que puede iniciar en una opción de recuperación que le permite configurar el UEFI. O tal vez prefiera instalar algo como rEFInd.boot
.fuente
efibootmgr
no funciona, sé que no compraré MSI.Acabo de reemplazar mi placa madre en mi computadora portátil y la comida desapareció por completo.
Sé que esto está marcado como fijo, pero pensé que podría ser útil para usted.
Hacer que grub aparezca como una opción de arranque. Necesitaba agregar un EFI a la BIOS.
Fui a la "opción de lista de arranque" en mi BIOS. Hice clic en "Agregar opción de arranque" (soy consciente de que esto es específico de BIOS). Esto me dio una opción para el nombre del archivo, que en mi caso era
\EFI\ubuntu\grubx64.efi
y le dio un nombregrub
Luego moví la
grub
entrada a la parte superior de la secuencia de arranque, y ahora se muestra como la entrada predeterminada.Es decir, es posible que solo necesite localizar el archivo EFI correcto y moverlo a la parte superior de su secuencia / orden de arranque.
fuente
Ninguna de las opciones anteriores funcionó para mí con la vieja computadora portátil HP 655. Descubrí que la solución es configurar el administrador de arranque de Windows inactivo:
Reemplace 4 con su número de administrador de arranque de Windows. Ejecute efibootmgr nuevamente y debería ver desaparecer la estrella para marcar la inactividad.
Después de que mi computadora se inicie en el menú de arranque del grupo y las ventanas aún se pueden elegir.
fuente
Una posible solución sería editar manualmente el archivo / etc / default / grub.
sudo vim /etc/default/grub
La entrada predeterminada está determinada por la
GRUB_DEFAULT=
configuración en / etc / default / grub. La primera "entrada de menú" tiene un valor de "0". Si Ubuntu es la segunda entrada en la pantalla de inicio, configure GRUB_DEFAULT = 1.Luego, necesitaría ejecutar el comando para actualizar grub config:
update-grub
Otra opción sería la instalación de grub-customizer y usar su GUI para configurar la prioridad de arranque.
fuente