Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have had a triple-boot installation of Ubuntu-Windows 7-Windows 8. Once I decided that Windows 8 was the way to go and needed the space, I decided to delete the Windows 7 partition.

When I did it, I couldn't boot Windows 8, which meant the bootloader had been deleted. Installing the bootloader on the Windows 8 partition didn't solve it (it was on an extended partition, I am guessing why) so I decided to copy it to the partition where Windows 7 was installed.

After creating a custom grub entry (listed below) it then happily booted, but with a catch: it boot the EXTENDED partition. This meant I had an oversized boot partition where Windows 7 used to live, booting a Windows 8 partition with little space.

Now I want to completely remove the extended partition, but before doing it, I want to make sure I am able to boot the new partition. I have failed so far: tried rebuilding the BCD and fixbooting, even with the proper volume selected on diskpart, to no avail.

What am I doing wrong?

Grub entry:

menuentry "Windows 8 - Fixed Entry" {
    set root='(hd0,msdos2)'
    ntldr /bootmgr

EDIT: Okay, some new developments: turns out the rebuild bcd command did actually do something, which was to add a new boot entry to the NTLDR, which booted the proper partition.

Problem is this new partition didn't function properly, and upon inspecting event logs, I suspected the problems came from the fact that the system partition was now D:, and not C:.

When I tried changing the old partition's letter, however, everything broke: it seems that even by booting the OS in the right partition, everything inside pointed to the old one.

I didn't manage to change the new partition's volume letter to C:, however, so is that possible to do from the recovery console?

share|improve this question
up vote 1 down vote accepted

These instructions from Microsoft show how to correct the problem when Windows forgets what letter its own partition should have. While the link says they're applicable for Windows XP only, the instructions have been vetted to work with Windows Vista, 7, and 8.

Basically, Windows identifies partitions by an amalgamation of their physical disk's signature/id and the offset of the partition from the start of the disk. If you move a partition forward or backward, Windows will no longer be able to recognize that it's the same partition it was.

Even when you correctly point the BCD to the right partition, once Windows is loaded it may still assign itself a different letter because it's still waiting for the old partition address to appear again (the MountedDevices registry key contains the matching between physical partitions and logical drive letters). These instructions will correct that.

You can follow the same instructions from within a Windows-based recovery environment, but you'll need to mount the registry hives first (can be dangerous if you're not careful!).

share|improve this answer
A new, good, solid answer. Thanks! But they state not to use this when we want to "change a drive on a computer where the drive letter has not changed". Do they mean "don't do this if you don't have specified problem"? – ravemir Sep 30 '13 at 9:52
Yes, precisely. As in, only use these instructions to change the drive letter back. – Mahmoud Al-Qudsi Sep 30 '13 at 17:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .