Windows Vista Boot Process Overview

Friday, January 2, 2009
The Microsoft 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 help 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 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.
Configuration Tools
The BCD store can be modified or repaired using several tools:
System Properties in Control Panel
SystemPropertiesAdvanced.exe
Msconfig
Windows Recovery Environment (WinRE) Startup Repair
Bcdedit.exe
Bootrec.exe
Most of these tools enable you to perform simple tasks, such as setting a boot menu timeout, setting a default operating system, or configuring boot options such as /SOS and /SAFEBOOT. Others are repair-oriented tools; Startup Repair and Bootrec.exe, in particular, provide automated mechanisms for fixing problems in the BCD.
Bcdedit.exe is the main tool for detailed BCD store modifications. You can use Bcdedit to change Bootmgr options; add boot, delete, and edit boot entries; import and export the BCD store; and create a new store if it becomes significantly damaged. Bcdedit.exe is located in the WindowsSystem32 directory of the Windows Vista partition and is also available in WinRE.
BCD Store Location
The BCD store is a registry hive, stored as BootBCD on the active partition. This hive is loaded but hidden from view in Regedit.exe within Windows Vista. The store is loaded to the following registry location: HKLMBCD00000000.
You can also view the store manually in WinRE by loading the hive from the Boot folder. To obtain a copy of the hive on a running system, use the Bcdedit /export filename command to export a hive file for offline examination. This command exports the BCD store to a file called filename in the current directory.
Related Components
Msconfig
Msconfig is the preferred PSS UI tool for managing boot settings. The tool supports BCD and allows the user to enumerate all BCD objects in the system store. It allows certain elements to be altered for each OS object, including debug settings, safe mode settings, and other popular PSS options. It cannot be used with the WinRE console; Bcdedit needs to be used in these cases.
Bcdedit.exe
Bcdedit.exe is a command line tool that can be used to manage BCD settings. In summary, Bcdedit.exe is a replacement for Bootcfg.exe. However, it is enhanced for better scripting and to expose some of the more powerful features of BCD that bootcfg.exe did not expose for manipulating Boot.ini. Bcdedit.exe is designed to work on previous operating systems and in recovery environments.

0 comments: