Editing Windows bootloader menu after installing XP and 7

I've just installed a dual-boot Windows XP and Windows 7 PC for my sins.  I first installed XP and then 7.  I then wanted to update the bootloader because by default it showed the following entries:

  • Earlier Version of Windows
  • Windows 7
  • Windows 7

The three issues here for me are:

  1. The Windows XP install is cryptically labelled Earlier Version of Windows: I need to rename it.
  2. There are two Windows 7 entries (dunno why exactly): I want to delete it.
  3. The middle Windows 7 option is the default: I want the first option for XP to be the default.

Booting up W7, I find that the good old file boot.ini no longer exists, and neither does that little old editor sysedit.exe.  Instead there's a new command line utility called bcdedit. 

Run it by going to the start menu and getting up a command prompt as the superuser by entering cmd and hitting ctrl+shift+enter.

Now have a look at the documentation for the command or try bcdedit /help from the command line.

Here's what I did.  First to get a list of the current entries:

C:\Windows\system32>bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {9ac3d560-c44c-11e0-b1a5-de022908fc88}
displayorder            {ntldr}
                        {current}
                        {95352bad-ba74-11e0-ba5f-f04da2f06aa7}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Legacy OS Loader
------------------------
identifier              {ntldr}
device                  partition=\Device\HarddiskVolume2
path                    \ntldr
description             Earlier Version of Windows

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {9ac3d562-c44c-11e0-b1a5-de022908fc88}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {9ac3d560-c44c-11e0-b1a5-de022908fc88}
nx                      OptIn

Windows Boot Loader
-------------------
identifier              {95352bad-ba74-11e0-ba5f-f04da2f06aa7}
device                  unknown
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-us
inherit                 {bootloadersettings}
recoverysequence        {95352bae-ba74-11e0-ba5f-f04da2f06aa7}
recoveryenabled         Yes
osdevice                unknown
systemroot              \Windows
resumeobject            {95352bac-ba74-11e0-ba5f-f04da2f06aa7}
nx                      OptIn

I looked through it and took note of the two entries I want to do something with.  The important thing here is the identifier. 

First I'll delete the unwanted third (duplicated Windows 7) option:

C:\Windows\system32>bcdedit /delete {95352bad-ba74-11e0-ba5f-f04da2f06aa7}
The operation completed successfully.

Next I'll rename the first entry that has Windows XP on it:

C:\Windows\system32>bcdedit /set {ntldr} description "Windows XP"
The operation completed successfully.

And finally, I'll set this to be the default option:

C:\Windows\system32>bcdedit /default {ntldr}
The operation completed successfully.

That's it.  Be careful with this command, because deleting the wrong entry or screwing up an entry could render your Windows partiton unbootable (which wouldn't be a bad thing, because then you could install a proper operating system ;-) ).