Friday, February 27, 2009

XP Vista Dual Boot System "/ntldr missing or corrupt" fix

Problem:
In dual boot XP and Vista system after you run vista recovery process you can boot into Vista partition but not in XP. When you select "Earlier version of Windows", you get message essentially telling you /ntldr was "missing or corrupt"

Cause:
This is common problem when you create image of dual boot system's XP and Vista partition and try to put image back on different hard drive with different partition structure. When you run vista Recovery Process, it correctly identifies vista boot partition but it does not create correct entry for XP partition in boot manager.

Solution:
1: Boot up Windows Vista, and navigate to Start -> All Programs -> Accessories

2: Right-click on Command Prompt and select Run as Adminstrator

3: Either enter your password if needed or just press continue. The new window should be titled "Administrator: Command Prompt"

4: In the command prompt, type

bcdedit /enum active
press Enter

Locate the sections titled "Windows Legacy OS Loader". Note the identifier (all of them if there is more than one matching section); my identifier was {ntldr}. If the problem is the same as mine, the device property should be currently set to unknown.

5: Type following command for each entry replace (ID) with identifier in my case {ntldr}

bcdedit /set (ID) device boot
press Enter

By default, Vista does not change which partition boots, so if your XP partition is set as active, it will add the new booting code to that. Therefore assuming your XP partition is set as the active (boot) partition, the above command will be correct. Apply the above command for each identifier, replacing (ID) with the identifier itself, including the curly braces, e.g. bcdedit /set {ntldr} device boot. Press Enter after each one - it should report that the operation was completed successfully.

Rerun the command in step 2 to check that the changes were applied correctly.
That should fix the problem. When the device was set to unknown, the boot manager didn't know what to do to boot that partition, hence the message.

Microsoft has put up a handy reference for bcdedit too: http://technet2.microsoft.com/WindowsVista/en/library/85cd5efe-c349-427c-b035-c2719d4af7781033.mspx?mfr=true

If you discover that there is no "Earlier Version of Windows" option in your boot manager at all, try these instructions (also repeated on the above Microsoft site): http://www.nukeation.net/2006/07/05/5456+Update+2++XP+Goes+Missing+After+Installing+Vista.aspx


...

1 comment:

  1. Its good for learning your extra ordinary and valuable article about a major issue /ntldr missing in windows vista when your booting your system. I've read your tips and key points it just nice and useful for Windows vista.
    http://www.diskdoctors.net/

    ReplyDelete