In this tutorial I will share the steps to change background image of your GRUB2 menu which is also referred as splash screen in Linux. The default splash screen varies across different Linux distributions. In this article I will use RHEL 8 but the same steps would be valid for any other distribution using GRUB2 such as Ubuntu, Debian, CentOS, SuSE etc.
1. Default GRUB2 background image
With my Linux distribution, below is the default GRUB2 background image.
As you see, it is a plain black background image. In default RHEL distribution they use isolinux/splash.png
which is nothing but a plain background image.
vesamenu.c32
(graphical) and menu.c32
(text mode only) but those cannot be used for grub2 background here.
2. Place your custom image on the server
You can use JPG/JPEG or PNG images as your new background image instead of the default splash screen. make sure the image resolution is 600*600 or higher. You can put the image any preferred location, we will create a new directory /boot/grub2/images
# mkdir /boot/grub2/images
Next copy your image inside this directory
# ls -l
total 384
-rw-r--r-- 1 root root 363046 Aug 28 13:39 RHEL_8_Desktop.png
So now we have our image. Let's go to the next step.
2. Update GRUB2 with new background image
Update your GRUB2 and add or modify below variables in /etc/default/grub
# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true #GRUB_TERMINAL_OUTPUT="console" <-- Commented out this entry GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet biosdevname=0 net.ifnames=0" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true GRUB_TERMINAL_OUTPUT="gfxterm" <-- Use gfxterm GRUB_BACKGROUND="/boot/grub2/images/RHEL_8_Desktop.png" <-- provide the location of your image
4. Rebuild GRUB2
Next rebuild your GRUB2 configuration on legacy BIOS
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found background: /boot/grub2/images/RHEL_8_Desktop.png
done
/boot/efi/EFI/redhat/grub.cfg for rebuilding GRUB2
5. Verify the new GRUB2 background image
We are all set, next reboot the node and verify your new GRUB2 background image
So now we have our new GRUB2 background image
Conclusion
In this turorial we learned about how we can change the GRUB2 background image with our own splash screen. These steps are tested only on running Linux environment and not on custom ISO DVD. The steps required to change GRUB2 background image in ISO dvd will vary. Since I do not have a UEFI environment, I could not verify that part. if you face any issues kindly drop in a comment available at the bottom of this article.
References
I have used below external references for this tutorial guide
How to change splash screen on grub menu during boot?
On my fedora systems 32 or 33 the only way this works is to disable secure boot.
If you’re using a Debian-based distribution, you can do all things grub including setting the background image using the grub-customizer package.It’s in the standard repos now. Prior to 20.04 it was available in a PPA.