Change GRUB Bootloader colors, image & timeout

Introduction

Let's look at how to customize the GRUB bootloader background image, colors, and timeout. These were all done and tested in Debian 10.8 Buster.

Change Timeout

Edit /etc/default/grub and modifty GRUB_TIMEOUT. You can set it as low as 0 to skip the menu.

GRUB_TIMEOUT=0

Then run:

sudo update-grub

Change background image

Set the GRUB_BACKGROUND variable in /etc/default/grub.

For example, if you installed some sample images with the grub2-splashimages package, you can find the images with dpkg -L grub2-splashimages and try them.

Otherwise, make your own PNG, JPEG, or TGA file. It will scale it down automatically.

Here is an example:

# in /etc/default/grub:
GRUB_BACKGROUND=/usr/share/images/grub/Plasma-lamp.tga

Then run:

sudo update-grub

Change text colors

Add a config in /etc/grub.d to override the settings in /etc/grub.d/05_debian_theme. Files are loaded from there alphabetically so you want yours to be last to override anything.

Color list is available at: https://www.gnu.org/software/grub/manual/grub/html_node/color_005fnormal.html#color_005fnormal

Example file:

#!/bin/sh
# Requires executable bit
# /etc/grub.d/99_mytheme
# and run `sudo update-grub`
echo "set menu_color_normal=light-cyan/dark-gray"
echo "set menu_color_highlight=dark-gray/light-cyan"
echo "set color_normal=white/black"
echo "set color_highlight=black/white"

Then run:

sudo update-grub

Note: Change the dark-gray background in menu_color_normal to black if you want it to be transparent to show an image underneath.

References