web-dev-qa-db-fra.com

Définir le noyau "ancien" comme entrée de groupe par défaut

J'ai installé un noyau principal à des fins de test. Je voudrais configurer grub pour démarrer à partir de l’ancien noyau par défaut.

Je sais que je peux définir le paramètre GRUB_DEFAULT=0 pour la première page de grub, mais comment puis-je le configurer pour qu'il démarre par défaut à partir d'un noyau de la deuxième page (page Advanced)?

Je préférerais le faire sans installer d’autres logiciels (ex. Grub-customizer).

Questions connexes:
Comment définir Windows pour démarrer par défaut dans le chargeur de démarrage?
Comment changer l'ordre de démarrage de grub?

89
To Do

Commencez par créer une copie de sauvegarde de /etc/default/grub. Si quelque chose ne va pas, vous pouvez facilement revenir à la copie en bon état.

Sudo cp /etc/default/grub /etc/default/grub.bak

Editez ensuite le fichier à l’aide de l’éditeur de texte de votre choix (par exemple, gedit, etc.).

Sudo -H gedit /etc/default/grub

Recherchez la ligne qui contient GRUB_DEFAULT. C'est ce que vous voudrez éditer pour définir la valeur par défaut. Vous devez connaître le nom complet du noyau de votre choix - par exemple. Ubuntu, with Linux 3.13.0-53-generic - avec le nom complet du "menu avancé" - par exemple. Advanced options for Ubuntu.

Vous combinez ensuite ces deux chaînes avec > et définissez-les GRUB_DEFAULT comme suit: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic" (avec guillemets).

Enregistrez-le, puis construisez le menu grub mis à jour.

Sudo update-grub

Voir aussi: GNU GRUB Manual 2.02


Remarque: Il existe une méthode utilisant des nombres pour accéder aux noyaux et aux menus, mais cela n’est pas recommandé, car elle n’est pas fiable lors des mises à jour du noyau.

122
DaimyoKirby

La meilleure solution pour moi était de définir (dans /etc/default/grub):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Avec ces paramètres, la dernière valeur sélectionnée est conservée pour le prochain démarrage. Si vous avez un nouveau noyau, vous n'avez pas besoin de modifier votre configuration.

N'oubliez pas de réexécuter Sudo update-grub

La solution consiste à lire: info grub-mkconfig

19
Martin T.

Maintenant que le menu par défaut Advanced est Ubuntu, vous devez le sélectionner avant le noyau que vous souhaitez utiliser avec le caractère >.

Set par exemple:

GRUB_DEFAULT="1>7"

dans /etc/default/grub et relancez Sudo update-grub.

Il est important de noter que pour le GRUB, la numérotation des entrées de menu commence par 0. Par conséquent, le 1 ci-dessus pointe vers le menu Advanced. Par précaution, vous souhaiterez peut-être définir initialement GRUB_TIMEOUT=5. Certains risquent de ne pas pouvoir accéder à GRUB en appuyant sur une touche au moment du démarrage. Ceci est un filet de sécurité au cas où vous pointez accidentellement quelque chose comme Memory test à la place. Il est également nécessaire d'inclure les nombres ci-dessus entre guillemets. Cela ne fonctionnera pas autrement.

J'ai testé sur 16.04 LTS.

18
sarnold

Pour pouvoir définir l'option de démarrage à utiliser par défaut, vous devez savoir ce qu'il y a ... so:

Pour afficher les entrées de menu sans démarrer réellement, essayez quelque chose comme:

 $ lsb_release -s -rdc 
 Ubuntu 16.04.4 LTS 
 16.04 
 xenial 
 
 $ update-grub --version 
 grub-mkconfig (GRUB) 2.02 ~ beta2-36ubuntu3.17 
 
 $ grep -Ei 'sous-menu | menuentry' /boot/grub/grub.cfg | sed -re "s/(.?) '([^'] +) '. */\ 1\2 /"
 menuentry Ubuntu 
 sous-menu Options avancées pour Ubuntu 
 menuentry Ubuntu, avec Linux 4.4.0-34-generic 
 menuentry Ubuntu, avec Linux 4.4.0-34-generic (upstart) 
 menuentry Ubuntu, avec Linux 4.4.0-34-generic ( mode de récupération) 
 menuentry Configuration du système 
 
6
Hannu