¿Cómo puedo evitar que mi gestor de arranque desaparezca?

¿Cómo puedo evitar que mi gestor de arranque desaparezca?

Realizo un arranque dual de Manjaro y Windows, a través de Grub y UEFI en un Lenovo Yoga C930, que usa Bitlocker y Secure Boot. Puedo iniciar con éxito en Manjaro si desactivo el arranque seguro en BIOS, y también puedo iniciar en Windows si vuelvo a habilitar el arranque seguro en BIOS. Por razones desconocidas y aparentemente aleatorias, perderé mi gestor de arranque de Linux. No sé si se está eliminando, o de repente no se puede reconocer, o qué, pero no puedo arrancar desde él y no aparece como una opción en BIOS.

Puedo reinstalar Grub siguiendo las instrucciones de la Wiki, pero eventualmente simplemente desaparecerá. ¿Qué está pasando y cómo puedo evitar que esto suceda?

Respuesta1

Supongo que Windows mantiene su sistema "libre de cáncer".

[EDITAR] Tiene dos soluciones, según el método de arranque que utilice, heredado y UEFI.

Legado:

Puede utilizarlo bcdcomo administrador de arranque para iniciar Windows o Linux.

Suponiendo que tiene grub instalado /dev/sday /dev/sda1es la partición EFI de Windows

En Linux:

mount /dev/sda1 /mnt
dd if=/dev/sda of=/mnt/linux.bin bs=512 count=1

En Windows:

bcdedit /create /d "Linux" /application bootsector

BCDEdit devolverá un identificador alfanumérico para esta entrada al que me referiré como {ID} en los pasos restantes. Deberá reemplazar {ID} por el identificador devuelto real. Un ejemplo de {ID} es {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. A continuación, especifiquemos qué partición alberga una copia del archivo linux.bin:

bcdedit /set {ID} device partition=c:

La ruta a nuestro archivo linux.bin:

bcdedit /set {ID}  path \linux.bin

Una entrada al menú que se muestra en el momento del arranque:

bcdedit /displayorder {ID} /addlast

y finalmente, especifiquemos cuánto tiempo se mostrarán las opciones del menú:

bcdedit /timeout 30

¡Eso es todo! Ahora reinicie y se le presentará un menú donde podrá elegir iniciar en Windows o Linux. Cuando elija Linux, accederá al menú del gestor de arranque donde podrá elegir iniciar Linux.

https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/

[EDITAR] UEFI

Su sistema Windows tiene una partición EFI desde la que arranca. En Linux, lo montas en /boot. Luego, asegúrese de que grub.cfgestá buscando la partición raíz usando uuid (de forma predeterminada lo hace): como, por ejemplo:, linux /vmlinuz-4.4.0-1-default root=UUID=6159e15d-f224-499d-88e0-437b5538f0f1 quiet splash=silentsi no es así, debe blkidenumerar el UUID de su partición raíz y adaptar la configuración de grub en /etc/grub.d.

Escribes tu configuración de grub en/boot/boot/efi/EFI/manjaro/grub.cfg

grub2-mkconfig -o /boot/boot/efi/EFI/manjaro/grub.cfg

Reinicie, "debería" estar listo para comenzar.

Respuesta2

Tuve un problema similar hace casi dos años, con un arranque dual de Trisquel Linux con Windows 8. Publiqué una pregunta/respuestaaquíen Superusuario (en ese momento me dijeron que las preguntas sobre arranque dual estaban fuera de tema en U&L, por alguna razón).

Como verá en esas publicaciones, el problema no era que Windows estuviera eliminando o sobrescribiendo GRUB, sino que cambiaba periódicamente la configuración de UEFI para indicarle que usara el gestor de arranque de Windows, en lugar de GRUB. La solución fue usar bcdedit en Windows para establecer la ruta predeterminada del cargador de arranque en GRUB, lo que resolvió mi problema.

No sé si la misma solución funcionará para usted, pero ¿quizás valga la pena intentarlo?

(Además, no creo que necesites tener el Arranque seguro habilitado para iniciar Windows. Yo inicio Windows 8 con él deshabilitado sin problemas).

Respuesta3

De hecho, lo descubrí por mi cuenta. Resulta que tuve que usar efibootmgrpara crear manualmente una nueva entrada de inicio y darle una alta prioridad. Hasta ahora, todo bien.

información relacionada