125 votes

Définir un noyau "plus ancien" comme entrée par défaut de Grub.

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

Je sais que je peux régler le GRUB_DEFAULT=0 pour la première page de Grub mais comment puis-je le configurer pour démarrer par défaut à partir d'un noyau dans la deuxième page (page avancée) ?

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

Questions connexes :
Comment faire pour que Windows démarre par défaut dans le boot loader ?
Comment changer l'ordre de démarrage de Grub ?

160voto

ananaso Points 3650

D'abord, faites une copie de sauvegarde de /etc/default/grub . Si quelque chose ne va pas, vous pouvez facilement revenir à la bonne copie connue.

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

Modifiez ensuite le fichier en utilisant l'éditeur de texte de votre choix (par exemple gedit, etc.).

sudo -H gedit /etc/default/grub

Trouvez la ligne qui contient GRUB_DEFAULT - c'est ce que vous devez modifier pour définir la valeur par défaut. Vous devez connaître le nom complet du noyau que vous voulez - ex. Ubuntu, with Linux 3.13.0-53-generic - ainsi que le nom complet du "menu avancé" - par ex. Advanced options for Ubuntu .

Vous combinez ensuite ces deux chaînes avec > et mettre GRUB_DEFAULT à eux comme : GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic" (y compris les citations).

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

sudo update-grub

Voir aussi : Manuel de GNU Grub 2.02 ou plus spécifiquement section 15.1.0 sur le réglage de la valeur par défaut. .


Remarque : il existe une méthode utilisant des chiffres pour accéder aux noyaux et aux menus, mais elle n'est pas recommandée car elle n'est pas fiable lors des mises à jour des noyaux.

65voto

La meilleure solution pour moi a été de mettre (dans /etc/default/grub ):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Avec ce réglage, 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 à modifier votre configuration.

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

La solution vient de la lecture : info grub-mkconfig

32voto

sarnold Points 1641

Maintenant qu'un Advanced est un menu par défaut dans Ubuntu, vous devrez le sélectionner avant le noyau que vous voulez en utilisant la commande > caractère.

Définir par exemple :

GRUB_DEFAULT="1>7"

sur /etc/default/grub et relancer sudo update-grub .

Il est important de noter que pour les entrées du menu Grub, la numérotation commence avec 0 . Par conséquent, le 1 ci-dessus renvoie à la Advanced menu. Par précaution, vous voudrez peut-être régler initialement GRUB_TIMEOUT=5 . Certains peuvent être incapables d'accéder à Grub en frappant une touche au moment du démarrage. Il s'agit d'un filet de sécurité au cas où vous pointeriez accidentellement vers quelque chose comme Memory test à la place. Il est également nécessaire d'inclure les chiffres ci-dessus entre guillemets. Sinon, cela ne fonctionnera pas.

J'ai testé sur 16.04 LTS.

17voto

William Whyte Points 1036

Pour pouvoir définir l'option de démarrage à utiliser par défaut, vous devez savoir ce qu'il en est... donc :

Pour afficher les entrées du menu sans réellement démarrer 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 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re "s/(.? )'(\[^'\]+)'.\*/\\1 \\2/"
menuentry  Ubuntu
submenu  Advanced options for Ubuntu
    menuentry  Ubuntu, with Linux 4.4.0-34-generic
    menuentry  Ubuntu, with Linux 4.4.0-34-generic (upstart)
    menuentry  Ubuntu, with Linux 4.4.0-34-generic (recovery mode)
menuentry  System setup

3voto

cipricus Points 2121

Pour le faire avec une interface graphique, j'utilise Grub Personnalisateur (Je suis à Mint mais cela ne compte pas ici).

Le moyen le plus simple et le plus direct (merci à @eMKi pour la suggestion dans le commentaire) - le mieux adapté à un cadre permanent, en Paramètres généraux > entrée par défaut > prédéfini il suffit de sélectionner le noyau souhaité dans la liste déroulante.

enter image description here


Ou, dans le cas où l'on a besoin que l'"entrée démarrée précédemment" soit celle sélectionnée (ce qui peut être utile dans le cas d'un double démarrage avec Windows lors d'une mise à jour de Windows qui nécessite un redémarrage, par exemple) - garder l'option Options avancées dans la liste Grub au cas où la liste par défaut serait modifiée dans Grub Customizer :

enter image description here

sous Paramètres généraux sélectionnez le entrée par défaut : entrée amorcée précédente .

enter image description here

Ensuite, redémarrez, et pendant le démarrage, sélectionnez l'entrée "Options avancées" dans la liste Grub :

enter image description here

et sélectionnez l'ancien noyau

enter image description here

Au prochain redémarrage, l'élément "Options avancées" sera celui sélectionné par défaut dans la liste Grub et le dernier noyau sélectionné en dessous sera démarré (sans ouvrir la liste complète des noyaux).

Dans le cas où Windows est utilisé, ou une autre option dans la liste Grub, n'oubliez pas de refaire la procédure précédente.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X