GNU/Linux >> Tutoriales Linux >  >> Linux

Establecer kernel predeterminado en GRUB

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.


Linux
  1. Linux – ¿Establecer kernel predeterminado en Grub?

  2. ¿Establecer Emacs -nw como editor predeterminado?

  3. ¿Cómo establecer el punto de montaje predeterminado?

  4. ¿Establecer Mplayer como aplicación predeterminada?

  5. No se puede establecer una contraseña de GRUB en un sistema Raspberry Pi 3

Cómo establecer una dirección predeterminada en cPanel

Cómo configurar su dirección predeterminada en cPanel

¿Cómo configuro un nick predeterminado para nuevas conexiones irssi?

¿Cómo establecer un entorno de escritorio predeterminado al iniciar el sistema?

Cómo configurar dos rutas predeterminadas en Linux

¿Cuál es el archivo predeterminado para `hostname`?