Comment faire en sorte que grub2 se souvienne du dernier choix?


102

Grub2 - Community La documentation Ubuntu dit ce qui suit:

Vous pouvez enregistrer un système d'exploitation en exécutant sudo grub-set-default si DEFAULT = saved est défini dans / etc / default / grub. Il peut également être enregistré si GRUB_SAVEDEFAULT = true est également défini dans / etc / default / grub. Dans ce cas, le système d'exploitation par défaut reste actif jusqu'à ce qu'un nouveau système d'exploitation soit sélectionné manuellement dans le menu GRUB 2 ou que la commande grub-set-default soit exécutée.

J'ai mis les lignes DEFAULT=savedET GRUB_SAVEDEFAULT=truedans /etc/default/grub, et a couru sudo grub-set-default. Voici la sortie:

$ 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 <bug-grub@gnu.org>.

Est-ce que je ne suis pas la documentation correctement? Quelle est la bonne façon de faire cela?


2
Après avoir modifié le fichier grub, il est préférable de toujours exécuter " sudo update-grub".
— Julien Chau

Il suffit de lancer: sudo grub-set-default saved C'est aussi simple que cela.
— T. Coles

Réponses:


153

La documentation dans ce cas est fausse. Toutes les variables /etc/default/grubdépart avec GRUB_, il est donc GRUB_DEFAULT=saved, non DEFAULT=saved . J'ai corrigé le wiki Ubuntu pour refléter cela.

Le manuel officiel de grub décrit cela correctement: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Mettez ce qui suit dans /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Puis lancez:

sudo update-grub

4
+1 pour le lien, j'ai modifié votre réponse avec la solution qui me convenait (que j'ai tirée du lien que vous avez fourni)
— Jay Sullivan

Le lien dans cette réponse est cassé. 'Page 404'.
— Sdlin

dois-je supprimer la ligne existante GRUB_DEFAULT=0?
— utilisateur25

@ user25 oui supprimer GRUB_DEFAULT=0, la ligne doit être lueGRUB_DEFAULT=saved
— ctrl-alt-delor

4

Dans mon cas, cela ne fonctionnait pas pour les entrées définies via /etc/grub.d/40_customlesquelles la savedefaultligne était manquante .

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

3

Vous oubliez le numéro (c.-à-d. Que "ENTRÉE est un numéro ou un titre d'élément de menu" dans votre texte).

sudo grub-set-default 1

pour que l'option 1 soit la valeur par défaut.

Toujours exécuter sudo update-grubaprès avoir modifié le /etc/default/grubfichier pour appliquer les modifications.


7
Cela n'a pas fonctionné pour moi, cela a simplement défini le menu GRUB pour qu'il pointe vers l'entrée n ° 1, pas le dernier choix
— Jay Sullivan

Si votre option de menu est enterrée dans un sous-menu, comme dans "Options avancées pour Ubuntu", le format est "index de sous-menu> index de sous-menu". Vous devez donc spécifier 1> "index de votre choix". Vous êtes également censé pouvoir spécifier un nom de chaîne pour chaque sélection.
— Epu

2

savedefault ne fonctionnera pas s'il n'y a pas d'en-tête approprié dans le fichier grub.cfg généré automatiquement

Pour générer l’en-tête approprié, vous devez le définir dans / etc / default / grub.

GRUB_DEFAULT=saved

et faites grub-mkconfig pour remplacer votre copie de grub.cfg

grub-mkconfig -o /boot/grub.cfg

savedefault de Grub 2.02 ne nécessite aucun argument supplémentaire

Vous pouvez voir la source de savedefault dans grub.cfg


Regardez la réponse de @ccpizza, peut-être que cela vous aidera: askubuntu.com/a/674148/97838
— Hibou57
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.