Hello,
I am trying to set up a machine with several Windows and Linux instances compartmentalized from each other, with Linux instances not sharing boot partition and instead each instance having a private copy of GRUB2 installed either in combined BOOT+ROOT partition for the instance or in per-instance separate BOOT partition.
Primary loader is WINLOAD/EasyBCD that displays a boot selection menu, loads EasyBCD-generated boot block for the entry (the block image is stored inside Windows folder C:\NST and is associated with corresponding WINLOAD menu entry in BCD database), which in turn loads GRUB2 from the target partition and transfers control to it.
(I am not quite sure whether EasyBCD-generated boot block image file is truly built by EasyBCD or is snatched off GRUB2 partition when BCD entry is being
defined by EasyBCD.)
However when GRUB2 comes up, it displays "grub.cfg" not from the partition selected in WINLOAD (i.e. GRUB2 load source), but from another GRUB2 partition.
According to EasyBCD developer, he could not figure out a way to let GRUB2 know which partition should be used for reading configuration files (i.e. initial root/prefix partition).
Can someone please explain:
1) exactly how GRUB2 selects initial partition for configuration files;
2) and if there is a way to control this from boot block (in this case, EasyBCD-supplied boot block)?
I have been able to track in source code that partition pointer information comes from "grub_boot_device" set in "grub-core/kern/i386/pc/startup.S" but was unable to track its flow further upstream.
Thanks for advise.
- Sergey