If you're not at all able to boot into desktop than use recovery mode
from the boot menu when you start up and see terminal prompt is available.
It may happen that GRUB failed to get correct resolution supported by your GPU, and a resolution too high or too low may result into unbootable system.
You can perform following steps to get bootsplash at correct/acceptable resolution on startup.
Open terminal (if you're able to boot into desktop) as you'd need to run some commands to fix the problem. Or, you can perform following steps from recovery mode
too.
Identify your maximum supported screen resolution (assume 1024x768 as default/safer).
Open /etc/default/grub
in text editor as root, run in terminal.
gksu gedit /etc/default/grub
Alternatively, you can edit the file from within terminal using nano
by running the same command with little modification as: sudo nano /etc/default/grub
.
Just use Ctrl+O to save changes you make to the file and Ctrl+X to exit the editor.
As the file opens in text editor, look for option GRUB_GFXMODE
(it might be commented using '#', if so, remove preceeding '#' symbol to uncomment).
Set option's value as following (you can use your screen's resolution in similar way).
GRUB_GFXMODE=1024x768
Save file and exit.
Run following command to set boot splash to use framebuffer for showing bootsplash while booting up (correct me if I'm wrong).
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
Now run following two commands one-by-one.
sudo update-grub2
sudo update-initramfs -u
Now reboot to see if you have bootsplash instead of blank purple screen.
This method has worked for most graphics cards, I don't know if its a fix or workaround, but ever since Ubuntu changed the bootsplash to the current one (Since 10.04) I always need to perform above steps after installing new version of Ubuntu to get bootsplash working on my laptop which has Intel integrated graphics.