I apologies for reviving this thread as it seems to have been solved, but i was having the same problem on a laptop i was repairing and google pointed me here! Great advice and a great site, kudos to you all.
Anywho, it turns out the Askupgrade service was causing the problem.
I have however come up with a short term fix to restore the boot.ini file each time the computer starts. This will simply work as a quick fix, and will by no means resolve the underlying problem, but it will also remove the need to manualy replace the boot.ini after each reboot.
I just wanted to share this with you, to see if it helped anyone else.
Basically, i created two files. One called loader.txt and the other called runmeonstart.bat
The premise is basically very simple.
In the loader.txt file, you need to copy the information within your boot.ini file, example:
[boot loader]timeout=30default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS[operating systems]multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect
Then, you edit the batch file, so that it copies the loader.txt file to a boot.ini file stored in the c: drive - Example:
echo f | xcopy "C:\location\of\files\loader.txt" "c:\boot.ini" /h /k
What this does is use the 'xcopy' tool to copy and rename loader.text to c:\boot.ini.
You may also notice the /h /k switches, these are here as i set the loader.txt file to hidden. This allows the boot.ini file to be created hidden too! the 'echo f |' allows the script to continue without interruption.
I suggest creating the files in a folder somewhere other than the root of the drive.
As i stated, this is by no means an ideal fix, but it certainly does the job in the short term!
Anywho, i hope you find this useful. If you need any further explanation, or a better one, contact me.
Oh, i should probably add, the resulting batch file needs to run on startup!
Edited by Travis-HCS, 01 May 2010 - 01:56 AM.