Boot Process and BCDEdit

To address the increasing diversity and complexity of modern firmware and hardware, the Windows Server® 2008 operating system uses a completely reengineered boot environment.

The new boot environment supports both BIOS and Unified Extended Firmware Interface (UEFI) firmware models. It uses a new data store for boot configuration data (the BCD store) that replaces Boot.ini and provides new boot applications that replace the previous Windows® loader (Ntldr.exe), including a new Windows boot manager and Windows boot loader.

What does the boot process do?

When a computer is turned on, it must perform a variety of tasks before it is ready to start running applications. To accomplish these tasks, the computer runs startup software that resides in the firmware. This software (a "boot loader") locates and initializes the operating system kernel and prepares access to hardware devices before the operating system is ready to start running applications. The boot loader is typically independent of a specific operating system, but it can locate the code to start the next step, which is the operating system–specific phase of system startup. The boot loader and related boot configuration information is often stored in system files that are separate from the operating system, application programs, and user data.

Who will be interested in this feature?

  • System administrators

  • IT administrators

  • System-level developers

  • Anyone who might want to change the boot configuration (including options related to enabling kernel-level debugging, remote server console, and multiple boot configurations)

Are there any special considerations?

You must have administrative rights to change the boot configuration for Windows. To change the boot configuration, start the boot configuration application BCDEdit.exe from a command prompt with administrative rights. Be aware that changing the boot configuration can make the system unable to start. To avoid problems with this, make a backup copy of the current boot configuration ahead of time by using the bcdedit /export save-bcd command.

What new functionality does this feature provide?

The Windows Server 2008 boot environment includes the following new features:

  • Support for both BIOS and UEFI firmware

  • New boot applications

  • New data store that replaces Boot.ini

Support for both BIOS and UEFI firmware

UEFI is the next generation of firmware architecture that is designed to replace the BIOS architecture. The new Windows boot environment is designed for both BIOS and UEFI and uses a common data store that can exchange boot configuration information between the firmware, the boot loader, and boot applications.

New boot applications

The functionality that was previously combined in Ntldr.exe is now separated into multiple applications:

  • Windows Boot Manager (Bootmgr.exe or Bootmgr.efi). This application is independent of the operating system and uses the firmware to load the Windows boot loader either from a particular disk partition or over a network connection (in the case of network boot).

  • Windows Boot Loader (Winload.exe or Winload.efi). This application is part of the operating system and loads a specific version of Windows. It uses the firmware to load the operating system kernel and to boot critical device drivers from a local hard disk.

  • Windows Resume (Winresume.exe or Winresume.efi). Windows Resume finds a hibernation image and then uses the firmware to read the hibernation file into RAM and to resume the operating system from the hibernation state.

The Windows boot environment also includes the Windows Memory Tester (Memdiag.exe or Memdiag.efi). You can start this diagnostic tool from the boot manager to verify that RAM is working correctly.

New data store that replaces Boot.ini

The Boot Configuration Data (BCD) store replaces the text-based Boot.ini file. In the BCD store, the Windows boot manager, the Windows boot loader, and other boot applications are represented as program objects (GUIDs) instead of text items. A new tool, BCDEdit.exe, enables you to use basic and extended commands to modify these objects in order to control all aspects of the boot process. Although the data store represents each object with a GUID, some objects have alias names for common use, such as {bootmgr} (which refers to boot manager) and {default} (which refers to the default Windows boot loader). Applications can modify boot configuration data by using a new BCD Windows Management Instrumentation (WMI) provider.

You can use the standard system application Msconfig.exe to provide a graphical interface for viewing and modifying a subset of the boot configuration settings. You must run Msconfig.exe with administrative rights.

Do I need to change any existing code to work with Windows Server 2008?

If you have used any deployment application tools designed for Windows XP or Windows Server 2003 that modify Boot.ini in order to configure boot options such as enabling kernel debugging or remote console, you must update the tools to use BCDEdit.exe or the BCD WMI provider before you can use them to deploy Windows Server 2008 or Windows Vista®.

Additional resources