XP on secondary partion won't boot

#1
Ok, I read all the intros and FAQs and tested for several hours, but I didn't get my problem fixed.
My frustation level is already high, so I decided to ask for help now.

Here is my setup.

I started with one big partition with XP and wanted to install Win7 in parallel (dual boot).
I did a backup, repartitioned the HD into two partitions, restored XP in the first and installed Win7 in the second.
XP was fine, but I could not boot Win7. I did not think about boot manager etc. at first but simply formated the partitions again, installed Win7 on the first partition and restored XP to the second.
Now Win7 was running fine but I couldn't get XP started. :nerd:

I googelt for a solution and came across EasyBCD. That was easy: I just added XP in the boot menu (with default settings), made it the first entry in the list, and the default entry as well.

The configuration now is (sorry for German :smile:)
Zur Zeit existieren insgesamt 2 Einträge im Bootloader.Voreinstellung: Windows XP
Wartezeit: 30 Sekunden
Startlaufwerk: C:\
Eintrag #1
Name: Windows XP
BCD ID: {default}
Laufwerk: C:\
Bootloader Pfad: \NST\ntldr
Eintrag #2
Name: Windows 7
BCD ID: {current}
Laufwerk: C:\
Bootloader Pfad: \Windows\system32\winload.exe

After saving the config, the boot.ini on my first partition (with Win 7) looks as follows:

; This boot.ini was automatically generated by NeoSmart Technologies' BootGrabber.exe
; Use EasyBCD from http://neosmart.net/dl.php?id=1 to manage your bootloader
[boot loader]
timeout=15
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP on D:\" /fastdetect

The boot.ini of the second partition (XP, if that is relevant at all) was changed to:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft WinXP (on Volume 1) (Memory: NT=1532 MB, MIL=4.0 MB)" /MAXMEM=1532 /fastdetect /NoExecute=OptIn /sos

Now I can still boot Win7, but when booting XP I get

Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\ntoskrnl.exe

The file is definitely there - under Win7 I see it as d:\windows\system32\ntoskrnl.exe
So from what I understand everything is fine, but it's still not working.

I better don't tell you the thousands things I have tested unsuccessfully. Maybe someone can give me simply the right hint?
Could it be that the XP restore into the second partition is to blame for it? But how to fix it?

Many thanks.
 
#2
One additional observation:
During some test when I changed the boot.ini manually I always wondered why the boot loader would like to load \NST\ntldr and not \ntldr, even though the file resides in the root dir of the second (XP) partition.
Last night I saw by chance that my first (Win7) partition contains a folder \NST\ntldr however it got there. I deleted that folder and sure enough, the error message is not anymore "ntoskrnl.exe not found" but "\NST\ntldr not found". So it seems that EasyBCD takes the configuration from the first partition, not the second!?!
 

Terry60

Knows where his towel is.
Staff member
#3
Microsoft boot design requires that all the boot files for any of multiple OSs reside in the "active" partition.
When you install Vista/7/8 alongside an existing XP, it will put the new boot files in the old XP partition for that reason.
If you install XP after V/7/8, that's also the reason why the V/7/8 boot gets back-levelled making it unbootable till repaired.
It's the reason why EasyBCD creates copies of all the relevant files in the "active" "system" partition. (the ones on the XP partition become redundant and are not used to boot the OS).
Delete the XP entry from the BCD and add it again letting EasyBCD auto-configure.
Don't change anything that EasyBCD set up, and try the boot again.