Windows Server 2008 Multi-Boot Configurations

In a software testing scenario, it is common to have computers that can boot into several different operating systems so that you can test on different OS platforms without requiring multiple machines, each with a single OS. In general, you should always install multiple operating systems in order from oldest to newest. For example, on many machines I use, I have two physical hard drives. I install Windows XP first onto a first partition on the first hard drive, then I install Windows Server 2003 onto a second partition of the first drive and then I install Windows Server 2008 onto the second physical drive. To manage the boot sequence data for Windows XP and Windows Server 2003, I manually edit the boot.ini text file located on the first physical hard drive. But Windows Vista, Windows Server 2008, and above, use a different multi-boot management scheme. Boot information is stored into a boot configuration database (BCD). To edit this data you must use the bcdeedit.exe command line tool. To view existing configuration data, type the command:
> bcdedit.exe /enum ACTIVE
or simply bcdedit.exe without any arguments. To get general help, type /? and to get specific help with an argument, type:
> bcdedit.exe /? delete
for example to get detailed help about how to delete an unused configuration entry. I recently reinstalled Windows Server 2008 on a machine (because the secondary hard drive holding that OS failed). This created a duplicate "Windows Server 2008" entry in the boot menu displayed when the machine is first powered on. So I first viewed all entries to see their associated BCD IDs, and then deleted the duplicate entry along the lines of:
>bcdedit.exe /delete {12345678-abcd-12ab-a1b2-1234567890ab}
Then to get the legacy Windows OSes (XP and Server 2003) to boot as default rather than Server 2008, I entered the command:
> bcdedit.exe /default {ntldr}
All in all, it doesn’t take too long to get used to the new Boot Configuration Database and its command-line editor.
This entry was posted in Software Test Automation. Bookmark the permalink.