简单的步骤即可更改默认内核版本RHEL/CentOS 8

时间:2020-01-09 10:37:34  来源:igfitidea点击:

在本教程中,我们将学习更改默认内核版本的步骤,即在RHEL/CentOS 8中不同的已安装内核版本之间进行切换。与GRHEL2相比,与旧版本相比,RHEL/CentOS 8涉及的步骤完全不同。与RHEL/CentOS 7一起使用。因此,现在我们有了一个名为grubby的专用工具,用于更改默认内核版本。

grubby

  • grubby是一个命令行工具,用于跨多种体系结构配置引导程序菜单项。

  • 它用于更新和显示有关各种体系结构特定的引导程序的配置文件的信息。

  • 它主要设计用于安装新内核并需要查找有关当前引导环境的信息的脚本。

  • 如果找不到引导加载程序配置文件,则grubby将使用该体系结构的默认值,例如对于x86_64机器使用grub2,对于ia64使用elilo等。

列出已安装的内核版本

为了本教程的缘故,我在Red Hat 8服务器上安装了多个内核。因此,在示例中,我们将在这些内核版本之间切换。

# rpm -qa | grep kernel | sort
kernel-4.18.0-193.1.2.el8_2.x86_64
kernel-4.18.0-193.14.3.el8_2.x86_64
kernel-4.18.0-193.el8.x86_64
kernel-core-4.18.0-193.1.2.el8_2.x86_64
kernel-core-4.18.0-193.14.3.el8_2.x86_64
kernel-core-4.18.0-193.el8.x86_64
kernel-modules-4.18.0-193.1.2.el8_2.x86_64
kernel-modules-4.18.0-193.14.3.el8_2.x86_64
kernel-modules-4.18.0-193.el8.x86_64
kernel-tools-4.18.0-193.el8.x86_64
kernel-tools-libs-4.18.0-193.el8.x86_64

现在,使用RHEL/CentOS 8,"内核" rpm已分布在内核核心和内核模块之间。我们可以在什么是内核核心rpm和内核模块rpm以及如何升级这些rpm中阅读有关这些内核rpm的更多信息。

其中:我们有很长的kernel列表,它是依赖包。我们可以使用grubby以获得更干净的输出,以显示已安装内核的列表

# grubby --info=ALL | grep ^kernel
kernel="/boot/vmlinuz-4.18.0-193.14.3.el8_2.x86_64"
kernel="/boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64"
kernel="/boot/vmlinuz-4.18.0-193.el8.x86_64"
kernel="/boot/vmlinuz-0-rescue-d88fa2c7ff574ae782ec8c4288de4e85"

这将打印所有已安装内核的" initramfs"版本。

当前处于活动状态(已加载)的内核

要检查当前活动的内核版本,我们将使用uname-r这将为我们提供内核发行信息:

# uname -r
4.18.0-193.el8.x86_64

获取更多有关启动项的信息

现在,通过grubby,我们列出了可用的启动项,以获取有关可以使用的各个启动项的更多信息:

# grubby --info="/boot/vmlinuz-4.18.0-193.14.3.el8_2.x86_64"
index=0
kernel="/boot/vmlinuz-4.18.0-193.14.3.el8_2.x86_64"
args="ro resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet biosdevname=0 net.ifnames=0 enforcing=0 $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-193.14.3.el8_2.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-193.14.3.el8_2.x86_64) 8.2 (Ootpa)"
id="d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.14.3.el8_2.x86_64"

检查重启后将要激活的内核版本

现在确定要在重启后激活的内核版本,我们使用:

# grubby --grub2 --default-title
Red Hat Enterprise Linux (4.18.0-193.14.3.el8_2.x86_64) 8.2 (Ootpa)

因此,我们当前处于活动状态的内核为4.18.0-193.el8.x86_64,但重启后4.18.0-193.14.3.el8_2.x86_64将处于活动状态。

列出默认内核的启动项,即在重新启动后将处于活动状态的内核

# grubby --default-kernel
/boot/vmlinuz-4.18.0-193.14.3.el8_2.x86_64

同样获得默认内核的索引值

# grubby --default-index
0

因此,索引值为" 0"的引导项将在我的Linux服务器重新引导后被激活。

更改默认内核(切换内核版本)

现在假设我们希望更改默认内核,该内核在重启后将处于活动状态,从" 4.18.0-193.14.3.el8_2.x86_64"更改为" 4.18.0-193.1.2.el8_2.x86_64"

我们可以使用

  • 内核标题

  • 内核启动项

  • 内核索引值

更改默认内核版本并切换内核以在重新引导后激活。在此示例中,我使用内核引导条目来更改默认内核版本

# grubby --set-default "/boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64"
The default is /boot/loader/entries/d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.1.2.el8_2.x86_64.conf with index 1 and kernel /boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64

因此,默认内核版本已成功更新。

验证新的默认内核

接下来,使用与前面的grubby相同的命令来验证新的默认内核:

# grubby --default-kernel
/boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64

要获取有关此boot entry的更多信息:

# grubby --info /boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64
index=1
kernel="/boot/vmlinuz-4.18.0-193.1.2.el8_2.x86_64"
args="ro resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet biosdevname=0 net.ifnames=0 enforcing=0 $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-193.1.2.el8_2.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-193.1.2.el8_2.x86_64) 8.2 (Ootpa)"
id="d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.1.2.el8_2.x86_64"

因此,我们还可以根据上述信息验证默认索引,该索引应为1:

# grubby --default-index
1

现在重新启动服务器,并使用uname验证活动的内核:

# uname -r
4.18.0-193.1.2.el8_2.x86_64

因此,我们的活动内核与我们为默认内核设置的内核相同。使用此方法,我们可以轻松地在RHEL/CentOS 8 Linux中的不同内核版本之间切换。