Utiliser grubby pour gérer les noyaux

Utilisez la commande grubby pour gérer la configuration GRUB 2 sur le système, notamment en sélectionnant le noyau de démarrage par défaut ou en configurant des paramètres de ligne de commande de noyau supplémentaires à utiliser au démarrage.

Pour plus d'informations, voir la page de manuel grubby(8).

Vérification des noyaux disponibles sur le système

Les noyaux sont nommés pour inclure le numéro de version en amont, la version de distribution et la famille de noyaux.

Voir À propos des noyaux Linux pour obtenir un contexte supplémentaire.

Plusieurs méthodes sont disponibles pour vérifier quels noyaux sont disponibles sur un système :

  1. Listez les noyaux dans le répertoire /boot.
    ls -1 /boot/vmlinuz*

    La commande produit une liste exacte des noyaux disponibles sur le système.

  2. Utilisez la commande grubby sur des noyaux spécifiques ou l'option ALL.
    sudo grubby --info /boot/vmlinuz-kernel-version.kernel_suffix*
    sudo grubby --info ALL

    La commande fournit des informations plus complètes sur la configuration d'initialisation associée à chaque noyau dans le répertoire /boot du système. Les détails sont basés sur la configuration du titre GRUB.

Comparaison du noyau par défaut au noyau en cours d'exécution

Le noyau en cours d'exécution et le noyau configurés en tant que noyau par défaut dans lequel GRUB 2 sélectionne le démarrage après une période de temporisation pour le menu de démarrage peuvent différer.

Si la version du noyau par défaut et la version du noyau en cours d'exécution ne sont pas identiques, les motifs sous-jacents peuvent être l'un des suivants :

  • Un noyau plus récent est installé, mais le système n'a pas été redémarré.

  • Lors d'un redémarrage du système, un autre noyau a été sélectionné manuellement pour être le noyau opérationnel.

  • Le noyau par défaut a été mis à jour manuellement, mais le système n'a pas été redémarré après la mise à jour.

Pour comparer le noyau configuré par défaut au noyau en cours d'exécution, procédez comme suit :
  1. Vérifiez le noyau par défaut configuré dans GRUB 2.

    Pour vérifier quel noyau est déjà configuré en tant que noyau par défaut courant à utiliser au démarrage, exécutez :

    sudo grubby --default-kernel
  2. Vérifiez la version du noyau en cours d'exécution.

    Pour vérifier quel noyau s'exécute sur un système, exécutez :

    uname -r

Modification du noyau par défaut

Utilisez grubby pour définir le noyau par défaut dans lequel GRUB2 démarre après qu'une période de temporisation est atteinte lors de l'affichage du menu de démarrage GRUB2.

Vous pouvez modifier le noyau par défaut de RHCK à UEK, de UEK à RHCK, ou pour passer à une version de noyau spécifique.

Vous pouvez suivre l'une des deux options pour définir le noyau par défaut dans GRUB 2, à l'aide de la commande grubby, effectuez l'une des opérations suivantes :

  1. Utilisez la commande grubby --set-default pour définir le noyau par défaut.

    Pour passer à un autre noyau par défaut, exécutez la commande suivante en vous assurant de spécifier le chemin complet du noyau par défaut sélectionné :

    sudo grubby --set-default /boot/vmlinuz-kernel-version.kernel-suffix.arch

    Remplacez kernel-version et kernel_suffix par les valeurs correspondant au noyau cible. Par exemple, exécutez :

    sudo grubby --set-default /boot/vmlinuz-6.12.0-100.28.2.el10uek.x86_64

    La modification prend effet immédiatement et persiste entre les redémarrages du système.

  2. Utilisez la commande grubby --set-default-index pour définir le noyau par défaut afin qu'il corresponde au noyau à un point d'index particulier dans la liste de démarrage du noyau. Les valeurs d'index sont affichées lorsque vous exécutez la commande grubby --info

    Par exemple, vous pouvez utiliser l'option --set-default-index=0 pour régler le noyau par défaut au premier noyau répertorié dans l'index de démarrage du noyau en exécutant :

    sudo grubby --set-default-index=0

Passer au noyau RHCK ou UEK le plus récent disponible

En utilisant la convention d'attribution de nom pour identifier les noyaux UEK et RHCK disponibles dans le répertoire /boot, vous pouvez facilement changer le noyau par défaut pour utiliser la version la plus récente de l'un ou l'autre des types de noyau.

  • Pour passer à la version la plus récente de l'UEK sur le système, exécutez :
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep 'uek' | sort -V | tail -1)
  • Pour passer à la version la plus récente de RHCK sur le système, exécutez :
    sudo grubby --set-default $(ls /boot/vmlinuz-* | grep -v 'uek' | sort -V | tail -1)

Redémarrez le système après avoir défini le noyau par défaut pour passer à ce type de noyau.

Modification des paramètres de démarrage de la ligne de commande du noyau

Parfois, vous devrez peut-être modifier la configuration GRUB 2 pour spécifier des paramètres de démarrage de noyau particuliers sur la ligne de commande du noyau. La définition de paramètres dans la configuration GRUB 2 signifie que les paramètres sont utilisés pour les noyaux affectés à chaque démarrage.

Vous pouvez mettre à jour la configuration de démarrage GRUB 2 pour un noyau spécifique ou pour tous les noyaux installés sur le système en procédant comme suit :

  1. Utilisez la commande grubby --update-kernel pour mettre à jour une entrée de noyau avec --args pour ajouter de nouveaux arguments ou pour modifier les valeurs d'argument existantes, ou --remove-args pour supprimer les arguments existants.

    Plusieurs arguments peuvent être spécifiés pour chaque option dans une liste entre guillemets et séparés par des espaces. Vous pouvez ajouter et supprimer des arguments dans la même opération. Lorsque vous utilisez l'option --args, si un argument existe déjà, la nouvelle valeur remplace les anciennes valeurs.

    Pour mettre à jour un noyau spécifique, exécutez la commande grubby --update-kernel avec le chemin d'accès complet au noyau à mettre à jour. Pour mettre à jour toutes les entrées du noyau afin d'utiliser un argument de démarrage du noyau spécifique, vous pouvez utiliser grubby --update-kernel=ALL.

    Par exemple, vous pouvez mettre à jour toutes les entrées du noyau pour modifier les arguments loglevel et LANG :

    sudo grubby --update-kernel=ALL --args "loglevel=3,LANG=en_GB.UTF-8"

    Voir Informations de référence sur les paramètres de démarrage du noyau pour plus d'informations sur les paramètres du noyau.

  2. Vérifiez que les modifications ont pris effet et que les arguments de ligne de commande sont corrects pour le noyau que vous avez mis à jour.

    Par exemple, si vous avez apporté une modification à tous les noyaux, utilisez la commande grubby --info ALL pour vérifier que la modification est mise en oeuvre dans tous les noyaux :

    sudo grubby --info ALL

Vérification de la dernière ligne de commande du noyau utilisée pour démarrer le système

Les derniers paramètres d'initialisation du noyau utilisés pour démarrer un système sont enregistrés dans /proc/cmdline.

Pour plus d'informations, consultez la page de manuel kernel-command-line(7).

Vérifiez le contenu de /proc/cmdline pour voir la ligne de commande du noyau utilisée pour démarrer le système en cours d'exécution.
cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-208.159.3.2.el9uek.x86_64 
root=UUID=72dfa724-5feb-49e2-8869-40625bfebb01 ro 
resume=UUID=13078314-ebff-4c44-b18c-3445f6802198 
rd.luks.uuid=luks-a80f8f10-75b6-45de-b63e-64b8b6a3a94b 
rhgb quiet crashkernel=1G-64G:448M,64G-:512M