This was copied from my old WordPress blog and why it is more casual than other articles.
I have a spare Pentium 4 computer lying around. Unfortunately, it has no video card; nor did it have an onboard integrated graphics card. In order to install CentOS 6, I had to 'borrow' a card from another computer. While I had the card installed, I ensured the BIOS did not halt on any errors and it booted off PXE after HD. After testing the boot process a few times, I 'returned' the card to its rightful place - leaving the Pentium 4 without a card and me hoping the computer still works.
Upon turning the computer on, the POST process would beep a morse code "long short short" signifying there is no graphics card and the computer would freeze (The numlock key on the keyboard froze). After unplugging the hard drive and hard resetting the computer, it would by default boot via PXE without a problem (I can see tftp and nfs traffic as it began booting Ubuntu). This proved that the computer indeed was getting past POST without a problem.
After hitting my head against the wall for a few hours, it appears that grub needs to be set into console mode otherwise grub will cause the boot process to hang.
To resolve this, comment out anything that requires Grub to use a framebuffer, such as loading a splashimage. In
default=0 timeout=5 # splashimage=(hd0,0)/grub/splash.xpm.gz serial --unit=0 --speed=9600 --parity=no --stop=1 terminal --timeout=2 serial
Note that the splash image is commented out and the boot mode is now set to use the serial port (which the computer doesn't have)
Once this was set, the computer boots without a problem.