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: Services basic management - chkconfig
Viewed 2891 times since Sat, Jun 2, 2018
ZPOOL: Create a new zpool for zfs filesystems
Viewed 769 times since Sun, Jun 3, 2018
Create a Linux Swap File
Viewed 598 times since Fri, Jun 8, 2018
10 Linux cryptsetup Examples for LUKS Key Management (How to Add, Remove, Change, Reset LUKS encryption Key)
Viewed 861 times since Tue, Jul 31, 2018
RHEL: Rename a network interface on RHEL 7
Viewed 2017 times since Sat, Jun 2, 2018
Testing TLS/SSL encryption
Viewed 448 times since Thu, Jan 16, 2020
Using stunnel and TinyProxy to obfuscate HTTP traffic
Viewed 1051 times since Fri, Sep 28, 2018
Set Up SSH Tunneling on a Linux / Unix / BSD Server To Bypass NAT
Viewed 88 times since Fri, May 15, 2020
10 Linux nslookup Command Examples for DNS Lookup
Viewed 496 times since Sun, Sep 30, 2018
Linux – delete the LUN and remove traces from OS
Viewed 859 times since Tue, May 22, 2018