Windows Boot Files - bootmgr and BCD
How they do their job of finding the Windows bootloader winload.exe
In versions of the Windows NT operating system up to XP (legacy Windows) the three main boot files on a common PC are ntldr, Ntdetect.com and boot.ini and all three are in the root of the active primary partition of the boot hard drive - the System partition. In new Windows these three files are replaced with bootmgr, BCD and winload.exe, but only bootmgr and BCD stay in the root of the System partition and winload.exe now resides in the Windows/system32 folder of the Boot partition, (the System and Boot partitions can often be the same). The BCD file (Boot Configuration Data) has replaced the boot.ini file. The bootmanager function that was a part of ntldr is now carried out by bootmgr. The other functions of ntldr and those of Ntdetect.com of setting up the correct environment for Windows are now both carried out by winload.exe. From this point onwards the boot process remains the same with the bootloaders (ntldr or winload) starting the operating system by loading ntoskrnl.exe, hal.dll and the System registry hive from the Windows/System32 directory.
Inside the BCD file, (or BCD store) each bootable item is in its own little container (Object) and these Objects will hold details of the disk signature of the hard drive and the offset of the partition where an item is located. Each boot Object is tagged with an alpha/numeric number called a GUID number and when bootmgr is asked to start something it finds the correct Object by its GUID number and then reads the disk signature and partition offset information that is contained in that Object. The bootmgr program then scans all the connected hard drives until it finds the one with the signature it wants, then jumps straight to the desired sector on that drive. The BIOS is not consulted to find the hard drive because bootmgr is not looking for a physical number of a drive but just scanning all drives for a specific disk signature. The partition table on the drive does not have to be consulted to find the partition because bootmgr has been given its offset and so already knows its exact starting position on the drive.
It is possible to manually update the BCD with new information, or to replace an incorrect disk signature, or to move a partition's offset, but they are all more involved than the minor edit of the boot.ini text file that would have done the job in legacy Windows. For very simple and native Microsoft configurations there is the Windows automatic Start-up Repair feature which may be able to update a BCD for you. There are also a couple of apps that can make life easier, and there is even a great workaround for the more experienced and adventurous multibooters, so for most people there is a workable solution to the problem. To learn more on this and for links to the various solutions, we suggest you begin here.....The Windows Hard Drive Disk Signature
BCDEdit - Command-Line Options
BCD file is missing required information
Use Bootrec.exe tool to repair startup issues
BCDEdit Commands for Boot Environment
Fixing a Windows Disk Signature Problem
Guide to the Boot Sequence
Update and Re-specialize a BCD
Generalize the Windows BCD Store
Visual BCD Editor