Is it possible to use the Windows Boot Manager to chainload another Windows Boot Manager?
For example, (how) can I use a boot manager on C:\bootmgr that reads C:\boot\BCD to chainload another boot manager D:\bootmgr that uses D:\boot\BCD?
Is it possible to use the Windows Boot Manager to chainload another Windows Boot Manager?
For example, (how) can I use a boot manager on C:\bootmgr that reads C:\boot\BCD to chainload another boot manager D:\bootmgr that uses D:\boot\BCD?
BOOTMGR will look for the hive \boot\bcd on the partition it believes to be the active boot partition (usually the active partition on disk 0). On EFI machines, the EFI version of bootmgr will load \boot\bcd from the ESP (EFI System Partition) which is always FAT32 and usually around 100 MiB or so.
Your question is, however, very confusing. You state
that reads C:\boot\BCD to chainload another boot manager D:\bootmgr that uses D:\boot\BCD
But then say
Huh? I'm trying to avoid having two BCD stores if possible
In the example you give of what you're trying to achieve, aren't those two different BCD files on two different partitions?
So I'm not sure exactly what you're trying to do. If you're trying to make the legacy BOOTMGR load the same BCD database that the EFI BOOTMGR uses, yes, that would be possible. You'll need to modify the emulation bootrecord on your disk (the fake MBR that's used to stop machines that don't understand GPT from reinitializing disks and losing data) to indicate the presence of at least two partitions, being the ESP and the Windows partition, with the ESP marked as active.
That way, if a BIOS in legacy mode (or a BIOS that doesn't support UEFI) attempts to start your machine from a GPT disk with your modified emulation MBR, it'll see the ESP partition as a "regular" boot partition and load from it (via its bootsector, which you would need to make sure was correctly written with a tool like bootsect or bootrec) BOOTMGR which, in turn, would read the \boot\bcd on the self-same partition.
You want the first bootmgr to load a secondary bootmgr instead of loading one of the typical OS boot-loaders
"if it works" you should add the following entries to the first C:\boot\BCD
bcdedit /create /d "Chainloaded Bootmgr" /application BOOTSECTOR
bcdedit /set {ID} device partition=d:
bcdedit /set {ID} path \bootmgr
bcdedit /displayorder {ID} /addlast
this should create the menu entry "Chainloaded Bootmgr"; when triggered it should load the second bootmgr from D:
The method specified by user Pat worked for me. Unfortunately, the downloaded bootmgr used an old configuration file (BCD).
However, I found that grub4dos can automatically find and load bootmgr along the chain. To do this, you do not even need to specify a partition on the disk.
You will need BOOTICE, "grldr" from the grub4dos image, as well as EasyBCD/bcdtool/Visual BCD, or you can use the command line (Pat user method).
debug off
default 0
timeout 30
graphicsmode -1 640:800
title find bootmgrD
find --set-root /bootmgrD
chainloader /bootmgrD
You can use any name for bootmgr instead of bootmgrD. The name must be unique for each partiton
The question is not clear, however you may try the tool EasyBCD Download EasyBCD here! & VisualBCD Download VisualBCD here!
These tools help you to edit and modify the bootloaders.
Boot C:, starting bootmgr with specially configured BCD in C:\Boot.
One boot entry in this BCD should start another bootmgr on D:\ which loads the BCD on d:\Boot with different boot entries.
Correct?
To do that:
Get an image of the boot sector of D:\
dd if=/dev/sda2 of=bootsec_D.img bs=512 Count=1^mount /dev/sda2 /media/sda2cp bootsec_D.img /media/sda2umount /dev/sda2This bootsec_D.img can then be chainloaded with bootmgr the usual way.
For example, with Visual_BCD adding a new bootsector loader. Configure Partition and path properly.
Hope that helped.
It worked on my Computer, hopefully at yours, too.