I assume you have grub2. If grub-customize does not work, you will have to hack the files manually or install a ready theme and customize that.
Please check /etc/default/grub, this is the file for your theme.
You can set GRUB_BACKGROUND to the background image you want (you might have to add that line if there is none).
GRUB_BACKGROUND=/path/to/file
You can toggle the gfxmode by running vbeinfo in grub: reboot, in grub, hit c and type vbeinfo. Select an appropriate graphics mode, write it down and exit out of grub to boot into GNU/Linux. Uncomment #GRUB_GFXMODE=640x480, set it to your preferred mode (this is mine, do not use on your system if not in YOUR output of vbeinfo):
GRUB_GFXMODE=1440x900x24
Icons:
Inspect /boot/grub/grub.cfg
For each entry you will have one or more classes.
You can put icons for a class in /boot/grub/themes/icons
Ready themes:
https://bbs.archlinux.org/viewtopic.php?id=141631
As you see on that page, simply copy them to /boot/grub/themes (you might have to create that directory first)
If you still have issues, please post:
Please post $ cat /etc/default/grub and $ ls /boot/grub/themes/