Skip to Main Content

Infrastructure Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Oracle Linux - How to Change Default Kernel

Honglin Su-OracleSep 23 2018 — edited Aug 18 2022

Oracle Linux comes with a choice of two kernels, the Unbreakable Enterprise Kernel (UEK), which is installed and enabled by default, and the Red Hat Compatible Kernel (RHCK).

In this tutorial, we use Oracle Linux instances in Oracle Cloud Infrastructure to illustrate how you change the default kernel (UEK) and boot into an old kernel such as RHCK. To launch an Oracle Linux instance in Oracle Cloud Infrastructure, please follow Getting Started Guide.

Change Default Kernel in Oracle Linux 7, 8, and 9

Beginning in Oracle Linux 7, you can use the grubby command to manage your boot requirements.

Read the blog for detailed instructions.

Change Default Kernel in Oracle Linux 6 and 5

Oracle Linux 6 and 5 use the GRUB boot loader. To change the default boot kernel, you modify the GRUB configuration file, /etc/grub.conf.

The default directive specifies the kernel entry that GRUB should boot by default. GRUB counts the kernel entries in the configuration file starting at 0. The directive default=0 means that GRUB boots the first kernel entry by default, unless you override this action. The UEK is configured as the first entry, and the RHCK is configured as the second entry. Changing the value of default to 1 (other value) would cause GRUB to boot the RHCK (or another kernel) by default.

Here's an Oracle Linux 6.10 instance in Oracle Cloud Infrastructure. It has the UEK and RHCK installed. The UEK is the default running kernel.

[root@honsu-ol6-vm2 opc]# rpm -qa kernel-uekkernel-uek-4.1.12-124.18.5.el6uek.x86_64[root@honsu-ol6-vm2 opc]# rpm -qa kernelkernel-2.6.32-754.el6.x86_64kernel-2.6.32-754.2.1.el6.x86_64[root@honsu-ol6-vm2 opc]# uname -aLinux honsu-ol6-vm2 4.1.12-124.18.5.el6uek.x86_64 #2 SMP Mon Aug 13 16:18:59 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

Next you modify the default directive of the GRUB configuration file, /etc/grub.conf.

# grub.conf generated by anaconda

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You do not have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /, eg.

#          root (hd0,2)

#          kernel /boot/vmlinuz-version ro root=/dev/sda3

#          initrd /boot/initrd-[generic-]version.img

#boot=/dev/sda1

device (hd0) HD(1,800,64000,d2fcf22a-4d03-4e56-a262-8974772642e2)

default=1

timeout=5

serial --unit=0 --speed=9600

terminal --timeout=5 serial console

title Oracle Linux Server Unbreakable Enterprise Kernel (4.1.12-124.18.5.el6uek.x86_64)

        root (hd0,2)

        kernel /boot/vmlinuz-4.1.12-124.18.5.el6uek.x86_64 ro root=UUID=974abb96-e711-42fa-b371-388abd421ff0 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD  KEYTABLE=us SYSFONT=latarcyrheb-sun16 crashkernel=auto ip=dhcp netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi iscsi_param=node.session.timeo.replacement_timeout=6000 biosdevname=1 nvme_core.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0 rd_NO_LVM rd_NO_DM irqpoll console=tty0 console=ttyS0,9600

        initrd /boot/initramfs-4.1.12-124.18.5.el6uek.x86_64.img

title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-754.2.1.el6.x86_64)

        root (hd0,2)

        kernel /boot/vmlinuz-2.6.32-754.2.1.el6.x86_64 ro root=UUID=974abb96-e711-42fa-b371-388abd421ff0 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD  KEYTABLE=us SYSFONT=latarcyrheb-sun16 crashkernel=auto ip=dhcp netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi iscsi_param=node.session.timeo.replacement_timeout=6000 biosdevname=1 nvme_core.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0 rd_NO_LVM rd_NO_DM irqpoll console=tty0 console=ttyS0,9600

        initrd /boot/initramfs-2.6.32-754.2.1.el6.x86_64.img

title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-754.el6.x86_64)

        root (hd0,2)

        kernel /boot/vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=974abb96-e711-42fa-b371-388abd421ff0 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD  KEYTABLE=us SYSFONT=latarcyrheb-sun16 crashkernel=auto ip=dhcp netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:uefi iscsi_param=node.session.timeo.replacement_timeout=6000 biosdevname=1 nvme_core.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0 rd_NO_LVM rd_NO_DM irqpoll console=tty0 console=ttyS0,9600

        initrd /boot/initramfs-2.6.32-754.el6.x86_64.img

Then you reboot the instance.

[root@honsu-ol6-vm2 opc]# reboot

After the instance is up and running, you verify the running kernel which is RHCK.

[opc@honsu-ol6-vm2 ~]$ uname -a

Linux honsu-ol6-vm2 2.6.32-754.2.1.el6.x86_64 #1 SMP Tue Jul 10 12:24:15 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

The same instructions apply to Oracle Linux 5. Or if you are running Red Hat Enterprise Linux / CentOS 6 or 5, you can follow the same method of changing the default kernel by modifying the default directive of the GRUB configuration file, /etc/grub.conf.

References

Comments
Post Details
Added on Sep 23 2018
6 comments
49,391 views