I have at least 2 OSs on every machine I own except the laptop.
I usually have a 100 meg partition that I use for /boot that is mounted by all OSs (except Windows, of course). All distros put their kernels there, and you can have 1 grub.conf that is shared.
I use 1 root partition per distro, 1 /boot and 1 shared swap partition.
My grub.conf looks something like:
Code: Select all
default=0
timeout=7
splashimage=(hd1,1)/grub/splash.xpm.gz
title Fedora Core 3 (2.6.11-1.27_FC3)
root (hd1,1)
kernel /vmlinuz-2.6.11-1.27_FC3 ro root=/dev/hda3
initrd /initrd-2.6.11-1.27_FC3.img
title OpensusE 19 (2.8.91-1.2034_OS19)
root (hd1,1)
kernel /vmlinuz-2.8.91-1.2034_OS19 ro root=/dev/hdb2
initrd /initrd-2.8.91-1.2034_OS19.img
title WinXP
rootnoverify (hd0,0)
chainloader +1
Note that my root() line is the same between the 2 Linux distros because they use the same boot partition (hd1,1 = /dev/hdb2 = /boot).
The root partitions are specified on the kernel lines (Fedora Core 3 is on /dev/hda3, OpensusE 19 is on /dev/hdb2). Grub doesn't care where the root partitions are, it just loads the kernel, and the kernel mounts the root partition.
This is just one way of doing it. Grub is installed in the MBR.