A hard look at Windows Vista

10.11.2006

For quite some time now, Windows has been able to automatically configure multiple-boot options automatically when you install successive versions of the operating system into new volumes on a single computer. So you might conceivably install Windows 98 on drive C:, Windows 2000 on drive D:, and Windows XP on drive E:. When you do that, a character-based menu opens up at boot time that lets you choose which operating system you want to run. There's also a settings tool in these versions of Windows that lets you choose the default OS to boot and some other mostly cosmetic controls for the boot menu.

Prior to Vista, this boot information was stored in a simple text file called boot.ini. Vista changes all that. Although the end result works the same way, Windows Vista stores boot information in a more secure Boot Configuration Data (BCD) store, which better supports Extensible Firmware Interface (EFI) system setup data. For more detailed technical information about BCD, see Microsoft's Boot Configuration Data Editor Frequently Asked Questions.)

Within System properties in Vista, on the Startup and Recovery dialog box (just like XP and some previous versions of Windows), there are basic controls for selecting the default operating system. But it's important to note that the Vista BCD supersedes XP's Bootmgr and boot.ini file. You can't control the way Vista boots from boot.ini. If, for example, you set Windows XP to boot to Vista by default, and then you delete your Windows Vista partition, you can wind up in a Catch-22 situation. Why? Because Vista stores the BCD data in a folder called "boot" installed into the root directory of your system drive. BCD will continue trying to load Vista, and it may or may not let you access XP or other earlier Windows installations at all.

So how do you edit BCD? There's a command-line utility in Vista called BCDEdit.exe that does this. BCD is a lot more powerful than XP's Bootmgr, so there are many other things you can do with it. But BCDEdit is difficult to figure out and use. And the rules that manage boot data in the BCD are more complex than you'd expect.

As part of the technical beta tester efforts, a free utility was developed called VistaBootPro, which provides a graphical interface for managing the BCD store. It's much easier to use than the command-line editor.