¿Cómo hacer que grub2 recuerde la última opción?

102

Grub2: la documentación de Ubuntu de la comunidad dice lo siguiente:

Se puede guardar un sistema operativo ejecutando sudo grub-set-default si DEFAULT = salvado se configura en / etc / default / grub. También se puede guardar si GRUB_SAVEDEFAULT = true también se establece en / etc / default / grub. En este caso, el sistema operativo predeterminado permanece hasta que se seleccione manualmente un nuevo sistema operativo del menú GRUB 2 o se ejecute el comando grub-set-default.

Pongo las líneas DEFAULT=savedY GRUB_SAVEDEFAULT=trueen /etc/default/grub, y corrí sudo grub-set-default. Aquí está la salida:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot 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/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <[email protected]>.

¿No estoy siguiendo la documentación correctamente? ¿Cuál es la forma correcta de hacer esto?

Jay Sullivan
fuente
2
Después de cambiar el archivo grub, es mejor que siempre ejecutes " sudo update-grub".
Julien Chau
Simplemente ejecute: sudo grub-set-default guardado Es así de simple.
T. Coles

Respuestas:

153

La documentación en este caso es incorrecta. Todas las variables en /etc/default/grubprincipio con GRUB_, por lo que es GRUB_DEFAULT=saved, no DEFAULT=saved . He corregido el wiki de Ubuntu para reflejar eso.

El manual oficial de grub describe esto correctamente: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Ponga lo siguiente en /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Entonces corre:

sudo update-grub
Jordan Uggla
fuente
44
+1 para el enlace, he editado su respuesta con la solución que funcionó para mí (que obtuve del enlace que proporcionó)
Jay Sullivan
El enlace en esta respuesta está roto. 'Página 404'.
sdlins
¿Debo eliminar la línea existente GRUB_DEFAULT=0?
usuario25
@ user25 yes remove GRUB_DEFAULT=0, la línea debería leerGRUB_DEFAULT=saved
ctrl-alt-delor
4

En mi caso, no funcionaba para las entradas definidas a través de las /etc/grub.d/40_customcuales faltaba la savedefaultlínea.

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}
ccpizza
fuente
3

Está olvidando el número (es decir, "ENTRADA es un número o un título de elemento de menú" en su texto).

sudo grub-set-default 1

para que la opción 1 sea la predeterminada.

Ejecute siempresudo update-grub después de modificar el /etc/default/grubarchivo para aplicar los cambios.

Rinzwind
fuente
77
Esto no funcionó para mí, solo configura el menú de GRUB para que apunte a la entrada n. ° 1, no la última opción
Jay Sullivan
Si su opción de menú estaría enterrada en un submenú, como dentro de 'Opciones avanzadas para ubuntu', el formato es 'submenu-index> submenu-item-index'. Por lo tanto, deberá especificar 1> 'índice de su elección'. También se supone que puede especificar por nombre de cadena para cada selección.
Epu
2

savedefault no funcionará si no hay un encabezado adecuado en grub.cfg generado automáticamente

Para generar el encabezado adecuado, debe configurarlo en / etc / default / grub

GRUB_DEFAULT=saved

y haga grub-mkconfig para sustituir su copia de grub.cfg

grub-mkconfig -o /boot/grub.cfg

savedefault de Grub 2.02 no requiere ningún argumento adicional

Puede ver la fuente de savedefault en grub.cfg

Dblmok
fuente
Mire la respuesta de @ccpizza, puede ser esto útil: askubuntu.com/a/674148/97838
Hibou57