Dual Boot Windows Vista and Windows Server 2008

After researching how to enable Aero on the Windows Server 2008 desktop (see previous blog post) I proceeded to install Windows Server 2008 onto the third hard drive within a desktop computer that currently has Windows Vista running on the first two disks within a RAID configuration.

Windows Server 2008 installed without an issue however upon rebooting, once the installation was complete, there was no boot menu. Of course, Microsoft had removed the boot.ini file that users of previous versions of Windows were so familiar with and replaced it with the Windows Vista Boot Configuration Data (BCD) store. Windows Server 2008 also uses the same BCD store and the installation does not enumerate your disks to add boot entries for other operating systems found, which previous versions of the Windows setup would do automatically.

Although there are several utilities with nice user interfaces available to help you edit the BCD store, I decided that I would learn how to use the bcdedit.exe command line utility that Microsoft provides for this purpose.

Using bcdedit.exe /enum to enumerate through the current entries within the BCD store you'll see something like the following:

Windows Boot Manager
--------------------
identifier         {bootmgr}
device             partition=C:
description        Windows Boot Manager
locale             en-US
inherit            {globalsettings}
default            {current}
displayorder       {current}
toolsdisplayorder  {memdiag}
timeout            30


Windows Boot Loader
-------------------
identifier         {current}
device             partition=C:
path               \Windows\system32\winload.exe
description        Microsoft Windows Server 2008
locale             en-US
inherit            {bootloadersettings}
osdevice           partition=C:
systemroot         \Windows
resumeobject       {6d3956ce-e199-11dc-8c11-c156da9e35f2}
nx                 OptOut

To enable the computer to also boot Windows Vista you again use bcdedit.exe with the following command which will copy the current Windows Boot Loader details for Windows Server 2008 to Windows Vista.

bcdedit.exe /copy {current} /d "Microsoft Windows Vista"

bcdedit.exe will respond with something like the following.

The entry was successfully copied to {8677dee0-e502-11dc-9f96-001e4cde5025}.

Using bcdedit.exe /enum to again enumerate through the current entries within the BCD store you'll see the newly added entry:

Windows Boot Manager
--------------------
identifier         {bootmgr}
device             partition=C:
description        Windows Boot Manager
locale             en-US
inherit            {globalsettings}
default            {current}
displayorder       {current}
toolsdisplayorder  {memdiag}
timeout            30


Windows Boot Loader
-------------------
identifier         {current}
device             partition=C:
path               \Windows\system32\winload.exe
description        Microsoft Windows Server 2008
locale             en-US
inherit            {bootloadersettings}
osdevice           partition=C:
systemroot         \Windows
resumeobject       {6d3956ce-e199-11dc-8c11-c156da9e35f2}
nx                 OptOut
Windows Boot Loader
-------------------
identifier         {8677dee0-e502-11dc-9f96-001e4cde5025}.
device             partition=C:
path               \Windows\system32\winload.exe
description        Microsoft Windows Vista
locale             en-US
inherit            {bootloadersettings}
osdevice           partition=C:
systemroot         \Windows
resumeobject       {6d3956ce-e199-11dc-8c11-c156da9e35f2}
nx                 OptOut

Before you can use the newly created Windows boot loader configuration, you'll need to change the partition for Windows Vista using the following two bcdedit.exe commands.

bcdedit.exe /set {8677dee0-e502-11dc-9f96-001e4cde5025} device partition=D:


bcdedit.exe /set {8677dee0-e502-11dc-9f96-001e4cde5025} osdevice partition=D:

If you now reboot the system you should now be able to boot into either Windows Server 2008 or Windows Vista.
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione