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.