Utiliser le grubby pour gérer les noyaux

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

Pour plus d'informations, reportez-vous à la page du 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, le build de distribution et la famille de noyaux.

Pour plus d'informations, reportez-vous à A propos des noyaux Linux.

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

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

    La commande génère 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 avec le noyau en cours d'exécution

Le noyau en cours d'exécution et le noyau configuré en tant que noyau par défaut dans lequel GRUB 2 choisit de s'initialiser après un délai d'expiration pour le menu d'initialisation 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 raisons sous-jacentes peuvent être l'une des suivantes :

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

  • Lors d'une réinitialisation 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é réinitialisé 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 à utiliser à l'initialisation, exécutez la commande suivante :

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

    Pour vérifier quel noyau est en cours d'exécution 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 s'initialise après qu'un délai d'expiration est atteint lors de l'affichage du menu d'initialisation GRUB2.

Vous pouvez modifier le noyau par défaut de RHCK en UEK, de UEK en RHCK ou basculer vers une version de noyau spécifique.

Vous pouvez suivre l'une des deux options pour définir le noyau par défaut dans le 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 qui correspondent 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 après la réinitialisation 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 d'initialisation 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 définir le noyau par défaut sur le premier noyau répertorié dans l'index d'initialisation du noyau en exécutant :

    sudo grubby --set-default-index=0

Basculer vers le noyau RHCK ou UEK disponible le plus récent

En utilisant la convention de nommage pour identifier les noyaux UEK et les noyaux 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 type 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)

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

Modification des paramètres d'initialisation de la ligne de commande du noyau

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

Vous pouvez mettre à jour la configuration d'initialisation du 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 afin d'ajouter de nouveaux arguments ou de modifier des valeurs d'argument existantes, ou --remove-args pour supprimer des arguments existants.

    Plusieurs arguments peuvent être spécifiés pour chaque option dans une liste entre guillemets séparés par des espaces. Vous pouvez ajouter et enlever 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 d'initialisation de 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"

    Pour plus d'informations sur les paramètres du noyau, reportez-vous à la section Kernel Boot Parameter Reference.

  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 implémentée sur tous les noyaux :

    sudo grubby --info ALL

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

Les derniers paramètres d'initialisation du noyau utilisés pour initialiser 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 afficher la ligne de commande du noyau utilisée pour initialiser 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