Estoy ejecutando GRUB 2.00 en un sistema Gentoo Linux.

Compilo mis propios kernels manualmente y luego los instalo en /boot con make install. Tengo los siguientes núcleos en /boot en este momento:

# ls -1 /boot/vmlinuz* /boot/vmlinuz-3.7.4-gentoo-5 /boot/vmlinuz-3.7.4-gentoo-first /boot/vmlinuz-3.7.4-gentoo-fourth /boot/vmlinuz-3.7.4-gentoo-third 

La ejecución de grub2-mkconfig da como resultado el siguiente resultado:

# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.7.4-gentoo-third Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth Found linux image: /boot/vmlinuz-3.7.4-gentoo-first Found linux image: /boot/vmlinuz-3.7.4-gentoo-5 done 

Si ahora leo el archivo /boot/grub2/grub.cfg resultante, noto que se han creado las siguientes entradas:

  • Una entrada principal predeterminada que comienza vmlinuz-3.7.4-gentoo-third
  • Un submenú con todas las demás entradas (incluidas las de recuperación), en el mismo orden que grub2-mkconfig comando

El problema es que en el momento del arranque me gustaría cargar por defecto la quinta revisión de mi kernel (vmlinuz-3.7.4-gentoo-5), no el tercero (vmlinuz-3.7.4-gentoo-third). También prefiero no acceder al submenú para elegir el kernel correcto para cargar.

¿Cómo puedo cambiar este comportamiento? ¿Cómo puedo decirle a GRUB que quiero ejecutar la quinta revisión de mi kernel de forma predeterminada y no la tercera revisión anterior? En general, ¿cómo puedo cambiar la línea de entrada predeterminada para que coincida con el kernel que quiero y no con uno aparentemente aleatorio elegido por GRUB?

También intenté poner las siguientes líneas en /etc/default/grub:

GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true 

Esto no soluciona el problema de la manera que deseo. Pero al menos GRUB parece recordar el último kernel desde el que arranqué y lo selecciona automáticamente del submenú. Es solo que no me gusta acceder al submenú.

Comentarios

  • Me di cuenta de que especificó -o /boot/grub2/grub.cfg como archivo de salida. ¿El directorio /boot/grub/ todavía existe?

Respuesta

Para seleccionar una entrada de menú en el submenú «Opciones avanzadas», configure GRUB_DEFAULT = «1> 3». Ahora puede ejecutar grub2-mkconfig para generar el archivo de configuración de grub . En el próximo reinicio, vmlinuz-3.7.4-gentoo-5 debería iniciarse.

Nota : Esto no cambiará la entrada predeterminada en el menú de grub, es decir, la entrada predeterminada seguirá indicando la misma entrada que tiene ahora. Pero la imagen que se iniciará por defecto será la cuarta imagen en las «Opciones avanzadas». Para hacer que vmlinuz-3.7.4-gentoo-5 sea la entrada predeterminada en el menú de grub, el orden de las imágenes debería ser tal que vmlinuz-3.7.4-gentoo-5 debería ser la primera imagen cuando ejecute grub2-mkconfig .

Comentarios

  • Tenga en cuenta que las comillas son importantes. Es decir. GRUB_DEFAULT = 1 > 3 no ‘ trabajaron.

Respuesta

Si tiene un submenú en su grub.cfg, debe usar dos dígitos como este:

grub-reboot "1>3" 

El primero es el índice del menú y el segundo es el índice del submenú .

Por ejemplo, para iniciar la última entrada de la configuración de esta manera:

grep menu /boot/grub/grub.cfg menuentry "Debian GNU/Linux" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { submenu "Advanced options for Debian GNU/Linux" $menuentry_id_option "gnulinux-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 4.6.0-0.bpo.1-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-4.6.0-0.bpo.1-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-advanced-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (sysvinit)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-init-sysvinit-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { menuentry "Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)" --class debian --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-3.16.0-4-amd64-recovery-1ffa16a9-fda2-43b5-91b9-c91a08ff190f" { 

debe usar:

grub-reboot "1>5" 

y reinicie.

Comentarios

  • Extraño. el índice del submenú comienza con 0, mientras que el menú principal desde 1

Respuesta

también puede usar GRUB_DEFAULT=saved. En este caso, «usaría

$ grub2-set-default -h Usage: grub2-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

o si es solo para el próximo arranque:

$ grub2-reboot -h Usage: grub2-reboot [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB, for the next boot only. -h, --help print this message and exit -v, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub2 instead of the /boot/grub2 directory MENU_ENTRY is a number, a menu item title or a menu item identifier. 

Responder

Con centos7 (o RHEL7) y grub2:

grub usa la entrada «Saved_entry» de grubenv por defecto para arrancar, fragmento de /boot/grub2/grub.cfg:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi 

para comprobar cuál es la «entrada_ guardada» ahora es mi compilación:

grub2-editenv list 

saved_entry=CentOS Linux (3.10.0-693.2.2.el7.ari.x86_64) 7 (Core)

para cambiarlo, por ejemplo, a mi compilación de depuración:

grub2-editenv - set saved_entry="CentOS Linux 3.10.0-693.2.2.el7.ari.x86_64.debug) 7 (Core)" 

Respuesta

Pruebe

mkdir -p /boot/grub/backup mv -v /boot/grub/vmlinuz-3.7.4-gentoo-{first,third,fourth} /boot/grub/backup 

Esto mueve todos sus kernels no utilizados a un directorio de respaldo, ahora:

grub2-mkconfig -o /boot/grub/grub.cfg 

Esto solo agrega la opción r5 a su menú. Después de hacerlo, lea este este enlace y luego vuelva a leer todos los núcleos en el directorio de copia de seguridad en algo diferente a vmlinuz si insiste en conservarlos

Respuesta

Lo que hice para lograr el resultado deseado fue:

  • establecer el GRUB_DEFAULT=saved como se describe en la grub-set-default ayuda

    grub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.

  • Establece el valor predeterminado

    grub-set-default "1>2"

    Crea un nuevo archivo en / boot / grub llamado grubenv con la información requerida.

  • Después, vuelvo a crear el archivo de configuración

    grub-mkconfig > /boot/grub/grub.cfg

Y he visto que se cambió la configuración para usar el estado guardado:

if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi

Respuesta

Puede establecer la opción predeterminada por valor numérico. Si establece

`GRUB_DEFAULT=3` 

en /etc/default/grub
Establecerá la entrada gentoo-5 de forma predeterminada.
GRUB_DEFAULT es un desplazamiento cero, por lo que 3 seleccionará la cuarta entrada que desee.

Comentarios

  • No ‘ no sé por qué, pero Parece que no ‘ no funciona. Configuré GRUB_DEFAULT=3 como dijiste, luego vuelva a ejecutar grub2-mkconfig. Pero en el momento del arranque, la entrada predeterminada sigue siendo vmlinuz-3.7.4-gentoo-third.
  • Intenta comentar GRUB_SAVEDEFAULT=true No debería ‘ t importa, pero ‘ no es necesario con nume rical.
  • No ‘ no tengo esa opción en mi /etc/default/grub archivo.

Respuesta

Sospecho que grub2-mkconfig ordena los núcleos en orden inverso, asumiendo que principalmente contienen números de versión que aumentan monótonamente. Así que comience a elegir sus etiquetas para que se ajusten a esa convención.

Respuesta

en ubuntu:

sudo grub-pc 

grub-pc le permitirá elegir qué menú.

sudo update-grub 

ver: https://askubuntu.com/questions/384388/how-to-select-option-in-configuration-grub-pc-menu

Responder

mv esos archivos de versión nuevos / no usados en /boot en un directorio de respaldo, por ejemplo /boot/back

initrd.img-3.13.0-xx-generic vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-xx-generic 

Reinicie el sistema en modo de rescate, luego elija grub en el diálogo de rescate, entonces todo estará bien.

Creo que es el método más adecuado. Estoy usando ubuntu 14.04.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *