Gestion des noyaux pour les instances Oracle Linux

Découvrez comment gérer les paramètres d'initialisation du noyau avant l'initialisation et lors de l'exécution, et comment utiliser grubby pour gérer les noyaux pour les instances Oracle Linux sur Oracle Cloud Infrastructure.

Voir aussi : Managing Kernels and System Boot.

Utiliser le 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 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). L'outil grubby peut être utilisé pour lire les informations et apporter des modifications persistantes au fichier grub.cfg. Il permet, par exemple, de modifier les entrées du menu GRUB2 pour spécifier les arguments à transmettre à un noyau au démarrage du système et de modifier le noyau par défaut.

Liste des noyaux installés et du noyau par défaut

Vous pouvez utiliser la commande grubby pour afficher tous les noyaux installés sur une instance Oracle Linux, les informations de configuration sur les noyaux, le noyau par défaut et le noyau en cours d'exécution.

  1. A partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
  2. Répertoriez les noyaux installés à l'aide de l'une des options suivantes. La liste des noyaux installés peut être différente selon la version d'Oracle Linux.
    • Répertoriez les noyaux installés dans le répertoire /boot.
      sudo ls -l /boot/vmlinuz*
      -rwxr-xr-x. 1 root root 13701352 Feb 12 19:33 /boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567
      -rwxr-xr-x. 1 root root 10889384 Feb 11 12:19 /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
      -rwxr-xr-x. 1 root root 13701352 Jan 29 04:13 /boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
    • Répertoriez les noyaux à l'aide de grubby et de l'option de commande --info=ALL pour voir la configuration d'initialisation associée à chaque noyau installé.
      sudo grubby --info=ALL
      index=0 <<Each boot entry is assigned an index, which is a number that indicates its position in the GRUB menu
      kernel="/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64" <<Full path to the kernel image
      args="ro crashkernel=auto LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200 rd.luks=0 / <<Command-line arguments passed to the kernel when it boots
            rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 /
            netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi /
            rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 /
            nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 /   
            loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers /
            fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f $tuned_params"
      root="/dev/mapper/ocivolume-root" <<Root partition device
      initrd="/boot/initramfs-5.15.0-305.176.4.el8uek.x86_64.img $tuned_initrd" <<Path to the initial RAM disk (initrd) image
      title="Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10" <<Title displayed in the GRUB menu at startup
      id="7063910fe2979258f8fd66f2fb8b8567-5.15.0-305.176.4.el8uek.x86_64" <<Unique identifier for the boot entry
      
      index=1
      kernel="/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64"
      ...
      title="Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10"
      ...
      
      index=2
      kernel="/boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567"
      ...
      title="Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10"
      ...

      A partir de la sortie de sudo grubby --info=ALL, vous pouvez déterminer ce que vous voyez dans le menu GRUB au démarrage. Par exemple, en utilisant le numéro d'index et le titre dans la sortie ci-dessus, le menu GRUB se présente comme suit :

      Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10
      Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10
      Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10
  3. Répertoriez le noyau déjà configuré comme noyau par défaut à utiliser à l'initialisation, ainsi que son titre et sa position, comme indiqué dans le menu GRUB. Le noyau par défaut peut être différent selon la version d'Oracle Linux.
    • Répertoriez le noyau par défaut.
      sudo grubby --default-kernel
      /boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
      
    • Vérifiez le titre du noyau par défaut.
      sudo grubby --default-title

      La sortie correspond à la valeur affichée dans le menu GRUB2 au démarrage d'Oracle Linux.

      Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10
      
    • Recherchez la position du noyau par défaut dans la liste d'initialisation du noyau.
      sudo grubby --default-index
      0
  4. Vérifiez le noyau en cours d'exécution sur l'instance.
    uname -r
    5.15.0-305.176.4.el8uek.x86_64

    Si le noyau par défaut et le noyau en cours d'exécution ne sont pas identiques, les raisons sous-jacentes peuvent être l'une des suivantes :

    • Vous avez installé un noyau plus récent, mais vous n'avez pas réinitialisé le système
    • Lors d'une réinitialisation du système, vous avez sélectionné manuellement un autre noyau en tant que noyau opérationnel.
    • Vous avez mis à jour manuellement le noyau par défaut mais vous n'avez pas réinitialisé le système après la mise à jour

Modifier le noyau par défaut

Vous pouvez suivre l'une des deux options pour définir le noyau par défaut dans GRUB 2, en utilisant la commande grubby, choisissez l'une des options suivantes :

  1. A partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
  2. Répertoriez le noyau par défaut.
    sudo grubby --default-kernel
    /boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64
    
  3. Utilisez la commande grubby --set-default pour modifier le noyau par défaut en vous assurant de spécifier le noyau du chemin complet. Vous pouvez obtenir le chemin du noyau à l'aide de l'une des options de l'étape 2 de la liste des noyaux installés et du noyau par défaut.
    sudo grubby --set-default /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64

    La modification prend effet immédiatement et persiste après la réinitialisation du système.

  4. Vérifiez la modification du noyau par défaut.
    sudo grubby --default-kernel
    /boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64
    
  5. (Facultatif) Définissez le noyau par défaut sur la première position de la liste d'initialisation du noyau à l'aide de la commande grubby --set-default-index.
    sudo grubby --set-default-index=0
    Le menu GRUB se présente désormais comme suit :
    Oracle Linux Server (4.18.0-553.40.1.el8_10.x86_64) 8.10
    Oracle Linux Server (5.15.0-305.176.4.el8uek.x86_64 with Unbreakable Enterprise Kernel) 8.10
    Oracle Linux Server (0-rescue-7063910fe2979258f8fd66f2fb8b8567 with Unbreakable Enterprise Kernel) 8.10
  6. Réinitialisez l'instance pour l'initialiser avec le nouveau noyau par défaut.

Modifier les paramètres d'initialisation du noyau

Vous pouvez mettre à jour la configuration d'initialisation GRUB 2 pour un noyau spécifique ou pour tous les noyaux installés sur l'instance Oracle Linux.

Utilisez la commande grubby --update-kernel pour ajouter de nouveaux arguments, modifier des valeurs d'argument existantes ou supprimer des arguments pour un noyau spécifique ou pour tous les noyaux. 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.

  1. A partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
  2. Pour mettre à jour toutes les entrées du noyau afin d'utiliser un argument d'initialisation de noyau spécifique, utilisez grubby --update-kernel=ALL. Par exemple, modifiez l'argument LANG :
    sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8
  3. Vérifier que les modifications ont été appliquées
    sudo grubby --info=ALL
    index=0
    kernel="/boot/vmlinuz-5.15.0-305.176.4.el8uek.x86_64"
    args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 
       rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 
       netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi 
       rd.iscsi.param=node.session.timeo.replacement_timeout=6000 
       net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 
       libiscsi.debug_libiscsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10   
       crash_kexec_post_notifiers fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f 
       LANG=en_GB.UTF-8 $tuned_params"
    ...
    index=1
    kernel="/boot/vmlinuz-4.18.0-553.40.1.el8_10.x86_64"
    args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 
       rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 
       netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi 
       rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 
       nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 
       loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notifiers 
       fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f 
       LANG=en_GB.UTF-8 $tuned_params"
    ...
    index=2
    kernel="/boot/vmlinuz-0-rescue-7063910fe2979258f8fd66f2fb8b8567"
    args="ro crashkernel=auto console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 
       rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.carrier=5 
       netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi  
       rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 
       nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 
       libiscsi.debug_libiscsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10   
       crash_kexec_post_notifiers fips=1 boot=UUID=5097b6ba-ed0e-418a-9c2c-fb25d577991f 
       LANG=en_GB.UTF-8 $tuned_params"
    ...
  4. Réinitialisez l'instance pour l'initialiser avec la nouvelle configuration de noyau.