How to Change Default Kernel on Cent OS
Hi All,
Today, We are going to about how to change the default Kernel on CentOS.
What is Kernel ?
Kernel is heart of Operating System, It is low level interrupter for user and hardware.
Kernel is heart of Operating System.
GRUB2 is the most common bootloader for RHEL 7 systems. A symlink to the GRUB2 config file should be present at /etc/grub2.cfg. The post describes changing the default kernel to a old kernel.
How GRUB2 selects which kernel to boot from
# cat /etc/default/grub GRUB_TIMEOUT=5 <strong>GRUB_DEFAULT=saved</strong> GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
This instructs GRUB 2 to load the kernel specified by the saved_entry directive in the GRUB 2 environment file, located at /boot/grub2/grubenv.
# cat /boot/grub2/grubenv # GRUB Environment Block saved_entry=Red Hat Enterprise Linux Server (3.10.0-327.10.1.el7.x86_64) 7.2 (Maipo)
One can set another GRUB record to be the default, using the grub2-set-default command, which will update the GRUB 2 environment file. By default, the saved_entry value is set to the name of latest installed kernel of package type kernel. This is defined in /etc/sysconfig/kernel by the UPDATEDEFAULT and DEFAULTKERNEL directives.
# cat /etc/sysconfig/kernel # UPDATEDEFAULT specifies if new-kernel-pkg should make # new kernels the default UPDATEDEFAULT=yes # DEFAULTKERNEL specifies the default kernel package type DEFAULTKERNEL=kernel # MAKEDEBUG specifies if new-kernel-pkg should create non-default # "debug" entries for new kernels. MAKEDEBUG=yes
Change default kernel
To force a system to always use a particular menu entry, use the menu entry name as the key to the GRUB_DEFAULT directive in the /etc/default/grub file. The following command will print a list of the menu entries present in GRUB2’s configuration.
# awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg Red Hat Enterprise Linux Server (3.10.0-327.10.1.el7.x86_64) 7.2 (Maipo) ===> entry 0 Red Hat Enterprise Linux Server (3.10.0-229.el7.x86_64) 7.2 (Maipo) ===> entry 1 Red Hat Enterprise Linux Server (0-rescue-0cb6313ed65e4b36ba5daace11f3ad50) 7.2 (Maipo)
# grub2-set-default 1
This will make 3.10.0-229.el7.x86_64 as defaul kernel which was the old kernel in the system.
Verify the new default kernel
Check the below file to see the kernel which will be loaded at next boot, crosscheck the numeric value with the menuentry in the /etc/default/grub file.
# cat /boot/grub2/grubenv |grep saved saved_entry=1
Rebuild GRUB2
Changes to /etc/default/grub require rebuilding the grub.cfg file as follows:
# grub2-mkconfig -o /boot/grub2/grub.cfg
After rebooting server, the changes will take effect.