This article needs additional citations for
verification. (May 2010) |
Other names | BOOTMGR |
---|---|
Developer(s) | Microsoft |
Operating system | Windows |
Predecessor | NTLDR |
Type | Bootloader |
License | Proprietary |
The Windows Boot Manager (BOOTMGR
) 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.
[1] It replaced the
NTLDR present in older versions of Windows.
The
boot sector or UEFI loads the Windows Boot Manager (a file named BOOTMGR
on
either the system or the boot partition), accesses the Boot Configuration Data store and uses the information to load the
operating system through winload.exe
or winresume.exe
.
[2]
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 (the MBR is only 512 bytes), then executes the
VBR boot code of an active partition. The VBR boot code tries to find and execute the bootmgr
file from an active partition.
[3]
On systems with
UEFI firmware, UEFI invokes bootmgfw.efi
from an
EFI system partition at startup, starting the Windows Boot Manager.
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 boot.ini.
These menu entries can include:
The operating system is loaded by individual boot loaders for each install of Windows, called the Windows Boot Loader.
The Windows Boot Manager invokes winload.exe
—the operating system
boot loader—to load the operating system kernel executive (
ntoskrnl.exe) 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
.
If the computer has recently
hibernated, then bootmgr
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
.
[4]
Boot Configuration Data (BCD) is a firmware-independent database for boot-time configuration data. [5] It is used by Microsoft's Windows Boot Manager and replaces the boot.ini that was used by NTLDR.
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 HKEY_LOCAL_MACHINE\BCD00000
[6] (with restricted permissions
[7]). 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.
[8]
Boot Configuration Data may be altered using a command-line tool (bcdedit.exe), using the Registry Editor [6] (regedit.exe), using Windows Management Instrumentation, or with third-party tools such as EasyBCD, BOOTICE, [9] or Visual BCD Editor. [10]
Boot Configuration Data allows for third-party integration, so anyone can implement tools like diagnostics or recovery options