FYI, I found the grub manual that came with the EOS installation. Below is copy of the page explaining grub’s multiboot suggestion.
This is the most difficult method I have come across. Wondering when it was last updated.
6.4 Multi-boot manual config
Currently autogenerating config files for multi-boot environments depends on os-prober and has several shortcomings. Due to that it is disabled by default. It is advised to use the power of GRUB syntax and do it yourself. A possible configuration is detailed here, feel free to adjust to your needs.
First create a separate GRUB partition, big enough to hold GRUB. Some of the following entries show how to load OS installer images from this same partition, for that you obviously need to make the partition large enough to hold those images as well. Mount this partition on/mnt/boot and disable GRUB in all OSes and manually install self-compiled latest GRUB with:
grub-install --boot-directory=/mnt/boot /dev/sda
In all the OSes install GRUB tools but disable installing GRUB in bootsector, so you’ll have menu.lst and grub.cfg available for use. Also disable os-prober use by setting:
GRUB_DISABLE_OS_PROBER=true
in /etc/default/grub
Then write a grub.cfg (/mnt/boot/grub/grub.cfg):
menuentry "OS using grub2" {
insmod xfs
search --set=root --label OS1 --hint hd0,msdos8
configfile /boot/grub/grub.cfg
}
menuentry "OS using grub2-legacy" {
insmod ext2
search --set=root --label OS2 --hint hd0,msdos6
legacy_configfile /boot/grub/menu.lst
}
menuentry "Windows XP" {
insmod ntfs
search --set=root --label WINDOWS_XP --hint hd0,msdos1
ntldr /ntldr
}
menuentry "Windows 7" {
insmod ntfs
search --set=root --label WINDOWS_7 --hint hd0,msdos2
ntldr /bootmgr
}
menuentry "FreeBSD" {
insmod zfs
search --set=root --label freepool --hint hd0,msdos7
kfreebsd /freebsd@/boot/kernel/kernel
kfreebsd_module_elf /freebsd@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /freebsd@/boot/kernel/zfs.ko
kfreebsd_module /freebsd@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
set kFreeBSD.vfs.root.mountfrom=zfs:freepool/freebsd
set kFreeBSD.hw.psm.synaptics_support=1
}
menuentry "experimental GRUB" {
search --set=root --label GRUB --hint hd0,msdos5
multiboot /experimental/grub/i386-pc/core.img
}
menuentry "Fedora 16 installer" {
search --set=root --label GRUB --hint hd0,msdos5
linux /fedora/vmlinuz lang=en_US keymap=sg resolution=1280x800
initrd /fedora/initrd.img
}
menuentry "Fedora rawhide installer" {
search --set=root --label GRUB --hint hd0,msdos5
linux /fedora/vmlinuz repo=ftp://mirror.switch.ch/mirror/fedora/linux/development/rawhide/x86_64 lang=en_US keymap=sg resolution=1280x800
initrd /fedora/initrd.img
}
menuentry "Debian sid installer" {
search --set=root --label GRUB --hint hd0,msdos5
linux /debian/dists/sid/main/installer-amd64/current/images/hd-media/vmlinuz
initrd /debian/dists/sid/main/installer-amd64/current/images/hd-media/initrd.gz
}
Notes:
Argument to search after –label is FS LABEL. You can also use UUIDs with –fs-uuid UUID instead of –label LABEL. You could also use direct root=hd0,msdosX but this is not recommended due to device name instability.
https://www.gnu.org/software/grub/manual/grub/grub.html#Multi_002dboot-manual-config