We need the image of the background photo, and a photo editor like gimp.
First of all, open up your image with gimp and scale it to 640 weight and 480 hight.
Next we have to convert the scaled image to an indexed color, an pixmap X image, so for that go to
image->mode->indexed and ‘check generate optimum palette’, with ‘14′ in the ‘Maximum number of colors’ box.
save it with xpm extension, after that gzip your image.
$ gzip image.xpm
as result you have image.xpm.gz
Finally, we have to tell to grub to use the background image.
So we can dedicate an directory for our background images,
$ sudo mkdir /boot/grub/images
$ sudo mv ~/image.xpm.gz /boot/grub/images/
edit your menu.lst with your favorite editor and add the following line:
note that you have to replace (hd0,2) with your root partition.
If everything went well, you should see the background next time you boot.
There is a tips if you want test your splash on boot, so on reboot and when the grub menu pops up hit ‘c’ to enter command mode.
and tape :
grub> root (hd0,0)
grub> splashimage /boot/grub/images/image.xpm.gz
if everything is well you will see your background image.
For debian and ubuntu users, you can get splashimage from repository as:
$ sudo aptitude install grub-splashimages
this will put splashimage in /boot/grub/splashimages
so go to boot/grub directory and make a symbolic link to your splash choosen, and update your grub.
$ cd /boot/grub
$ sudo ln -s splashimages/debsplash.xpm.gz splash.xpm.gz
$ sudo update-grub