====== Customizing grub ======
You might have got tired of seeing a box with black background for GRUB when Linux is booting. You could add a background image which looks good (better than the boring background colors).
The steps mentioned below were tested with grub-1.98 and should work on newer versions.
===== Choosing a GRUB Background Image =====
GRUB 2 can use PNG, JPG/JPEG and TGA images for the background. The image must meet the following specifications:
* JPG/JPEG images must be 8-bit (256 color)
* Images should be non-indexed, RGB
===== Order of Search for GRUB Splash Images =====
In grub-1.98, the splash image to be displayed will be searched in the following order.
* GRUB_BACKGROUND line in /etc/default/grub
* First image found in /boot/grub/ ( more images found, it will be taken alphanumerically )
* The image specified in /usr/share/desktop-base/grub_background.sh
* The file listed in the WALLPAPER line in /etc/grub.d/05_debian_theme
So you can use any of the above in the order of priority to make GRUB display your own images. The following is an example content of /etc/default/grub file.
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
GRUB_BACKGROUND="/files/wallpapers/grub.png"
Once changes has been done using any of the above methods, make sure you execute **update-grub** command as shown below.
# update-grub
Generating grub.cfg ...
Found background: /usr/share/images/desktop-base/moreblue-orbit-splash.png
Found background image: /usr/share/images/desktop-base/moreblue-orbit-splash.png
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
done
===== Change GRUB Front and Menu Colors =====
Now that you have your own image in GRUB, you can change the default colors. The following are the 3 main GRUB color setting that you can change:
* menu_color_highlight => The color of the highlighted menu entry and its background within the menu box
* menu_color_normal => The color of non-selected menu entry and its background within the menu box
* color_normal => The color of text and background outside the menu box
The syntax for specifying the color is as follows:
menu_color_highlight=fg-color/bg-color
The following colors are supported by grub:
* black
* blue
* brown
* cyan
* dark-gray
* green
* light-cyan
* light-blue
* light-green
* light-gray
* light-magenta
* light-red
* magenta
* red
* white
* yellow
Now to change the colors, open “/etc/grub.d/05_debian_theme” and find the following line:
if [ -z "${2}" ] && [ -z "${3}" ]; then
echo " true"
fi
and, replace them with the following:
if [ -z "${2}" ] && [ -z "${3}" ]; then
# echo " true"
echo " set color_highlight=red/green"
echo " set color_normal=light-cyan/black"
fi
Don’t change the “black” present in color_normal. If changed, the image will not be transparent in the area where the menu is displayed.
After this change, execute “update-grub”, and reboot your system. You will notice the change in the font colors displayed.
===== Experiment with GRUB Colors =====
When you are not sure of what colors to choose, and you would like to experiment, then you can do it from the grub command-line itself.
- When the grub menu appears, press any key to stop the countdown
- Press ‘C’ to get into GRUB command line, and experiment as you wish
- grub> set color_highlight=red/green
- grub> set color_normal=light-cyan/black
- Now press “ESC”, to see the effect of your changes. If not satisfied, follow the steps once again and try different combinations.