I would love to know if is there any difference between the bootmgr.efi and bootmgfw.efi files?
Those files are located in the ESP partition in EFI/Microsoft/Boot.
4 Answers
So.. As you can probably guess from running bcdedit (in Windows) or efibootmgr (in Linux), bootmgfw.efi is the Windows UEFI bootloader, which will then load winload.efi and thus the remainder of the OS.
The fallback executable in \EFI\Boot\bootx64.efi also happen to be a copy of this one.
But there really seems to be next to no information about bootmgr.efi. After being tipped by its only mention on MSDN, I found out that once you rename it W8 Advanced Startup Options becomes bust (while the system can still normally boot).
And last but not least this suspect was confirmed by a hack briefly mentioning how indeed it would be chainloaded by the base bootloader when in need of Windows Setup or the Recovery and Preinstallation environments.
Also explaining why it's on the root of the install DVD media (though I'm still not sure how you could trigger this afterwards in Vista and 7)
- 1,172
From this link
bootmgr - the Windows boot manager on systems with BIOS firmware. This file will be loaded as part of the BIOS boot process - typically the boot device is set in the BIOS. Assuming the boot device is a hard disk type device then the Master Boot Record is loaded > the Active Partition is identified in the Partition Table > the Partition Boot Record (PBR) on the Active Partition is loaded > code in the PBR loads bootmgr > bootmgr loads the BCD file.
bootmgfw.efi - the Windows boot manager on systems with UEFI firmware. This file is loaded directly from the Windows Boot Manager entry in the Firmware Boot Menu stored in NVRAM. Typical boot process is Firmware Boot Manager > \EFI\Microsoft\boot\bootmgfw.efi on the EFI System Partition is loaded via the Windows Boot Manager entry > bootmgfw.efi loads the BCD file (path to BCD file - \EFI\Microsoft\boot\BCD).
- 254
Both binaries contain the Windows Boot Manager built for the EFI platform. The main difference is this:
$ file bootmgfw.efi bootmgr.efi
bootmgfw.efi: PE32+ executable (DLL) (EFI application) x86-64, for MS Windows, 6 sections
bootmgr.efi: PE32+ executable (Windows boot application) x86-64, for MS Windows, 6 sections
BOOTMGFW.EFI is a regular EFI application (subsystem ID 0xA, i.e. 10), which can be loaded directly by the EFI firmware (if configured to), from the EFI shell or from another generic EFI boot manager. It can receive a textual command line as configuration (although it is also known to smuggle binary data through that command-line string), where it can be passed, among other things, BCDOBJECT={GUID}, which determines the GUID of the BCD store object to read boot manager options from, instead of the default {9dea862c-5cdd-4e70-acc1-f32b344d4795}, known in bcdedit as {bootmgr}.
BOOTMGR.EFI is an executable loaded using Microsoft’s proprietary boot application loading protocol (subsystem ID 0x10, i.e. 16), where it can receive a binary structure of entry arguments. Other examples of applications like this are WINLOAD.EFI and MEMTEST.EFI, and just like those, it can be chainloaded from another copy of the Windows Boot Manager, which will pass it an option list from the application’s corresponding BCD object. Only Microsoft has complete knowledge of this loading protocol (there is no public documentation of it), though it has been partially reverse-engineered by ReactOS (see their bl.h header) and by the wimboot project (see bootapp.h). Typically, BOOTMGR.EFI is loaded by CDBOOT.EFI – a regular EFI application located at \EFI\BOOT\BOOTX64.EFI on the EFI System Partition embedded on bootable Windows optical discs (e.g. the installation DVD or a Windows Rescue Disc) – after prompted to do so by a key press from the user.
The two binaries otherwise seem to be functionally identical (in fact, the VERSIONINFO resources of each from the same Windows build will be) – they are simply different builds of the same Windows Boot Manager, using different loading protocols.
- 380
Bootmgr.efi is used during the DVD booting process: you burn efisys.bin into your DVD boot sector and you boot, the computer searches for bootmgr.efi in the root of your DVD.
Bootmgfw.efi is used during other types of UEFI booting, including PXE.
- 49,799