Después de luchar durante 2 horas, encontré una manera mucho más fácil de lograr esto. Solo hago RTFM.;)
Agregue dos líneas a /etc/default/grub
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
Haz el sudo update-grub
, reinicie, acceda a su menú de grub y seleccione el elemento de menú o submenú que necesite. La elección se guardará cada vez y luego su computadora se iniciará automáticamente. Cuando elige manualmente una entrada diferente, se convierte en la nueva predeterminada.
Creo que la mayoría de las distribuciones han movido núcleos adicionales al submenú de opciones avanzadas en este punto, como descubrió TomTom en el caso de hisArch.
No quería alterar la estructura de mi menú de nivel superior para seleccionar un núcleo anterior como predeterminado. Encontré la respuesta aquí:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Para resumir:
1) Encuentra el $menuentry_id_option
para el submenú:
$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
2) Encuentra el $menuentry_id_option
para la entrada de menú para el núcleo que desea utilizar:
$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
3) Comente su grub predeterminado actual en /etc/default/grub
y reemplácelo con el $menuentry_id_option
del submenú del paso uno, y el $menuentry_id_option
del núcleo seleccionado del paso dos separados por >
.
En mi caso el modificado GRUB_DEFAULT
es:
#GRUB_DEFAULT=0
GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
4) Actualizar grub para realizar los cambios. Para Debian esto se hace así:
$ sudo update-grub
Hecho. Ahora, cuando arranque, el menú avanzado debería tener un asterisco y debería arrancar en el kernel seleccionado. Puedes confirmar esto con uname
.
$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux
Volver a cambiar esto al kernel más reciente es tan simple como comentar la nueva línea y descomentar #GRUB_DEFAULT=0
:
GRUB_DEFAULT=0
#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
luego vuelve a ejecutar update-grub
.
Como se menciona en los comentarios, puede configurar el kernel predeterminado para que arranque usando el grub-set-default X
comando, donde X es el número del kernel en el que desea iniciar. En algunas distribuciones también puede establecer este número editando el /etc/default/grub
archivo y configuración GRUB_DEFAULT=X
y luego ejecutar update-grub
.
El número es el índice de una matriz de kernels/configuraciones de kernel que se muestran en el menú de GRUB durante el arranque, siendo 0 la primera entrada (la más alta). Por lo general, puede encontrar el número correcto buscando menuentry
líneas en /boot/grub/grub.cfg
, así:
grep menuentry /boot/grub/grub.cfg
Verá cada kernel enumerado con el nombre que se muestra en el menú de inicio de GRUB. El primero es 0, el segundo es 1 y así sucesivamente.