Windows Boot Manager
The Windows Boot Manager is the bootloader provided by Microsoft for Windows NT versions starting with Windows Vista and Windows Server 2008. It is the first program launched by the BIOS or UEFI of the computer and is responsible for loading the rest of Windows. It replaced the NTLDR present in older versions of Windows.
The boot sector or UEFI loads the Windows Boot Manager, accesses the Boot Configuration Data store and uses the information to load the operating system through
winload.exe or winresume.exe on BIOS systems, and winload.efi and winresume.efi on UEFI systems.Launching
On system with BIOS firmware, the BIOS invokes MBR boot code from a hard disk drive at startup. The MBR boot code and the VBR boot code are OS-specific. In Microsoft Windows, the MBR boot code tries to find an active partition, then executes the VBR boot code of an active partition. The VBR boot code tries to find and execute thebootmgr file from an active partition.On systems with UEFI firmware, UEFI invokes
bootmgfw.efi from an EFI system partition at startup, starting the Windows Boot Manager.Operation
Once launched the Windows Boot Manager reads the Boot Configuration Data to determine what operating systems are present and if it should present the user with a menu allowing them to select which operating system to boot. Before Windows Vista, this data was contained in.These menu entries can include:
- Options to boot Windows Vista and later by invoking winload.exe.
- Options to resume Windows Vista and later from hibernation by invoking winresume.exe.
- Options to boot a prior version of the Windows NT family by invoking its NTLDR.
- Options to load and to execute a volume boot record.
Operating system loading
winload.exe
The Windows Boot Manager invokeswinload.exe—the operating system boot loader—to load the operating system kernel executive and core device drivers. In that respect, winload.exe is functionally equivalent to the operating system loader function of NTLDR in prior versions of Windows NT. In UEFI systems, the file is called winload.efi and the file is always located at \windows\system32 or \windows\system32\boot. In addition, if Hyper-V is enabled, winload.exe or winload.efi will load hvix64.exe or hvax64.exe on x64 computer systems; later, ntoskrnl.exe is loaded.winresume.exe
If the computer has recently hibernated, thenbootmgr will instead invoke winresume.exe. In UEFI systems, the file is called winresume.efi and is always located at \windows\system32 or \windows\system32\boot.Boot Configuration Data
BCD is a file that is used to store the configuration of Microsoft's Windows Boot Manager. It is the equivalent of NTLDR's boot.ini or GNU GRUB's grub.cfg.For UEFI boot, the file is located at
/EFI/Microsoft/Boot/BCD on the EFI System Partition. For traditional BIOS boot, the file is at \boot\BCD on the active partition.Boot Configuration Data is stored in a data file that has the same format as Windows Registry hives and is eventually mounted at registry key .
Boot Configuration Data is a firmware-independent database for boot-time configuration data.
The BCD itself is encoded with UTF-16 encoding.
Several command-line tool to edit this file have been made available: bootrec, bcdboot and bcdedit.
bcdedit
Boot Configuration Data may be altered using a command-line tool, using the Registry Editor, using Windows Management Instrumentation, or with third-party tools such as EasyBCD, BOOTICE, or Visual BCD Editor.Boot Configuration Data allows for third-party integration, so anyone can implement tools such as diagnostics or recovery options.