It would be good to see at what stage it is hanging so I would recommend booting into recovery mode using the steps below.
Before trying any of the repair options choose resume to boot normally and you will see each process through the terminal when it hangs what do you see?
You could then try the dpkg option a summary of this option is below.
This option will perform an apt-get update and upgrade and will attempt to repair any problems you might have with half-installed packages. You might choose this option if a package did not fully install or upgrade correctly and its init script is stalling out so the system can’t boot fully. This choice could potentially fix the package problems.
Booting into recovery mode
Switch on your computer
Wait until the BIOS finishes loading (you will probably see a logo of your computer manufacturer)
The following messages may show up:
Grub loading stage1.5
Grub loading, please wait...
Quickly press the Shift key or Escape, which will bring up a boot menu. (If you see the Ubuntu logo, you've missed the point where you can enter the GRUB menu)
Select the line ending with '(recovery mode)', probably the second line, something like:
Ubuntu, kernel 2.6.17-10-generic (recovery mode)
Press enter and your machine will begin the boot process.
After a few moments, your workstation should display a menu with a number of options.
Recovery menu summary