The hanging can be caused by many things.
1. Try adding "nomodeset" to the boot command line. It may be a graphics driver issue - notable with Nvidia based systems and the nouveau default driver. 2. If you have multiple graphics cards (more relevent to desktop) such as an on-board and an PCIe based card it is important to make sure that either you have monitors plugged into both outputs or that the on-board is completely disabled - setting the bios selection to use PCIe first is not enough as there is an issue during boot where the graphics driver will swap to using the on-board graphics just after the loading ramdisk message. 3. Have you added kernal debug options to the boot command? Such as verbose, debug and ignore_loglevel? The last one is particularly useful and shows how far the boot actually got. Some info here: https://wiki.archlinux.org/index.php/boot_debugging although arch linux its still relevent.