Windows 7 Dual Boot XP and Win7-problem: ntoskrnl.ex

deepmojoman

New Member
So I have a computer that now has XP/32 and Win7 64, installed all on the same disk, with two partitions that, while in XP, are id'd as C (XP) and H (Win7). Whenever I boot up and choose XP from the Boot Manager I get into XP, no problem. But if I choose Win7 from the Boot Manager, then I get the message: "<windows root> System32\NTOSKRNL.EX is missing or corrupt".

I have read several things on this matter-a lot of them point to problems with the XP boot.ini file, and I have been trying to alter it correctly, but to no avail. The present boot.ini reads as follows:

"[boot loader]
timeout=30
default=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
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Win7" /noexecute=optin /fastdetect". If you'll note, on the second OS line, I have already changed the partition # from a 1 to a 3 (because that disk has 3 partitions: C (upon which XP is located, then H where there is a lot of audio files and then the newest partition: H) but this has not helped anything.

The only way for me to get to Win7 currently is to put my XP disk into the computer before startup, and then, for some reason, if I just let the disk stay in there, without booting from it, and instead just let the boot up process continue on then I get a different looking Boot Manager, which gives me the same choices for OSs: XP and Win7. If I choose Win7 then it goes there just fine. But-get this-if I choose XP then it gives me the same error message: "<windows root> System32\NTOSKRNL.EX is missing or corrupt"!

Something is telling me that there is something wrong with the way the partitions are identified on the boot.ini level, and I have just not yet understood how to fix it, but I could be wrong.

I tried repairing the ntoskrnl.ex in XP through the Recovery Console. I typed in the command: expand d:\i386\ntoskrnl.ex_ c:\windows\system32 (I read on another forum that this was how you'd be able to replace a corrupted ntoskrnl.ex with a fresh copy) but whenever I do this I get back the message: "Access Denied'. Not sure why-I'm the Administrator of this system.

I obtained EasyBCD and installed it onto the Win7 partition, but this has not solved my problem: it just created a boot.ini file that is basically ineffectual in getting me back to XP.

Any insights would be DEEPLY appreciated!
 
Thanks for trying, Elmer but, as I said, I did try EasyBCD. It did not work. I can't even get it to load up in XP because it says it does not operate in XP-only environments, and while it did write up a new BCD in Win7, for booting up both in Win7 and XP, it does not work: the Win7 Boot Manager only works for Win7. Again, as I said, if I choose XP from the Win7 Boot Manager, then I get the same ntoskrnl.ex error.

So, having reiterated a lot of things, I say again, does anybody have any possible insights into a solution for me?
 
Could you supply a picture of your Disk Management window? If in XP, and print screen may work and then crop it with paint. Attach using the paperclip.

EasyBCD will run in XP but it needs .Net Framework installed. Not sure which one but the site mentions it. You could also load up the Windows 7 Install DVD and try doing a Startup Repair for Windows 7.

I have attached a picture of what the BCD store should look like if your are using the Windows 7 boot. I would of course vary depending on where your installs are. If you want to use the XP boot, I will have to do some research. It seems my attachment does not show the XP entry. I will have to look for it.
 

Attachments

  • Boot.GIF
    Boot.GIF
    9.2 KB · Views: 997
Last edited:
Thanks Saltgrass for the reply. Here's my pic of my Disk Management window..Also, I checked Add/Remove Programs and I do have Microsoft.NET Frameworks 2.0 SP 2, 3.0 SP 2,and 3.5 SP1 installed. Should this be the ticket I need?Pic of Disk Management.GIF
 
Last edited:
I will also mention, EasyBCD, if you can get it to run, would normally copy 3 files to the Active partition. You may have to do this yourself if EasyBCD is not functioning. They are Ntdetect.com, boot.ini and ntldr.

Depending on how you installed the OSes, they may already be there.

I need to check your latest post.
 
When you are installing OSes, it is very important to know which hard drive is primary in the bios. I always recommend removing extra drives until you have your system set up. If you do not want to remove them, make sure the Windows drive is showing as primary in the bios. This may mess up a current boot scenario, but it can be fixed.

The only active partition I see is on the 1T drive you show as D. But XP uses different terminology than Windows 7, so the system partition may be active and contain the boot files. If the Windows 7 boot files are in the first partition, you can look for hidden system files and see if a boot folder is present.

How did it come to be you put the Windows 7 OS in an extended partition? It will work as long as you have an active primary partition, but it does look a little strange.

I think the easiest thing to do is a startup repair for Windows 7 and get it working normally. Then use EasyBCD to set up the XP boot. Make sure you are using at least the version 2 of EasyBCD.
 
So I'm noting what you're seeing. The thing that's interesting is that that D drive is a backup drive-no system files on it whatsoever (backup program is True Image).

When I first installed XP, I left some unallocated space for an eventual partition that I'd format and use for Win7 (that would later come to be the H partition.

So could you explain to me what "Active" means in this context?

And BTW, you are suggesting that I might have to repair Win7 to "get it working normally". Well, other that the fact that the Win7 Boot Manager does not switch succesfully over to XP, it does appear to be working normally. You say after this repair then "use EasyBCG=D to set up the XP boot", but I have yet to be able to get EasyBCD to operate in XP, and I have added the NTLDR and the NTDETECT into the Windows folder of the C drive, but to still no avail: still no EasyBCD launch. So are you thinking that somehow problems in Win7 are affecting my ability to open EasyBCD in XP-as if to say, fix Win7 and then you'll be able to work with EasyBCD in XP, and therefore launch from XP into Win7?
 
A partition has to be active to be bootable. Having one active on a drive that is not primary, is not a problem, but can be if you are installing and OS. Windows 7 will look for and install its boot files on the first active partition on the primary drive. If the primary drive does not have an active partition, it will make one.

The MRB tells the system whether to boot to a Windows 7 boot system or and XP boot system. They are completely different, which is why you need to use the Windows 7 boot system for the dual boot.

I can't say for sure, but I do not think you can use the boot.ini to load Windows 7. You need to get your Windows 7 boot working and then add XP. Which is why I suggest a Startup Repair. This type of repair will reconfigure your system for a Windows 7 boot. It will not reinstall Windows 7.

If you have an active partition, such as your D, the Windows 7 boot files may be there. I am fairly certain you do not want it that way, so check for the boot folder (hidden-system) to see where the Windows 7 boot files are.
 
So when I'm checking my active disk to see if there are boot files there, am I trying to do this while in Win7 (and if so, then how do I view Hidden Files in Win7) or through XP (wherein I already know how to see Hidden Files)?

And BTW, if I look at Computer while in Win7, that disk which is active won't even be opened up. It does not show any size information on it or anything. If I double-click on it it says: D:\ is not accesible. Access Denied."
 
In XP, you probably not need to look for hidden files since XP doesn't know to hide them.

In Windows 7, you open folder options in Control Panel, View tab and select Show hidden files and unckeck Hide protected operating system files. I would not leave the system file unchecked, but just to find certain ones.

Since the other drives may be causing you problems, I would power down and unplug both of them. After you get your system running you can reconnect them and you will know they are not set to the primary drive.

If you could get a picture of Disk Management in Windows 7 using the snipping tool, it might help.
 
Thanks for that. Well, the next interesting revelation is that I have discovered that the disk that shows up as "active" in XP doesn't even show up at all in Win7! To Win7 apparently it does not even exist!

And BTW that means I was incorrect in my last post: I said "that disk that was active won't open up", but the disk that won't open up is actually yet another disk that's not being treated properly by Win7.

Something screwey is definitely up here.
 
Last edited:
So you can boot directly into Windows 7 with no DVD in the drive? If so, you should be able to run EasyBCD.

When you are in Windows 7, open and administrative command prompt and type bcdedit It should look like the earlier attachment.
 
Last edited:
I can boot into Win7, but only with the XP or Win7 DVD inserted into the DVD drive. And once in Win7 I can open up EasyBCD. This is what I have set up in EasyBCD:

Default: Windows 7
Timeout: 30 seconds
EasyBCD Boot Device: C:\
Entry #1
Name: Windows 7
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
Entry #2
Name: Microsoft Windows XP
BCD ID: {a5486e90-dd7f-11e0-b9ac-882bde28cd84}
Drive: C:\
Bootloader Path: \NST\ntldr

But this setup still does not boot XP properly. I read somewhere that I was supposed to go to Edit Legacy Entries in order to properly make a boot entry for XP, but when I go to Edit Legacy Entries I get this:

"Boot.ini is located on the hidden boot partition and cannot be loaded for user editing by EasyBCD

Please either assign a drive letter to the hidden boot partition or use the Windows XP dual-boot-auto-configuration feature instead."

Now-here's where things really get interesting: I went to Disk Management to see if I could locate that disk that is not showing up in Computer, and there it is. It is marked as "(System, Active, Primary Partition)", and it does not have a drive letter. Is it that somehow Win7 is confusing this disk (called "Disk 1") with some sort of bootable disk? If so I'd like your recommendation on which letter to use. Thus far I have Win7 as C, OWC (the disk that, for whatever reason, I cannot open) as D, XP as E, Music (an audio disk) as F, and the DVD player as G.

So what would you suggest?

 
Last edited:
Just tried to go to bcdedit. "The command prompt answered back: The boot configuration data store could not be opened. Access is denied."
 
Windows 7 will use an unlettered partition as its system partition. If you want to try to add a letter, use something like S:

Remove it when you are done.

The boot.ini for XP has to point to the System or active partition, but EasyBCD may have a trick to get around it.

You still need to get around having the DVD installed. The system is actually booting to it...

You need to run BCDedit in an Administrative command prompt. Start Command Prompt as administrator.
 
Last edited:
Well, I just assigned S to the previously hidden disk, then it magically showed up, and Voila: there are an awful lot of folders and files on there with the word "boot" in it. There is a Boot folder, Boot.BAK, an actual Boot.ini, a Boot.ini.saved, a bootmgr, a BOOTSECT.BAK, a CONFIG.SYS, and an NTDETECT, a System Volume Information, a RECYCLER, and an ntldr. And, in opening up the Boot folder, the folders that are inside look very much to be Win7 folders-not XP.

So this is sounding pretty much like somehow, and for some reason, my system is incorrectly treating this disk as some sort of rogue System Disk, right?

So I want to get rid of all these files/folders, correct?
 
Last edited:
OK-another big development: since adding the S to the previously hidden disk, I went to EasyBCD and once again chose Edit Legacy Entries. Up came a boot.ini-the very same boot.ini that comes up whenever I am trying to boot up my system without any disk inserted into my DVD drive (and this is the only way that I can return to XP.) Here is the boot.ini:

[boot loader]
timeout=15
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP on E:\" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Win7" /fastdetect

Whenever I choose "Windows XP on E:\" I successfully boot into XP. If I were to choose "Win7", then I'd get the whole message about ntoskrnl.ex.

It's starting to seem obvioius now, but I'll ask you anyway, for a more experienced opinion (because I've treated my boot.ini file, and general booting issues more cavalierly in the past, and as a result completely locked myself out of my system):What do you think?
 
Sounds normal. You still need to get away from the DVD during boot, but try running EasyBCD now and it will be able to access the system partition. When it finishes, remove the letter and try rebooting without the DVD and let us know what happens.

If you have extra files in that folder, we can remove them later.

Windows 7 should not be in the boot.ini...it is not used. All it might show is the XP install, but EasyBCD should edit that for you. If it doesn't look right, remove the entry and redo it.

And just in case, do not remove any files.

Also just in case. When you boot your system, you should get a boot menu. From there you can select Windows 7 or XP. It sounds like you are booting into an XP boot menu, which would not be correct.
 
Last edited:
Back
Top