How to add a background image to the GRUB menu in EFI on a DVD

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 7, 8

Issue

How to add a background image to the GRUB menu in EFI on the RHEL bootable DVD

Resolution

  1. Copy all files from an original DVD to a custom iso:

    # mount -o loop RHEL-8.2.0-20200404.0-x86_64-dvd1.iso /media
    $ mkdir your_custom_iso
    $ cp -a /media/. your_custom_iso
    $ chmod u+w -R your_custom_iso
    $ mkdir your_custom_iso/EFI/BOOT/x86_64-efi/
    $ rpm2cpio /media/BaseOS/Packages/grub2-efi-x64-modules-2.02-81.el8.noarch.rpm | cpio -idmv
    $ cp usr/lib/grub/x86_64-efi/{gfxterm{.mod,_background.mod},png.mod} your_custom_iso/EFI/BOOT/x86_64-efi/
    
  2. Add a background image, works with PNG image with 640 x 480 dimensions:

    $ file your_custom_iso/EFI/BOOT/splash.png
    splash.png: PNG image data, 640 x 480, 8-bit/color RGBA, non-interlaced
    
  3. Modify your_custom_iso/EFI/BOOT/grub.cfg:

    ...
    insmod gfxterm
    terminal_output gfxterm
    loadfont /EFI/BOOT/fonts/unicode.pf2
    insmod gfxterm_background
    insmod png
    background_image -m stretch /EFI/BOOT/splash.png
    ...
    

See also: How to change splash screen on grub menu during boot?

Disclaimer: Using custom ISO images is not supported; for example if anaconda fails when using a custom ISO image, Red Hat will not be able to help investigate the issue.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.