Computer is Dell E6500 laptop, from 2008. Strictly legacy BIOS/MBR, no UEFI, GPT stuff. I use it as a test bed and have a number of drives for it. One drive is a 256GB SSD with four primary partitions: Windows 8.1 Pro Windows 7 Ultimate x64 Vista Ultimate x64 Windows XP x32 w/SP3 Sometimes it boots with the legacy black & white boot menu, other times with the Windows 8 blue boot menu. No problem, I can run all four OS's. But here's where things get goofy: If I shutdown the computer, remove the SSD and replace it with a 100GB hard drive that has Windows XP x32 installed, and nothing else, I get the "Windows 8 needs to be repaired" blue screen at turn on. And I usually have to cold boot the computer two additional times before it finally does a clean boot to XP. So, why the heck does the laptop think Windows 8 exists when it clearly (in this configuration) doesn't, and where is it stored? System ram? CMOS settings? I'm baffled. Anyone have a clue? Next time it happens, I'll remove the laptop battry to see if that clears it. Haven't tried that yet.
Boot to XP (at Only_XP_Alone_Disk) and run msconfig.exe, switch to BOOT.INI tab and look how many lines do you have there under [operating systems] section... BTW: There is another solution, after replacing disk go to BIOS and turn on [clear nvram] option... ...also do not hibernate in W8-x before you switch the disk...
Just one line in BOOT.INI - "Microsoft Windows XP Professional" And, generally speaking, I seldom use hibernate. (Although a few months ago, on a different laptop, I forgot I had put it into hibernate mode. Swapped the drive and got a nice surprise when I tried to power up. Damn lucky that I lost nothing on either drive).
Try putting in the xp drive and doing a: bcdboot c:\windows You need to do it while all system drives have a drive letter and, since you cannot boot to win8, you should probably do it from a win8.1 boot dvd/usbfd Just boot win8.1 winpe mode and shift-f10 when the setup screen shows up for admin command prompt. I really don't know what will happen if c:\windows is not what your system "thinks" is the main system drive. You might need to go around and bcdedit /set {GUID} bootmenupolicy legacy after you do it. I've never tried dual-booting xp/vista/7/8, only 7+
Might have to do with the Fast Startup/Shutdown of Windows 8.x - wouldn't be surprised if that feature does leave some remnants in the BIOS space. In fact, I did have systems where the BIOS detected when a Hibernate action had taken place (full screen "Resuming from Hibernation" logo before Windows even started).
OP says he got a number of disks in his machine, probably the first boot is not the SSD, therefore boot-sector with BCD is still there. If fast startup is enabled in win8/8.1, then a machine shut-down is not a total win8/8.1 shutdown, some "references" is stored in bootsector, however, warm-boot is total shutdown, if win7 is default, it will display the BW boot menu.
"OP says he got a number of disks in his machine, probably the first boot is not the SSD, therefore boot-sector with BCD is still there." Sorry I wasn't more clear - I have a number of drives available, but only one is installed in the laptop at a time. The SSD is quad-boot, four OS's, each in a primary partition. It was a headache to get them all running, as I didn't quite know how to get it all done. It's a sweet setup, if your into that kind of thing.
There is a Linux boot diagnostic/repair tool - BootRepair. Download, burn on CD/USB, run diagnostic and post back result. XP boot files (NT5 boot files) are completely different from Vista/7/8 boot files (NT6 boot files). NT6/NT5 BOOT DEPENDS ON BOOT SECTOR ON ACTIVE PARTITION ON MBR DISK ! ITS LIKE A SWITCH.
Bootloader can write entries into NVRAM of BIOS / EFI (NonVolatileRAM). bcdedit /enum firmware should list all boot entries.
Pretty sure I have it solved now. Laptop BIOS is set to fast boot mode, so it doesn't detect the hardware (disk) change. Although I was remiss in not doing it sooner, I took the time to actually read the full error message (0xc000000e) - Cannot find c:\windows\system32\winload.exe - right! Because it doesn't exist in XP. Closest it has is c:\windows\system32\winlogon.exe - which also explains why none of the options presented would (or could) ever work. Pretty tough to use a Win 8 repair DVD on XP.