When you run into problems with your system booting into windows the first thing you always try is going into Safe Mode. One of my favorite parts of this process is seeing what and when every service starts. You can see this data every time you start windows if you would like. This serves the curious people and those who need to troubleshoot problems.
Windows Safe Mode disables a lot of the services. To load "safer" it doesn't start any services that it doesn't need. What happens if the service that it hangs on is one of those services that are disabled in safe mode? To help speed the process of troubleshooting up you'll want to display the services as they load outside of safe mode.
How do I do it you say?
Add the /SOS switch to your boot.ini
My original boot.ini looks like this:
[boot loader]
timeout=5
default=signature(85b37567)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
signature(85b37567)disk(0)rdisk(0)partition(1)\WINDOWS="OS for testing new boot screen" /fastdetect /KERNEL=NewBoot.exe
signature(85b37567)disk(0)rdisk(0)partition(1)\WINDOWS="(default)Microsoft Windows XP Professional" /fastdetect
For this I will add the /SOS switch to my second line
signature(85b37567)disk(0)rdisk(0)partition(1)\WINDOWS="(default)Microsoft Windows XP Professional" /fastdetect /SOS
I suggest you make an exact copy of your first line under [operating systems] Give it a different name like troubleshooting or service monitoring.
After you save your boot.ini you will need to reboot to see it. You'll also need to have the timeout set for something above 0 so you can even see the screen. Select the option you just created in the steps above. For me I will see (default)Microsoft Windows XP Professional and I will need to select that if I want to see when my services are starting.