Things I've discovered so far (possibly inaccurate):
boot.imgin the first sector (MBR) of a disk.
core.imgin the post-MBR gap.
boot.imgis loaded by BIOS and then loads
core.imgand transfers control to it.
But in the next step, how does
core.img find the
/boot partition? There may be multiple partitions on a disk so how does the core image correctly identify which is
/boot? Is that hardcoded in the core image or does it do a search every time?
Additional research reveals there is a
--boot-directory option in
grub-install which lets you choose where to install GRUB. But the core image still has to find this partition at boot time. Again it needs some form of identifier. Is that a label, a UUID, or anything else?