NTLDR is missing in Windows 7??

I have 3 physical hard drives, we'll call them A, B, and C. Hard Drive A has a partition for Windows 7, a NTFS partition for storage, a EXT3 (Linux), and swap (Linux). Hard Drive B has 1 NTFS for storage. Hard Drive C has 1 NTFS for storage. I am trying to replace Hard Drive B (with nothing related to Windows 7 on it) and when I try to boot into Windows with my new blank drive installed I get "NTLDR is missing." From what I've read NTLDR was only used up to Windows XP. The drive I am trying to remove isn't even associated with Windows 7 anyway. When I put Drive B back in everything works fine again. Any idea why I cant remove drive B even though it has nothing to do with the physical or logical drive containing Windows 7? Any help would be greatly appreciated!


Excellent Member
Microsoft Community Contributor
It would appear you system was set up to boot to an XP partition. A picture of your Disk Management setup might help see what is happening. You can attach a snipping tool picture if you like.

Until then, you might try changing the drive order in the bios to see if it helps or disconnect the other drives until you get Windows 7 running correctly. How it boots depends on how you set up the multiboot, and drive order, and active partitions.

Are you going to continue your dual boot?

boot order.jpg

Thanks for the quick reply! Above is my disk management (hopefully you can see it). Yes I am going to continue to dual boot. GRUB is still loading so even with the drive removed I can still get to Linux. The problem is when I select Windows 7 (which was previously working) it gives the error "NTLDR is missing." I tried editing my menu.lst file but the issue is that the NTLDR must actually be on the drive I'm trying to remove so it doesn't matter where I tell GRUB to look without that drive installed. Even If I point to the Windows 7 partition I get NTLDR is missing because it must be looking for it on the "Disk 1" (pictured above).


Excellent Member
Microsoft Community Contributor
The drive you are trying to remove has the system partition with the boot files. Check the root and see if things like bootmgr or a boot folder, and for XP ntldr or boot.ini. These are probably hidden and maybe even Hidden, System files so you need to see explorer to see those.

In order to remove the second drive, you can use Disk Management to make the C: partition active (D: is now) and then use an administrative command prompt to put the boot files there using bcdboot. For that partition to be seen first, the drive has to be first in the hard drive order in the bios.

Bcdboot c:\Windows /s C:

After you get Windows 7 running, you can use whatever you normally use, like EasyBCD to set up the dual boot.

I don't have a lot of experience with GRUB, so you probably know better than I about how to set it up. So alter the process as you see fit, just remember the drive order in the bios is important.

Thanks for the quick responses! I found that my C: didn't have anything in the boot folder. For some reason they were written to that other hard drive I was trying to remove I guess. I used my Windows 7 CD to get to a command prompt and ran bootsect.exe /nt60 all to create some boot files (not sure why but it put them on the E:). I then booted into Linux and manually moved the newly created boot files to C:\boot. Everything is working again! Thanks again for the help!

This website is not affiliated, owned, or endorsed by Microsoft Corporation. It is a member of the Microsoft Partner Program.