Bonjour,
j’utilise l’environnement “xfce” et depuis quelques temps “grub” fait démarrer sur le dernier noyau qui apparait:

~$ uname -r
6.6.2-201.fc39.x86_64
~$ 

Pourtant, j’ai ces noyaux:

$ rpm -qa | grep kernel
libreport-plugin-kerneloops-2.17.11-3.fc39.x86_64
abrt-addon-kerneloops-2.17.1-3.fc39.x86_64
kernel-srpm-macros-1.0-20.fc39.noarch
kernel-modules-core-6.5.12-300.fc39.x86_64
kernel-core-6.5.12-300.fc39.x86_64
kernel-modules-6.5.12-300.fc39.x86_64
kernel-6.5.12-300.fc39.x86_64
kernel-modules-extra-6.5.12-300.fc39.x86_64
kernel-devel-6.5.12-300.fc39.x86_64
kernel-modules-core-6.6.2-201.fc39.x86_64
kernel-core-6.6.2-201.fc39.x86_64
kernel-modules-6.6.2-201.fc39.x86_64
kernel-6.6.2-201.fc39.x86_64
kernel-modules-extra-6.6.2-201.fc39.x86_64
kernel-devel-6.6.2-201.fc39.x86_64
kernel-modules-core-6.6.3-200.fc39.x86_64
kernel-core-6.6.3-200.fc39.x86_64
kernel-modules-6.6.3-200.fc39.x86_64
kernel-devel-6.6.3-200.fc39.x86_64
kernel-devel-matched-6.6.3-200.fc39.x86_64
kernel-headers-6.6.3-200.fc39.x86_64
kernel-modules-extra-6.6.3-200.fc39.x86_64
kernel-6.6.3-200.fc39.x86_64
kernel-modules-core-6.6.4-200.fc39.x86_64
kernel-core-6.6.4-200.fc39.x86_64
kernel-modules-6.6.4-200.fc39.x86_64
kernel-devel-6.6.4-200.fc39.x86_64
kernel-devel-matched-6.6.4-200.fc39.x86_64
kernel-6.6.4-200.fc39.x86_64
kernel-modules-extra-6.6.4-200.fc39.x86_64
kernel-modules-core-6.6.6-200.fc39.x86_64
kernel-core-6.6.6-200.fc39.x86_64
kernel-modules-6.6.6-200.fc39.x86_64
kernel-devel-6.6.6-200.fc39.x86_64
kernel-devel-matched-6.6.6-200.fc39.x86_64
kernel-modules-extra-6.6.6-200.fc39.x86_64
kernel-6.6.6-200.fc39.x86_64
~$ 

J’ai donc tenté de régénérer le “grub” en vu qu’il voit les derniers noyaux en procédant comme suit:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
UEFI
~$ 

Puis j’ai lancé ces commandes correspondantes:

# dnf reinstall grub2-efi
# grub2-mkconfig -o /boot/grub2/grub.cfg

Mais, hélas rien ne change au redémarrage🙄.
J’ai donc essayé cette commande qui avait fonctionné en 2019:

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Peine perdu…
Là, je n’ose pas aller plus loin sans solliciter vos avis éclairés.
Bonne soirée à tous.
pll

  • [supprimé] et Nicosss a répondu à ça.
    • [supprimé]

    • Meilleure réponsesélectionnée par pierrotlalune

    Bon, on est revenu à une install’ propre, avec les bon fichiers au bon endroit, on va remettre en standard ton BLSCFG, et ensuite on pourra se pencher sur le pourquoi ça ne veut pas booter avec le 6.6.6 alors que ça boot sur le 6.6.2

    • Remet /etc/default/grub BLSCFG=true
    • Refait une dernière fois $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

    Reboot. Quand tu arrive sur le menu de grub et que les différents noyaux sont proposés, tu fais “e” (pour éditer) sur la ligne du 6.6.6.
    Supprime rhgb quiet (2e ou 3eme ligne) puis fait CTRL+X
    Le démarrage va se lancer, et afficher des infos sur le boot à l’étape où ça bloque

    • [supprimé]

    pierrotlalune J’ai donc essayé cette commande qui avait fonctionné en 2019:
    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

    En 2019, c’était fedora 34 ou inférieur, c’était bien le fichier de configuration. Plus aujourd’hui, là, tu viens juste d’écraser le fichier qui permet au loader EFI de trouver la partition de boot 🙁
    T’es bon pour réinstaller la totale
    $ sudo dnf reinstall shim-* grub2-efi-* grub2-common

    Et pour ton problème initial, on aimerait bien voir à quoi ressemble justement ton grub.cfg (celui qui se trouve au bon endroit, cad /boot/grub2

      Nicosss

      Bonsoir Nicosss,

      voici:

      ~$ cat /etc/default/grub
      GRUB_TIMEOUT=5
      GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
      GRUB_DEFAULT=saved
      GRUB_DISABLE_SUBMENU=true
      GRUB_TERMINAL_OUTPUT="console"
      GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 rhgb quiet nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau"
      GRUB_DISABLE_RECOVERY="true"
      GRUB_ENABLE_BLSCFG=true
      ~$ cat /etc/dnf/dnf.conf
      # see `man dnf.conf` for defaults and possible options
      
      [main]
      gpgcheck=True
      installonly_limit=5
      clean_requirements_on_remove=True
      best=False
      skip_if_unavailable=True
      fastestmirror=true
      ~$ 

      a+
      pll

        [supprimé] Et pour ton problème initial, on aimerait bien voir à quoi ressemble justement ton grub.cfg (celui qui se trouve au bon endroit, cad /boot/grub2

        Bonsoir L0standf0und,

        voici:

        # cat /boot/grub2/grub.cfg
        #
        # DO NOT EDIT THIS FILE
        #
        # It is automatically generated by grub2-mkconfig using templates
        # from /etc/grub.d and settings from /etc/default/grub
        #
        
        ### BEGIN /etc/grub.d/00_header ###
        set pager=1
        
        if [ -f ${config_directory}/grubenv ]; then
          load_env -f ${config_directory}/grubenv
        elif [ -s $prefix/grubenv ]; then
          load_env
        fi
        if [ "${next_entry}" ] ; then
           set default="${next_entry}"
           set next_entry=
           save_env next_entry
           set boot_once=true
        else
           set default="${saved_entry}"
        fi
        
        if [ x"${feature_menuentry_id}" = xy ]; then
          menuentry_id_option="--id"
        else
          menuentry_id_option=""
        fi
        
        export menuentry_id_option
        
        if [ "${prev_saved_entry}" ]; then
          set saved_entry="${prev_saved_entry}"
          save_env saved_entry
          set prev_saved_entry=
          save_env prev_saved_entry
          set boot_once=true
        fi
        
        function savedefault {
          if [ -z "${boot_once}" ]; then
            saved_entry="${chosen}"
            save_env saved_entry
          fi
        }
        
        function load_video {
          if [ x$feature_all_video_module = xy ]; then
            insmod all_video
          else
            insmod efi_gop
            insmod efi_uga
            insmod ieee1275_fb
            insmod vbe
            insmod vga
            insmod video_bochs
            insmod video_cirrus
          fi
        }
        
        terminal_output console
        if [ x$feature_timeout_style = xy ] ; then
          set timeout_style=menu
          set timeout=5
        # Fallback normal timeout code in case the timeout_style feature is
        # unavailable.
        else
          set timeout=5
        fi
        ### END /etc/grub.d/00_header ###
        
        ### BEGIN /etc/grub.d/01_users ###
        if [ -f ${prefix}/user.cfg ]; then
          source ${prefix}/user.cfg
          if [ -n "${GRUB2_PASSWORD}" ]; then
            set superusers="root"
            export superusers
            password_pbkdf2 root ${GRUB2_PASSWORD}
          fi
        fi
        ### END /etc/grub.d/01_users ###
        
        ### BEGIN /etc/grub.d/08_fallback_counting ###
        insmod increment
        # Check if boot_counter exists and boot_success=0 to activate this behaviour.
        if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
          # if countdown has ended, choose to boot rollback deployment,
          # i.e. default=1 on OSTree-based systems.
          if  [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
            set default=1
            set boot_counter=-1
          # otherwise decrement boot_counter
          else
            decrement boot_counter
          fi
          save_env boot_counter
        fi
        ### END /etc/grub.d/08_fallback_counting ###
        
        ### BEGIN /etc/grub.d/10_linux ###
        insmod part_gpt
        insmod ext2
        search --no-floppy --fs-uuid --set=root 81e638d2-cff2-4d68-a539-3d8f53155c5d
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=boot 08C7-F71D
        
        # This section was generated by a script. Do not modify the generated file - all changes
        # will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
        #
        # The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
        # populates the boot menu. Please refer to the Boot Loader Specification documentation
        # for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.
        
        # The kernelopts variable should be defined in the grubenv file. But to ensure that menu
        # entries populated from BootLoaderSpec files that use this variable work correctly even
        # without a grubenv file, define a fallback kernelopts variable if this has not been set.
        #
        # The kernelopts variable in the grubenv file can be modified using the grubby tool or by
        # executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
        # and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
        # the kernelopts variable in the grubenv file and the fallback kernelopts variable.
        if [ -z "${kernelopts}" ]; then
          set kernelopts="root=UUID=21acff6e-0cb4-4746-b68e-f69b1298a719 ro rootflags=subvol=root nvidia-drm.modeset=1 rhgb quiet nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau "
        fi
        
        insmod blscfg
        blscfg
        ### END /etc/grub.d/10_linux ###
        
        ### BEGIN /etc/grub.d/10_reset_boot_success ###
        # Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
        if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
          set menu_hide_ok=1
        else
          set menu_hide_ok=0 
        fi
        # Reset boot_indeterminate after a successful boot
        if [ "${boot_success}" = "1" ] ; then
          set boot_indeterminate=0
        # Avoid boot_indeterminate causing the menu to be hidden more than once
        elif [ "${boot_indeterminate}" = "1" ]; then
          set boot_indeterminate=2
        fi
        # Reset boot_success for current boot 
        set boot_success=0
        save_env boot_success boot_indeterminate
        ### END /etc/grub.d/10_reset_boot_success ###
        
        ### BEGIN /etc/grub.d/12_menu_auto_hide ###
        if [ x$feature_timeout_style = xy ] ; then
          if [ "${menu_show_once}" ]; then
            unset menu_show_once
            save_env menu_show_once
            set timeout_style=menu
            set timeout=60
          elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
            set orig_timeout_style=${timeout_style}
            set orig_timeout=${timeout}
            if [ "${fastboot}" = "1" ]; then
              # timeout_style=menu + timeout=0 avoids the countdown code keypress check
              set timeout_style=menu
              set timeout=0
            else
              set timeout_style=hidden
              set timeout=1
            fi
          fi
        fi
        ### END /etc/grub.d/12_menu_auto_hide ###
        
        ### BEGIN /etc/grub.d/14_menu_show_once ###
        if [ x$feature_timeout_style = xy ]; then
          if [ "${menu_show_once_timeout}" ]; then
            set timeout_style=menu
            set timeout="${menu_show_once_timeout}"
            unset menu_show_once_timeout
            save_env menu_show_once_timeout
          fi
        fi
        ### END /etc/grub.d/14_menu_show_once ###
        
        ### BEGIN /etc/grub.d/20_linux_xen ###
        
        ### END /etc/grub.d/20_linux_xen ###
        
        ### BEGIN /etc/grub.d/20_ppc_terminfo ###
        ### END /etc/grub.d/20_ppc_terminfo ###
        
        ### BEGIN /etc/grub.d/30_os-prober ###
        menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-08C7-F71D' {
        	insmod part_gpt
        	insmod fat
        	search --no-floppy --fs-uuid --set=root 08C7-F71D
        	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
        }
        # Other OS found, undo autohiding of menu unless menu_auto_hide=2
        if [ "${orig_timeout_style}" -a "${menu_auto_hide}" != "2" ]; then
          set timeout_style=${orig_timeout_style}
          set timeout=${orig_timeout}
        fi
        ### END /etc/grub.d/30_os-prober ###
        
        ### BEGIN /etc/grub.d/30_uefi-firmware ###
        if [ "$grub_platform" = "efi" ]; then
        	menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
        		fwsetup
        	}
        fi
        ### END /etc/grub.d/30_uefi-firmware ###
        
        ### BEGIN /etc/grub.d/35_fwupd ###
        ### END /etc/grub.d/35_fwupd ###
        
        ### BEGIN /etc/grub.d/40_custom ###
        # This file provides an easy way to add custom menu entries.  Simply type the
        # menu entries you want to add after this comment.  Be careful not to change
        # the 'exec tail' line above.
        ### END /etc/grub.d/40_custom ###
        
        ### BEGIN /etc/grub.d/41_custom ###
        if [ -f  ${config_directory}/custom.cfg ]; then
          source ${config_directory}/custom.cfg
        elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
          source $prefix/custom.cfg
        fi
        ### END /etc/grub.d/41_custom ###
        ~# 

        Merci à bientôt.
        pll

        nouvo09 Tu as quelque chose dans
        /boot/loader/entries/

        ?

        Salut nouvo09,
        voici:

        # ls /boot/loader/entries/
        99c9be383a7442028214148d8bdfcc1a-0-rescue.conf
        99c9be383a7442028214148d8bdfcc1a-6.5.12-300.fc39.x86_64.conf
        99c9be383a7442028214148d8bdfcc1a-6.6.2-201.fc39.x86_64.conf
        ~# 

        a+
        pll

        [supprimé] T’es bon pour réinstaller la totale
        $ sudo dnf reinstall shim-* grub2-efi-* grub2-common

        Je viens de le faire.

        Je précise que je suis en dualboot avec Windows 11 et que j’avais installé “akmod-nvidia”.

        nouvo09 Le coupable est là:

        GRUB_ENABLE_BLSCFG=true

        change true en false et refais ton grub2-mkconfig

        Bonjour nouvo09,

        voici:

        ~$ cat /etc/default/grub
        GRUB_TIMEOUT=5
        GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
        GRUB_DEFAULT=saved
        GRUB_DISABLE_SUBMENU=true
        GRUB_TERMINAL_OUTPUT="console"
        GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1 rhgb quiet nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau"
        GRUB_DISABLE_RECOVERY="true"
        GRUB_ENABLE_BLSCFG=false
        ~$ 

        Puis:

        # grub2-mkconfig -o /boot/grub2/grub.cfg
        Generating grub configuration file ...
        Found linux image: /boot/vmlinuz-6.6.2-201.fc39.x86_64
        Found initrd image: /boot/initramfs-6.6.2-201.fc39.x86_64.img
        fgrep: warning: fgrep is obsolescent; using grep -F
        Found linux image: /boot/vmlinuz-6.5.12-300.fc39.x86_64
        Found initrd image: /boot/initramfs-6.5.12-300.fc39.x86_64.img
        fgrep: warning: fgrep is obsolescent; using grep -F
        Found linux image: /boot/vmlinuz-0-rescue-99c9be383a7442028214148d8bdfcc1a
        Found initrd image: /boot/initramfs-0-rescue-99c9be383a7442028214148d8bdfcc1a.img
        fgrep: warning: fgrep is obsolescent; using grep -F
        Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
        Adding boot menu entry for UEFI Firmware Settings ...
        done
        ~# 

        Les derniers noyaux ne sont toujours pas vu! j’ai remarqué un “warning”:

        fgrep: warning: fgrep is obsolescent; using grep -F

        a+
        pll

          pierrotlalune fgrep: warning: fgrep is obsolescent; using grep -F

          ça, aucune importance.
          En revanche il faudrait voir dans /boot si les fichiers initramfs et vmlinuz correspondant aux nouveaux noyaux s’y trouvent.

            nouvo09 En revanche il faudrait voir dans /boot si les fichiers initramfs et vmlinuz correspondant aux nouveaux noyaux s’y trouvent.

            Voici:

            ~$ ls /boot
            config-6.5.12-300.fc39.x86_64
            config-6.6.2-201.fc39.x86_64
            efi
            grub2
            initramfs-0-rescue-99c9be383a7442028214148d8bdfcc1a.img
            initramfs-6.5.12-300.fc39.x86_64.img
            initramfs-6.6.2-201.fc39.x86_64.img
            loader
            lost+found
            symvers-6.5.12-300.fc39.x86_64.xz
            symvers-6.6.2-201.fc39.x86_64.xz
            System.map-6.5.12-300.fc39.x86_64
            System.map-6.6.2-201.fc39.x86_64
            vmlinuz-0-rescue-99c9be383a7442028214148d8bdfcc1a
            vmlinuz-6.5.12-300.fc39.x86_64
            vmlinuz-6.6.2-201.fc39.x86_64
            ~$ 

            Eh bien, ils ne s’y trouvent pas!
            a+
            pll

            pierrotlalune Est-ce que tu peux faire les commandes suivantes et nous fournir les retours
            # grub2-switch-to-blscfg
            puis à nouveau
            # grub2-mkconfig -o /boot/grub2/grub.cfg
            et
            # ls /boot/loader/entries/

            Tu as dû toucher à des choses quelque part auparavant je pense quand même.

              Nicosss Est-ce que tu peux faire les commandes suivantes:
              grub2-switch-to-blscfg

              Ha non mauvaise idée ça.
              Pour une raison inconnue les initramfs et vmlinuz n’ont pas été installés, ce n’est surement pas l’appel à bls qui changera ça et va les inventer.
              Mon idée avant tout serait de faire un dnf reinstall des noyaux manquants pour voir si cette fois dracut fait bien le job.

                nouvo09 Les problèmes avec BLSCFG avaient surtout été identifiés avec les BIOS mais il est en UEFI.
                Des entrées sont existantes dans /boot/loader/entries/ donc le mécanisme fonctionne.

                Ensuite je suis d’accord avec le fait que côté script post-install des derniers kernels il se soit passé quelque chose de pas normal.

                L’idée est donc de remettre en place correctement BLSCFG puis d’effectivement supprimer les kernels qui n’apparaissent pas puis de laisser faire une mise à jour qui installera le dernier kernel disponible.

                  Nicosss L’idée est donc de remettre en place correctement BLSCFG

                  Aucun rapport. Remettre en service bls va faire que le fichier grub.cfg comportera une directive “bls” indiquant qu’il faut lire dans /boot/loader/entries les éléments du menu.
                  Mais lorsque tu ouvres ces fichiers .conf, ils indiquent d’aller chercher dans /boot les fichier initramfs et vmlinuz. Lesquels en l’occurence n’y sont pas pour une raison obscure. Donc inutile de cumuler les ennuis.
                  D’abord faire en sorte que le post-install fonctionne, quitte à faire un reinstall.

                    nouvo09 Je sais que tu es fâché avec BLSCFG mais de là à dire qu’il n’y a aucun rapport… Je précise juste le fait de le remettre dans un état standard de la distribution afin de s’affranchir d’effets de bord.

                    Sinon pour ce que tu dis je suis bien au courant et d’accord aussi. Nous disons la même chose sauf que tu as une dent contre BLSCFG.

                    Non je n’ai de dent que contre les solutions qui ne résolvent rien. Dans le cas présent, avec ou sans bls, il faut que les fichiers indiquées soient présents à l’endroit prévu. Tans qu’ils n’y sont pas, on peut faire la danse autour du Totem et se livrer à toutes les incantations possibles, ça ne fonctionnera pas.

                    Cela étant dit j’estime en effet que bls s’il est utile (éventuellement) dans le cas d’IBM, n’a pas sa place dans nos machines personnelles. Rien à voir avec la dentition.

                      • [supprimé]

                      • Modifié

                      nouvo09 Aucun rapport. Remettre en service bls va faire que le fichier grub.cfg comportera une directive “bls” indiquant qu’il faut lire dans /boot/loader/entries les éléments du menu.

                      Et comme son /boot/loader/entries ne se met pas à jour, inutile de trifouiller le BLSCFG, le problème vient de la mise à jour du kernel qui ne complète pas les entries. Depuis un paquet d’année, normalement le grub.cfg n’est plus mis à jour après un update du kernel, c’est justement l’intéret du BLSCFG

                      nouvo09 Mais lorsque tu ouvres ces fichiers .conf, ils indiquent d’aller chercher dans /boot les fichier initramfs et vmlinuz. Lesquels en l’occurence n’y sont pas pour une raison obscure.

                      Au contraire, si le BLSCFG est sur “True”, tu n’as aucune mention de l’initramfs ni du vmlinuz. Ils n’ont pas à y etre, sauf à désactiver BLSFG

                      En fait, pour mettre à jour ses entries, il peut utiliser le script kernel-install, celui là même qui est exécuté à la fin de l’instal’ d’un nouveau kernel (à la place de grub2-mkconfig)

                      $ sudo kernel-install add 6.6.6-200.fc39.x86_64 /lib/modules/6.6.6-200.fc39.x86_64/vmlinuz

                      Mais aucune idée si lors de l’install’ du prochain kernel ça va se mettre à jour à nouveau, ou s’il faudra à nouveau lancer le script manuellement

                      Edit: J’avais pas capté que dans /boot il n’y avait pas non plus les nouveaux vmlinuz ni l’initramfs. À mon avis il faut déjà commencer par réinstaller le kernel, et vérifier s’ils sont dans /boot