Windows Vista Boot Process Overview

The Windows Vista” boot process differs from Windows® XP in the way the operating system is located and initialized. Start-up begins with the BIOS loading the Master Boot Record (MBR) on the bootable disk. The MBR in turn loads the Partition Boot Record (PBR) on the active partition. So far, Windows Vista remains relatively unchanged.

Windows Vista is different from XP starting by the fact the PBR code written by Windows Vista no longer looks for Ntldr. The new boot loader in Windows Vista is Bootmgr. This component loads the Boot Configuration Database (BCD), which in turn loads an OS loader boot application (Winload.exe, in the case of Windows Vista). Finally, the OS loader application is responsible for initializing the kernel. This process is illustrated below.

You can think of this change in two elements:

1. The two key actions performed by Ntldr in previous Windows versions have been divided between two components:

2. Bootmgr reads the boot configuration, including device and path locations.

WindowsSystem32Winload.exe initializes the kernel.

The boot configuration stored by Boot.ini in previous Windows download windows loader versions is now stored in an extensible database, BootBCD, the Boot Configuration Database (BCD).

These changes are significant because of the impact they have:

The boot process can be extended to support other applications, such as other operating systems or other versions of the OS.

Only nonversion-specific components are stored in the root of the active partition. This means that theoretically Windows Vista could be installed on a machine running some future Windows version with the same boot structure, and it would not break the boot process for that future version. With legacy Windows, installing an older Windows version last causes the newer version to fail on start-up. This is due to version-specific code improvements in Ntldr.

Tool-oriented boot entries can be supported to offer maintenance options on boot when a previous start-up failed. In the past, Windows supported an menu provided by a target operating system. This new structure can make tools available earlier during the boot process, meaning that they are available even if all OS-specific boot entries are damaged. The Windows Memory Diagnostic tool is provided in the boot menu in this way.

BCD Store

The Boot Configuration Data (BCD) store contains boot configuration parameters and controls how the operating system is started in Microsoft Windows Vista operating system. These parameters were previously in the Boot.ini file in BIOS-based operating systems or in the nonvolatile RAM (NVRAM) entries in Extensible Firmware Interface-based operating systems. You can use the Bcdedit.exe command line tool to affect the Windows code which runs in the pre-operating system environment by adding, deleting, editing, and appending entries in the BCD store. Bcdedit.exe is located in the WindowsSystem32 directory of the Windows Vista partition.

The BCD is a database used by Bootmgr. It contains the functions of Boot.ini and is located in the {ActivePartition}boot folder

Bcdedit.exe

You can use Bcdedit.exe to modify the Windows code which runs in the pre-operating system environment by adding, deleting, editing, and appending entries in the BCD store. Bcdedit.exe is located in the WindowsSystem32 directory of the Windows Vista partition.

Boot.ini Compared to BCD

BCD eliminates the need for Boot.ini in Windows Vista, although Boot.ini is still present on dual-boot systems for backwards compatibility. Because the BCD boots to the boot environment first instead of Ntldr, the location of Ntldr is not verified unless a legacy operating system is chosen.