Uso de grubby para gestionar núcleos
La herramienta grubby se puede utilizar para leer información y realizar cambios persistentes en el archivo grub.cfg, que define la configuración de GRUB para una instancia de Oracle Linux. Con el comando grubby, puede ver la configuración del núcleo, especificar el núcleo de inicio predeterminado, configurar parámetros de inicio adicionales de la línea de comandos del núcleo y cambiar el menú de inicio del núcleo (GRUB). Consulte la página del manual grubby(8) para obtener más información.
Lista de núcleos instalados y núcleo predeterminado
Utilice el comando grubby para ver todos los núcleos instalados en una instancia de Oracle Linux, información de configuración sobre los núcleos, qué núcleo es el núcleo predeterminado y qué núcleo está activo.
- Desde una línea de comandos, mediante privilegios administrativos, conéctese a la instancia mediante SSH.
- Muestre los núcleos instalados mediante una de las siguientes opciones. La lista de núcleos instalados puede ser diferente según la versión de Oracle Linux.
- Muestre los núcleos mediante
grubbyy la opción de comando--info=ALLpara ver la configuración de inicio asociada con cada núcleo instalado.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 salida de
sudo grubby --info=ALLpredice lo que se muestra en el menú de inicio del núcleo al iniciar. Por ejemplo, si se utilizan los números de índice y los títulos de la salida anterior, el menú de inicio del núcleo mostrará lo siguiente: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 - Muestre los núcleos instalados en el directorio
/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
- Muestre los núcleos mediante
- Mostrar qué núcleo está configurado como núcleo predeterminado para usar en el inicio y su título y posición en el menú de inicio del núcleo. El núcleo por defecto depende de la versión de Oracle Linux.
- Mostrar el núcleo predeterminado.
sudo grubby --default-kernel/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Mostrar el título del núcleo por defecto.
sudo grubby --default-titleLa salida coincide con el valor que se ve en el menú de inicio del núcleo cuando se inicia la instancia de Oracle Linux.
Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 - Mostrar la posición del índice del núcleo predeterminado en la lista de inicio del núcleo.
sudo grubby --default-index0
- Mostrar el núcleo predeterminado.
- Compruebe qué núcleo se está ejecutando en la instancia.
uname -r6.12.0-102.36.5.2.el10uek.x86_64Es posible que el núcleo por defecto y el núcleo en ejecución no sean idénticos porque:
- Ha instalado un núcleo más nuevo, pero no ha reiniciado el sistema.
- Durante un reinicio del sistema, seleccionó manualmente otro núcleo para que fuera el núcleo activo.
- Actualizó manualmente el núcleo predeterminado, pero aún no reinició el sistema.
Cambiar núcleo predeterminado
Utilice el comando grubby para definir el núcleo de inicio predeterminado en la configuración de GRUB 2.
- Desde una línea de comandos, mediante privilegios administrativos, conéctese a la instancia mediante SSH.
- Mostrar el núcleo predeterminado.
sudo grubby --default-kernelPor ejemplo:
/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Utilice el comando
grubby --set-defaultpara cambiar el núcleo por defecto, asegurándose de especificar la ruta completa al núcleo. Puede obtener la ruta del núcleo mediante cualquiera de las opciones del step 2 of Listing Installed Kernels and Default Kernel.Por ejemplo:
sudo grubby --set-default /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64El cambio se aplica inmediatamente y persiste tras los reinicios del sistema.
- Verifique el cambio de núcleo predeterminado.
sudo grubby --default-kernelPor ejemplo:
/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64 - (Opcional) Establezca el nuevo núcleo predeterminado en la primera posición del menú de inicio del núcleo mediante el comando
grubby --set-default-index.El nuevo núcleo predeterminado se muestra primero en el menú de inicio del núcleo, por ejemplo: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 - Reinicie la instancia para que se inicie con el nuevo núcleo predeterminado.
Cambio de parámetros de inicio del núcleo
Utilice el comando grubby --update-kernel para agregar nuevos argumentos, cambiar valores de argumentos existentes o eliminar argumentos para un núcleo específico o todos los núcleos. Se pueden especificar varios argumentos para cada opción en una lista entre comillas con cada argumento separado por espacios. Puede agregar y eliminar argumentos en la misma operación. Al utilizar la opción --args, si ya existe un argumento, el nuevo valor sustituye a los valores antiguos.
- Desde una línea de comandos, mediante privilegios administrativos, conéctese a la instancia mediante SSH.
- Utilice el comando
grubby --update-kernelpara cambiar o agregar un argumento de inicio de núcleo específico. Por ejemplo, actualice los parámetros del núcleo para cambiar el argumento LANG para:- todos los núcleos
sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8 - un núcleo
sudo grubby --update-kernel /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 --args LANG=en_GB.UTF-8
- todos los núcleos
- Verifique que los cambios se hayan aplicado.
sudo grubby --info=ALL- todos los núcleos
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 núcleo
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" ...
- todos los núcleos
- Reinicie la instancia para iniciar con la nueva configuración del núcleo.
Para cambiar los parámetros de inicio del núcleo sin grubby, edite el archivo
/etc/default/grub directamente y modifique la configuración de los parámetros de inicio en la definición GRUB_CMDLINE_LINUX. Por ejemplo, cambie LANG=en_US.UTF-8 a 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"Para que los cambios se apliquen en el siguiente reinicio del sistema, vuelva a crear la configuración de GRUB 2: sudo grub2-mkconfig -o /boot/grub2/grub.cfg