How to add a splash image to Ubuntu Grub.

Feb 19, 2007 12:07 GMT  ·  By

The splash image is an image shown in the background, while GRUB displays the list of operating systems available for booting. Unfortunately, Kubuntu has no splash image set by default, which might be upsetting for some people. The good news is, however, that setting a Grub splash image is a rather easy process and anyone with GIMP installed OR ImageMagick should be able to do it.

First of all, you'll need an image. Search the web for a nice image with your distribution's logo or any other image, or open-up Gimp and do it yourself. However, pay attention to the image's resolution, because Grub needs a 640x480 image and we don't want to end-up with a deformed image. Therefore, only search for images with a resolution of 640x480, 800x600, 1024x768 etc.

Create the image

Method 1 - ImageMagick:

- Once you found an image, assuming it's called splash.png and you have ImageMagick installed, open a terminal, change directory to where the image is located and run the following command:

code
$ cd /path/to/where/splash.png/is/located
$ convert -resize 640x480 -colors 14 splash.png splash.xpm && gzip splash.xpm

Method 2 - Gimp:

- Start Gimp - Go to File / New (or type Ctrl + N) - In the Create New Image dialog, choose a 640px Width and 480px Height - Create the image you'd like to use as splash image. Experiment with Gimp tools or load (open as layer) an image and edit it. - When you're done, go to Image / Mode / Indexed, select optimal palette, 14 maximum colors and click OK. - Finally, right click on the image, select File / Save as and choose the name 'splash.xpm' for the image. Save it in a directory of your choice. - Open a terminal, change dir to that directory:

code
$ cd /where/you/saved/splash.xpm
- And add it into an archive:
code
$ gzip splash.xpm

Configure GRUB to display the splash image

- Now, create a grub directory and move the splash image to it:

code
$ chmod 644 splash.xpm.gz
$ sudo mkdir /boot/grub/splashimages
$ sudo cp splash.xpm.gz /boot/grub/splashimages
- Back-up the current Grub menu.lst:
code
$ sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.old
- Finally, open menu.lst in a text editor and add the following line at the top of the file:
code
splashimage=(hd0,0)/boot/grub/splashimages/splash.xpm.gz
NOTE! Check if the numbers between the Brackets are THE SAME as the kernel you normally choose from the Grub list at boot time. Scroll down the menu.lst file and find the kernel normally used. Look at root directive to check the numbers in the brackets and then look at the kernel directive and check if there's a /boot/directory before vmlinuz. If there isn't, delete it from the splashimage also:
code
splashimage=(hd0,0)/grub/splashimages/linuxinside.xpm.gz
- Save the menu.lst file and reboot. If everything worked out well, Grub should display the new splash image.

This guide should work on any Linux distribution using GRUB as the boot manager. However, alternatively, for (K)Ubuntu, you can install the following packages:

code
Ubuntu:
$ sudo apt-get install grub-splashimages
or

code
Kubuntu
$ sudo apt-get install kubuntu-grub-splashimages
After the package has been installed, check the /boot/grub/menu.lst file to see if the splashimage directive has been correctly added.