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
How to convert RAW image to VDI and otherwise
Viewed 1148 times since Wed, Oct 3, 2018
Using renice and taskset to manage process priority and CPU affinity with Linux OEL 6.4
Viewed 322 times since Mon, Feb 17, 2020
Używanie rsync poprzez Secure Shell
Viewed 847 times since Thu, May 24, 2018
LUKS List available methods of encryption for LUKS
Viewed 507 times since Fri, Jul 13, 2018
Linux Find Large Files
Viewed 566 times since Mon, Oct 29, 2018
OpenSSL: Check If Private Key Matches SSL Certificate & CSR
Viewed 408 times since Mon, Feb 18, 2019
Linux get the list of FC HBA’s and WWPN
Viewed 934 times since Tue, May 22, 2018
Linux Chage Command to Set Password Aging for User
Viewed 446 times since Tue, Sep 11, 2018
Top 20 OpenSSH Server Best Security Practices ssh linux aix
Viewed 81 times since Fri, May 15, 2020
How To Find Largest Top 10 Files and Directories On Linux / UNIX / BSD find
Viewed 432 times since Mon, Oct 29, 2018