Utiliser grubby pour gérer les noyaux
L'outil grubby peut être utilisé pour lire des informations et apporter des modifications persistantes au fichier grub.cfg qui définit la configuration GRUB d'une instance Oracle Linux. À l'aide de la commande grubby, vous pouvez voir la configuration du noyau, spécifier le noyau de démarrage par défaut, configurer des paramètres de démarrage de ligne de commande de noyau supplémentaires et modifier le menu de démarrage du noyau (GRUB). Pour plus d'informations, voir la page de manuel grubby(8).
Lister les noyaux installés et le noyau par défaut
Utilisez la commande grubby pour voir 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 actif.
- À partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
- 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.
- Listez les noyaux à l'aide de
grubbyet de l'option de commande--info=ALLpour voir la configuration de démarrage associée à chaque noyau installé.sudo grubby --info=ALLindex=0 <--Each boot entry is assigned an index, which is a number that indicates its position in the GRUB menu kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" <--Full path to the kernel image args="ro $tuned_params 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.dhcp=10 rd.net.timeout.carrier=5 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 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1" root="/dev/mapper/ocivolume-root" <--Root partition device initrd="/boot/initramfs-6.12.0-102.36.5.2.el10uek.x86_64.img $tuned_initrd" <--Path to the initial RAM disk (initrd) image title="Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0" <--Title displayed in the GRUB menu at startup id="3d18a447860027858b15c8276ccc1ab3-6.12.0-102.36.5.2.el10uek.x86_64" <--Unique identifier for the boot entry index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" ... title="Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0" ... index=2 kernel="/boot/vmlinuz-0-rescue-3d18a447860027858b15c8276ccc1ab3" ... title="Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0" ...La sortie de
sudo grubby --info=ALLprédit ce qui s'affiche dans le menu de démarrage du noyau au démarrage. Par exemple, en utilisant les numéros d'index et les titres de la sortie précédente, le menu de démarrage du noyau afficherait les éléments suivants :Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0 Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0 - Listez les noyaux installés dans le répertoire
/boot.sudo ls -l /boot/vmlinuz*-rwxr-xr-x. 1 root root 17048272 Aug 19 20:35 /boot/vmlinuz-0-rescue-3d18a447860027858b15c8276ccc1ab3 -rwxr-xr-x. 1 root root 17048272 Aug 13 00:00 /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 -rwxr-xr-x. 1 root root 15852240 Aug 14 00:00 /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64
- Listez les noyaux à l'aide de
- Afficher le noyau configuré en tant que noyau par défaut à utiliser au démarrage, ainsi que son titre et sa position dans le menu de démarrage du noyau. Le noyau par défaut dépend de la version d'Oracle Linux.
- Afficher le noyau par défaut.
sudo grubby --default-kernel/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Afficher le titre du noyau par défaut.
sudo grubby --default-titleLa sortie correspond à la valeur affichée dans le menu de démarrage du noyau lorsque l'instance Oracle Linux démarre.
Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 - Affichez la position d'index du noyau par défaut dans la liste de démarrage du noyau.
sudo grubby --default-index0
- Afficher le noyau par défaut.
- Vérifiez quel noyau est exécuté sur l'instance.
uname -r6.12.0-102.36.5.2.el10uek.x86_64Le noyau par défaut et le noyau en cours d'exécution peuvent ne pas être identiques car :
- Vous avez installé un noyau plus récent, mais vous n'avez pas redémarré le système.
- Lors d'un redémarrage du système, vous avez sélectionné manuellement un autre noyau en tant que noyau actif.
- Vous avez mis à jour manuellement le noyau par défaut, mais vous n'avez pas encore redémarré le système.
Modifier le noyau par défaut
Utilisez la commande grubby pour définir le noyau de démarrage par défaut dans la configuration GRUB 2.
- À partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
- Afficher le noyau par défaut.
sudo grubby --default-kernelPar exemple :
/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Utilisez la commande
grubby --set-defaultpour modifier le noyau par défaut en veillant à spécifier le chemin d'accès complet au noyau. 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.Par exemple :
sudo grubby --set-default /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64La modification prend effet immédiatement et persiste entre les redémarrages du système.
- Vérifiez la modification du noyau par défaut.
sudo grubby --default-kernelPar exemple :
/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64 - (Facultatif) Réglez le nouveau noyau par défaut à la première position dans le menu de démarrage du noyau à l'aide de la commande
grubby --set-default-index.Le nouveau noyau par défaut est affiché en premier dans le menu de démarrage du noyau, par exemple :sudo grubby --set-default-index=0Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0 Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0 - Redémarrez l'instance pour démarrer avec le nouveau noyau par défaut.
Modifier les paramètres de démarrage du noyau
Utilisez la commande grubby --update-kernel pour ajouter de nouveaux arguments, modifier les valeurs d'argument existantes ou supprimer des arguments pour un noyau spécifique ou tous les noyaux. Plusieurs arguments peuvent être spécifiés pour chaque option d'une liste entre guillemets, chaque argument étant séparé 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.
- À partir d'une ligne de commande, à l'aide des privilèges d'administration, connectez-vous à l'instance à l'aide de SSH.
- Utilisez la commande
grubby --update-kernelpour modifier ou ajouter un argument de démarrage de noyau spécifique. Par exemple, mettez à jour les paramètres du noyau pour modifier l'argument LANG pour :- tous les noyaux
sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8 - un noyau
sudo grubby --update-kernel /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 --args LANG=en_GB.UTF-8
- tous les noyaux
- Vérifiez que les modifications ont pris effet.
sudo grubby --info=ALL- tous les noyaux
index=0 kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" args="ro $tuned_params 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.dhcp=10 rd.net.timeout.carrier=5 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 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" args="ro $tuned_params 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.dhcp=10 rd.net.timeout.carrier=5 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 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... - un noyau
index=0 kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" args="ro $tuned_params 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.dhcp=10 rd.net.timeout.carrier=5 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 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" args="ro $tuned_params LANG=en_US.UTF-8 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.dhcp=10 rd.net.timeout.carrier=5 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 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1" ...
- tous les noyaux
- Redémarrez l'instance pour démarrer avec la nouvelle configuration du noyau.
Pour modifier les paramètres de démarrage du noyau sans grubby, modifiez le fichier
/etc/default/grub directement et modifiez les paramètres de démarrage dans la définition GRUB_CMDLINE_LINUX. Par exemple, remplacez LANG=en_US.UTF-8 par LANG=en_GB.UTF-8 :GRUB_CMDLINE_LINUX="crashkernel=auto LANG=en_GB.UTF-8 console=tty0 console=ttyS0
,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root r
d.net.timeout.carrier=5 netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:ue
fi 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_libi
scsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notif
iers"Pour que les modifications prennent effet au prochain redémarrage du système, recréez la configuration GRUB 2 : sudo grub2-mkconfig -o /boot/grub2/grub.cfg