RHEL: Adding a boot entry to GRUB/GRUB2 configuration

# Tested on RHEL 6 & 7

# RHEL 6
# ------------------------------------------------------------------------------------------

# Adding a new entry to grub boot file is as simple as adding a new boot stanza, at the end
# of the file, to /boot/grub/grub.conf

# To modify the default boot entry, we have to change the 'default' option to point to the
# the new stanza. We can use entry position (zero-based numbering):

vi /boot/grub/grub.conf
title CentOS (2.6.32-358.el6.i686)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/rootvg-lv_root [...]
        initrd /initramfs-2.6.32-358.el6.i686.img
title CentOS - Backup ramdisk image
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/rootvg-lv_root [...]
        initrd /initramfs-2.6.32-358.el6.i686.img.bak

# RHEL 7
# ------------------------------------------------------------------------------------------

# RHEL 7 uses grub2 and /boot/grub2/grub.cfg config file, instead of the old grub.conf
# format.

# The new grub.cfg file is not intended for direct editing. Rather we have to modify the
# source file and run the grub2-mkconfig command to generate it.

# The sources files are /etc/default/grub and the scripts under /etc/grub.d/

# If we want to add a new custom entry to boot menu, we have to add a boot stanza to
# /etc/grub.d/40_custom. These stanzas will look like this:

menuentry "CentOS - Backup ramdisk image" {
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        linux16 /vmlinuz-3.10.0-327.el7.i686 root=/dev/mapper/rootvg-lv_root ro crashkernel=auto [...]
        initrd16 /initramfs-3.10.0-327.el7.i686.img.bak
menuentry "Another boot entry" {
        set root=(hd0,1)
        linux /vmlinuz-3.09-custom
        initrd /initrd-3.09-custom.img

# To modify the default boot entry, we have to change the GRUB_DEFAULT option in
# /etc/default/grub to point to the new stanza we added. We can use entry position
# (zero-based numbering) or by name:

GRUB_DEFAULT="CentOS - Backup ramdisk image"


# Default value of GRUB_DEFAULT is 'saved' which points to /boot/grub2/grubenv file.

# Once finished, we have to run following command in order to re-generate
# /boot/grub2/grub.cfg file:

grub2-mkconfig -o /boot/grub2/grub.cfg

0 (0)
Article Rating (No Votes)
Rate this article
There are no attachments for this article.
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
RHEL: Reserved space on a ext2/ext3/ext4 filesystem
Viewed 2742 times since Sun, May 27, 2018
Linux - How to get CPU information
Viewed 760 times since Fri, Jun 8, 2018
How to encrypt a partition with DM-Crypt LUKS on Linux
Viewed 856 times since Fri, Jul 13, 2018
chrt command: Set / Manipulate Real Time Attributes of a Linux Process
Viewed 1090 times since Mon, Feb 17, 2020
RHEL: Handling SCSI disks
Viewed 1506 times since Sun, May 27, 2018
Viewed 1562 times since Fri, Nov 30, 2018
How to Configure ‘FirewallD’ in RHEL/CentOS 7 and Fedora 21
Viewed 1234 times since Wed, Oct 9, 2019
Oracle Linux 7 – How to audit changes to a trusted file such as /etc/passwd or /etc/shadow
Viewed 1601 times since Wed, Jul 25, 2018
A Quick and Practical Reference for tcpdump
Viewed 2407 times since Fri, Jul 27, 2018
RHEL: Retrieve and generate a unique SCSI identifier
Viewed 1222 times since Sat, Jun 2, 2018