GRUB_DEFAULT = _ no funciona correctamente

GRUB_DEFAULT = _ no funciona correctamente

Hice esta configuración debido a un error de actualización del Kernel:

GRUB_DEFAULT = 4

en/etc/default/grub

De lo que ejecuté

sudo setup-grub

Sin embargo, no funcionó. Mi versión deseada es 4.2.0-16-genérica, porque 4.2.0-18 y 4.2.0-17 (que en realidad no figuran en la lista) no funcionan. En la lista, 4.2.0-16 ocupa el cuarto lugar.

Cuando no funcionó, probé esto:

GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"

y

sudo setup-grub

sin embargo, todavía no funcionó y abrió una versión del kernel que no funcionaba. Actualmente sólo puedo acceder a 4.2.0-16 manualmente a través de las opciones avanzadas de Ubuntu, pero quiero que se cargue automáticamente. ¿Qué solución me recomendarías?

Las dpkg --list | grep linux-imagesalidas:

ii  linux-image-extra-4.2.0-16-generic                          4.2.0-16.19                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-17-generic                          4.2.0-17.21                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-18-generic                          4.2.0-18.22                                amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-generic                                         4.2.0.18.20                                amd64        Generic Linux kernel image

como las últimas 4 salidas (solo para Ubuntu 15.10 que contiene Kernel 4.2.0).

Respuesta1

Debe utilizar los ID de las submenulíneas correspondientes menuentry.

Nota "Opciones avanzadas para Ubuntu" es un submenu, necesitas usar su ID.

Corrergrep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg

Por ejemplo si la salida es:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-140-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
        menuentry 'Ubuntu, with Linux 4.4.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {

La configuración correcta sería:

GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"

Tenga en cuenta que también puede utilizar una numeración basada en 0, pero tenga en cuenta las entradas del submenú:

GRUB_DEFAULT="1>3"

No olvides correr update-grubal final.

Respuesta2

  1. Haga una copia de seguridad de su comida actual.

    sudo cp /etc/default/grub /etc/default/grub.bak

  2. Ahora, abre el archivo.

    sudo gedit /etc/default/grub

  3. Abra otra terminal y escriba:

    cat /boot/grub/grub.cfg | grep 4.2.0-16

    Verás una línea como esta:

    entrada de menú 'Ubuntu, con Linux 4.2.0-16-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-18-generic-advanced-esx5367c-b4ug -19sd-v6j8-ty2hj01ui3kj' {..........

  4. Copia esta línea y pégala:

EDITADO DE:

GRUB_DEFAULT="gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"

EDITADO PARA:

GRUB_DEFAULT ="gnulinux-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98>gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"

  1. Guarda el archivo.

  2. Ahora, escribe el comando:

    sudo update-grub

Respuesta3

¡DE ACUERDO! Encontré la solución. Tuve que vincular un PPA al personalizador de grub.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

Que yo:

sudo apt-get update

El siguiente paso es

sudo apt-get install grub-customizer

Después de eso, abro el personalizador de grub a través de unity dash y selecciono el kernel deseado desde allí y ¡tada! :)

Respuesta4

Pequeña función bash para enumerar todos los kernels de Ubuntu adecuados para insertar GRUB_DEFAULTen/etc/default/grub

 MENUID=$( grep -E "^\\s*(submenu) " /boot/grub/grub.cfg  | grep -oP "gnuli.*(?=')"    )
grep '(?<=menuentry_id_option ).gnuli\S+' /boot/grub/grub.cfg  -Po | \
    sed "s@'@@g" |grep -vE 'recovery|simple|gnulinux-advanced' | sed "s@^@GRUB_DEFAULT=\"${MENUID}>@; s@\$@\"@"

Producción:

GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-6.6.10-usb2-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-5.15.0-35-generic-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"

Luego simplemente elija uno, péguelo, /etc/default/grubejecútelo update-gruby reinicie.

información relacionada