Estoy ejecutando GRUB 2.00 en un sistema Gentoo Linux.
Compilo mis propios núcleos manualmente, y luego los instalo /boot
con make install
. Tengo los siguientes núcleos en /boot
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
grub2-mkconfig
Resultados en ejecución en 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 /boot/grub2/grub.cfg
archivo 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 el
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 la tercera ( 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 por defecto 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 núcleo desde el que arranqué y lo selecciona automáticamente del submenú. Es solo que no me gusta acceder al submenú.
-o /boot/grub2/grub.cfg
como archivo de salida. ¿El directorio/boot/grub/
todavía existe?Respuestas:
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 arrancar.
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 "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 debe ser tal que vmlinuz-3.7.4-gentoo-5 sea la primera imagen cuando ejecute grub2-mkconfig .
fuente
Si tiene un submenú en su grub.cfg, debe usar dos dígitos como este:
El primero es el índice del menú, y el segundo es el índice del submenú.
Por ejemplo, para arrancar la última entrada desde la configuración de esta manera:
Deberías usar:
y reiniciar.
fuente
también puedes usarlo
GRUB_DEFAULT=saved
. En este caso usaríaso si es solo para el próximo arranque:
fuente
Tratar
Esto mueve todos los núcleos no utilizados a un directorio de respaldo, ahora:
Esto solo agrega opciones
r5
a su menú. Después de hacerlo, lea este este enlace y luego Reame todos los granos en el directorio de copia de algo que no sea vmlinuz si insiste en mantenerlosfuente
Con centos7 (o RHEL7) y grub2:
grub usa la entrada 'saved_entry' de grubenv como arranque predeterminado, fragmento de /boot/grub2/grub.cfg:
para comprobar cuál es la 'entrada guardada' ahora es mi compilación:
para cambiarlo, por ejemplo, a mi compilación de depuración:
fuente
Lo que hice para lograr el resultado deseado había sido:
establecer el
GRUB_DEFAULT=saved
como se describe en lagrub-set-default
ayudagrub-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.
Establecer el valor predeterminado
grub-set-default "1>2"
Crea un nuevo archivo en / boot / grub llamado grubenv con la información requerida.
Después de eso, recreé el archivo de configuración.
grub-mkconfig > /boot/grub/grub.cfg
Y he visto que la configuración se cambió 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
fuente
Puede establecer la opción predeterminada por valor numérico. Si establece
en
/etc/default/grub
Establecerá el valor predeterminado en la entrada gentoo-5.
GRUB_DEFAULT
tiene cero desplazamiento, por lo que 3 seleccionará la cuarta entrada que desee.fuente
GRUB_DEFAULT=3
como dijiste, luego volví a corrergrub2-mkconfig
. Pero en el momento del arranque, la entrada predeterminada sigue siendovmlinuz-3.7.4-gentoo-third
.GRUB_SAVEDEFAULT=true
No debería importar, pero no es necesario con números./etc/default/grub
archivo.Sospecho que eso
grub2-mkconfig
ordena los núcleos en orden inverso, suponiendo que contienen principalmente números de versión que aumentan monotónicamente. Así que comienza a elegir tus etiquetas para que se ajusten a esa convención.fuente
mv esos archivos de versión nuevos / no utilizados en / boot a un directorio de copia de seguridad, 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 cuadro de diálogo de rescate, luego todo estará bien.
Es el método más adecuado, creo. Estoy usando ubuntu 14.04.
fuente
en ubuntu:
grub-pc te permitirá elegir qué menú.
ver: /ubuntu/384388/how-to-select-option-in-configuration-grub-pc-menu
fuente