Usando o grubby para Gerenciar Kernels
A ferramenta grubby pode ser usada para ler informações e fazer alterações persistentes no arquivo grub.cfg, que define a configuração GRUB para uma instância do Oracle Linux. Usando o comando grubby, você pode exibir a configuração do kernel, especificar o kernel de inicialização padrão, configurar parâmetros de inicialização da linha de comando do kernel extra e alterar o menu de inicialização do kernel (GRUB). Consulte a página do manual grubby(8) para obter mais informações.
Listar Kernels Instalados e Kernel Padrão
Use o comando grubby para ver todos os kernels instalados em uma instância do Oracle Linux, informações de configuração sobre os kernels, qual kernel é o padrão e qual kernel está ativo.
- Em uma linha de comando, usando privilégios administrativos, estabeleça conexão com a instância usando SSH.
- Liste os kernel instalados usando uma das opções a seguir. A lista de kernels instalados pode ser diferente dependendo da versão do Oracle Linux.
- Liste os kernels que usam
grubbye a opção de comando--info=ALLpara ver a configuração de inicialização associada a cada kernel 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" ...A saída de
sudo grubby --info=ALLprevê o que é exibido no menu de inicialização do kernel durante a inicialização. Por exemplo, usando os números de índice e títulos na saída anterior, o menu de inicialização do kernel mostraria o seguinte: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 - Liste os kernels instalados no diretório
/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
- Liste os kernels que usam
- Mostre qual kernel está configurado como o kernel padrão a ser usado na inicialização e seu título e posição no menu de inicialização do kernel. O kernel padrão depende da versão do Oracle Linux.
- Mostrar o kernel padrão.
sudo grubby --default-kernel/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Mostra o título do kernel padrão.
sudo grubby --default-titleA saída corresponde ao valor visto no menu de inicialização do kernel quando a instância do Oracle Linux é iniciada.
Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 - Mostre a posição do índice do kernel padrão na lista de inicialização do kernel.
sudo grubby --default-index0
- Mostrar o kernel padrão.
- Verifique qual kernel está sendo executado na instância.
uname -r6.12.0-102.36.5.2.el10uek.x86_64O kernel padrão e o kernel em execução podem não ser idênticos porque:
- Você instalou um kernel mais recente, mas não reinicializou o sistema.
- Durante uma reinicialização do sistema, você selecionou manualmente outro kernel para ser o kernel ativo.
- Você atualizou manualmente o kernel padrão, mas ainda não reinicializou o sistema.
Alterar Kernel Padrão
Use o comando grubby para definir o kernel de inicialização padrão na configuração do GRUB 2.
- Em uma linha de comando, usando privilégios administrativos, estabeleça conexão com a instância usando SSH.
- Mostrar o kernel padrão.
sudo grubby --default-kernelPor exemplo:
/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - Use o comando
grubby --set-defaultpara alterar o kernel padrão, certificando-se de especificar o caminho completo para o kernel. Você pode obter o caminho do kernel usando uma das opções da etapa 2 de Listar Kernels Instalados e Kernel Padrão.Por exemplo:
sudo grubby --set-default /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64A alteração entra em vigor imediatamente e persiste nas reinicializações do sistema.
- Verifique a alteração do kernel padrão.
sudo grubby --default-kernelPor exemplo:
/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64 - (Opcional) Defina o novo kernel padrão para a primeira posição no menu de inicialização do kernel usando o comando
grubby --set-default-index.O novo kernel padrão é exibido primeiro no menu de inicialização do kernel, por exemplo: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 - Reinicialize a instância para inicializar com o novo kernel padrão.
Alterar Parâmetros de Inicialização do Kernel
Use o comando grubby --update-kernel para adicionar novos argumentos, alterar valores de argumentos existentes ou remover argumentos para um kernel específico ou todos os kernels. Vários argumentos podem ser especificados para cada opção em uma lista com aspas, com cada argumento separado por espaços. Você pode adicionar e remover argumentos na mesma operação. Ao usar a opção --args, se já existir um argumento, o novo valor substituirá os valores antigos.
- Em uma linha de comando, usando privilégios administrativos, estabeleça conexão com a instância usando SSH.
- Use o comando
grubby --update-kernelpara alterar ou adicionar um argumento de inicialização do kernel específico. Por exemplo, atualize os parâmetros do kernel para alterar o argumento LANG para:- todos os kernel
sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8 - um kernel
sudo grubby --update-kernel /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 --args LANG=en_GB.UTF-8
- todos os kernel
- Verifique se as alterações entraram em vigor.
sudo grubby --info=ALL- todos os kernel
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" ... - um kernel
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 os kernel
- Reinicialize a instância para inicializar com a nova configuração do kernel.
Para alterar os parâmetros de inicialização do kernel sem grubby, edite o arquivo
/etc/default/grub diretamente e modifique as definições do parâmetro de inicialização na definição GRUB_CMDLINE_LINUX. Por exemplo, altere LANG=en_US.UTF-8 para 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 as alterações entrem em vigor na próxima reinicialização do sistema, recrie a configuração do GRUB 2: sudo grub2-mkconfig -o /boot/grub2/grub.cfg