¿Cómo actualizar grub en una máquina de arranque dual?

Tengo una máquina que instaló un ubuntu 16.04 en una partición y un ubuntu 16.10 en otra. Tengo una partición de 200m que monta / boot / efi.

Básicamente uso 16.04 y uso el grub instalado por 16.04.

A veces me pongo en 16.10 y actualizo el kernel. Sin embargo, no puedo actualizar el grub de mi 16.04 sin ingresarlo. Así que tengo que hacer grub-install en 16.10 para arrancar el nuevo kernel. Luego, cuando vuelvo a 16.04, actualizo-grub y grub-install, lo cual es una estupidez, creo.

¿Cómo puedo actualizar el grub de 16.04 sin ingresarlo, hay una buena solución?

¿Puedo hacer algo como actualizar el archivo de configuración de grub o usar otra partición como / boot? ¿Es este tipo de operación peligrosa?

Puede arrancar directamente una partición, no un núcleo específico. Basado en Debian (no estoy seguro acerca de otras distribuciones) agrega un enlace en / al kernel más nuevo y el segundo más reciente también. Así que arrancas el enlace al kernel más nuevo. Desactive os-prober, copie la secuencia de arranque de su unidad y partición en 40_custom.

Haga una copia de seguridad de grub.cfg actual y luego edite 40_custom

sudo cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.backup sudo nano /etc/grub.d/40_custom 

Agregue una entrada como esta a 40_custom, use su unidad y partición en lugar de (hd1,1) y sdb1:

 menuentry "Install on sdb1" { set root=(hd1,1) linux /vmlinuz root=/dev/sdb1 ro quiet splash initrd /initrd.img } 

Editar grub para desactivar os-prober:

 sudo nano /etc/default/grub 

Agregue esta línea a grub para que no agregue sus entradas y actualice grub:

 GRUB_DISABLE_OS_PROBER=true 

Y actualiza grub con todos los cambios:

 sudo update-grub 

Anterior entrada similar, también tiene la versión UUID:

¿Cómo agregar una entrada de menú de GRUB2 para iniciar Ubuntu instalada en una unidad USB?

Detalles: Cómo: Crear una pantalla GRUB2 personalizada sin mantenimiento.- Cavsfan

https://help.ubuntu.com/community/MaintenanceFreeCustomGrub2Screen

https://help.ubuntu.com/community/Grub2/CustomMenus

Usted ha descrito una limitación fundamental de GRUB: se basa en archivos de configuración que pueden generarse solo dentro de Ubuntu (o algún otro sistema operativo que admita GRUB). Normalmente, ejecutar sudo update-grub dentro del sistema operativo / distribución que controla GRUB debería hacer el truco. En algunos casos (pero probablemente no en el tuyo), puede haber problemas que hagan que esto falle, en cuyo caso se necesitaría un salto de aro aún más incómodo.

Hay varios enfoques alternativos:

  • Mi propio administrador de arranque rEFInd no se basa en una lista preconfigurada de núcleos; en su lugar, busca cargadores de arranque y kernels de Linux en el momento del arranque, y crea una nueva lista de arranque de forma dinámica. (Hay algunas advertencias relacionadas con los controladores del sistema de archivos, las opciones de configuración y los nombres del kernel; pero esto funciona bien para las instalaciones típicas de Ubuntu). los nuevos núcleos cada vez que reinicies, sin importar qué distribución utilizaste para instalar rEFInd y qué distribución tiene nuevo (s) núcleo (s).
  • Si usa un cargador de arranque, como GRUB Legacy o ELILO, que usa un formato de archivo de configuración más simple que está almacenado en la partición del sistema EFI (ESP) , puede mantenerlo manualmente. Esto agrega esfuerzo a las actualizaciones del kernel, pero si tiene varias distribuciones, esto puede ser preferible a reiniciar en la Distribución B cuando actualice el kernel de la Distribución A. Vea esta página mía para obtener información sobre cargadores de arranque EFI alternativos para Linux.
  • La especificación del cargador de arranque es una propuesta para una forma de imponer cierta estandarización en la configuración del cargador de arranque. Si se adopta, haría posible que la Distribución A actualice la configuración de su kernel de una manera que el cargador de arranque de la Distribución B reconocería y respetaría de inmediato. Personalmente, creo que esta propuesta tiene algunos defectos graves, pero también aborda un problema importante. He visto pocas evidencias de que alguno de los grandes jugadores (Canonical, Red Hat, Novell, etc.) se está quedando atrás, por lo que esta no es realmente una posibilidad práctica hoy y no es probable que lo sea en un futuro próximo . Pensé que lo mencionaría para que pueda considerar escribir herramientas que hagan a Ubuntu compatible con él, y / o presionar a Canonical para que adopte este enfoque.

Por supuesto, estoy sesgado, pero en mi humilde opinión, en este momento, IEF es la mejor manera de solucionar el problema que estás experimentando. OTOH, rEFInd todavía no es un paquete oficial de Ubuntu (aunque debería estarlo en el futuro; ahora está en las pruebas de Debian, y por lo tanto debería hacerlo en Ubuntu eventualmente). También requiere un poco de salto de aro adicional si desea utilizar el arranque seguro.

Bueno … ¿cómo puede saber GRUB que había un nuevo kernel instalado cuando no ejecuta el comando sudo update-grub ? Por lo tanto, esto es inevitable, pero la reinstalación de GRUB, por otro lado, no tiene que hacerse explícitamente; puede elegir iniciar el nuevo kernel desde las opciones de arranque avanzadas en el menú de GRUB. Sin embargo, la reinstalación de GRUB en el sistema operativo principal que está utilizando le brinda mayor comodidad, ya que puede iniciar el otro sistema directamente desde el primer nivel del menú de inicio. Desafortunadamente, no hay otra opción para manejar esta configuración de arranque dual …