GNU/Linux >> Tutoriels Linux >  >> Linux

Définir le noyau par défaut dans GRUB

Après avoir lutté pendant 2 heures, j'ai trouvé un moyen beaucoup plus facile d'y parvenir. Je viens de RTFM.;)

Ajoutez deux lignes à /etc/default/grub

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

Faites le sudo update-grub , redémarrez, accédez à votre menu grub et sélectionnez l'élément de menu ou de sous-menu dont vous avez besoin. Le choix sera enregistré à chaque fois, puis votre ordinateur démarrera automatiquement. Lorsque vous choisissez manuellement une entrée différente, celle-ci devient la nouvelle entrée par défaut.


Je pense que la plupart des distributions ont déplacé des noyaux supplémentaires dans le sous-menu des options avancées à ce stade, comme TomTom a découvert que c'était le cas avec hisArch.

Je ne voulais pas modifier la structure de mon menu de niveau supérieur afin de sélectionner un noyau précédent par défaut. J'ai trouvé la réponse ici :

http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html

Pour résumer :

1) Trouvez le $menuentry_id_option pour le sous-menu :

$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

2) Trouvez le $menuentry_id_option pour l'entrée de menu du noyau que vous souhaitez utiliser :

$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

3) Commentez votre grub par défaut actuel dans /etc/default/grub et remplacez-le par le $menuentry_id_option du sous-menu de la première étape, et le $menuentry_id_option du noyau sélectionné de l'étape deux séparés par > .

Dans mon cas, le GRUB_DEFAULT modifié est :

#GRUB_DEFAULT=0

GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

4) Mettez à jour grub pour apporter les modifications. Pour Debian, cela se fait comme suit :

$ sudo update-grub

Fait. Maintenant, lorsque vous démarrez, le menu avancé doit avoir un astérisque et vous devez démarrer dans le noyau sélectionné. Vous pouvez le confirmer avec uname .

$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux

Revenir au noyau le plus récent est aussi simple que de commenter la nouvelle ligne et de décommenter #GRUB_DEFAULT=0 :

GRUB_DEFAULT=0

#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

puis relancer update-grub .


Comme mentionné dans les commentaires, vous pouvez définir le noyau par défaut pour démarrer en utilisant le grub-set-default X commande, où X est le numéro du noyau dans lequel vous souhaitez démarrer. Dans certaines distributions, vous pouvez également définir ce nombre en modifiant le /etc/default/grub fichier et paramètre GRUB_DEFAULT=X , puis en exécutant update-grub .

Le nombre est l'index d'un tableau de paramètres de noyau/noyau affiché dans le menu GRUB lors du démarrage, 0 étant la première entrée (la plus haute). Vous pouvez généralement trouver le bon numéro en recherchant menuentry lignes en /boot/grub/grub.cfg , comme ceci :

grep menuentry /boot/grub/grub.cfg

Vous verrez chaque noyau répertorié avec le nom affiché dans le menu de démarrage GRUB. Le premier est 0, le second est 1, et ainsi de suite.


Linux
  1. Linux - Définir le noyau par défaut dans Grub ?

  2. Comment changer le programme de « lecture » ​​par défaut ?

  3. Définir Emacs -nw comme éditeur par défaut ?

  4. Comment définir le point de montage par défaut ? ?

  5. Définir Mplayer comme application par défaut ?

Comment définir une adresse par défaut dans cPanel

Comment définir par défaut Ruby 2.1.2 ?

Comment définir votre adresse par défaut dans cPanel

Faire fonctionner la sauvegarde par défaut avec GRUB2... ?

Comment configurer deux routes par défaut sous Linux

Comment définir la passerelle par défaut