I like grub alot better as well, but lilo should work.
When I do a dual boot machine ... I pick a distro that uses grub by default and make it the PRIMARY distro on the machine. I create the following partitons for it:
hda1 - boot (100mb) <--can probably be a little less
hda2 - swap (1024mb) <-- can be 2xMemory, but I would't go more that 1gb no matter how much RAM I have
hda3 - root partition for PRIMARY Distro
hda4 - Extended partiton for the rest of the drive (all other partitions go in here)
------------
For the first distro (which I call PRIMARY) I make it's boot partiton seperate (and usually type ext3 and hda1), so I can mount hda1 when booted to other systems and make changes to it (like changing the default= line, so I can remotely reboot into the other OSs if I want).
I nomally do not make any partitions for the Secondary OSs except their ROOT partition. On the Secondary OSs, I create a root partiton, mount hda2 as the swap partition, and allow that OS to create it's /boot directory on it's root partition.
This keeps the Secondary OSes totally seperate and allows them to use the bootloader of their choice. When installing the secondary OS, have it set it's BootLoader to boot from it's ROOT partition and not the MBR.
So, here is my 4 OS setup on my Enterprise test machine:
CODE
[root@WhiteBoxLinux root]# fdisk -l
Disk /dev/sda: 73.4 GB, 73407868928 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 17 136521 83 Linux
/dev/sda2 18 148 1052257+ 82 Linux swap
/dev/sda3 149 2106 15727635 83 Linux
/dev/sda4 2107 8924 54765585 5 Extended
/dev/sda5 2107 3566 11727418+ 83 Linux
/dev/sda6 3567 5525 15735636 83 Linux
/dev/sda7 5526 6742 9775521 83 Linux
/dev/sda8 6743 8924 17526883+ 83 Linux
sda1 is /boot for Primary OS (WhiteBox Enterprise), sda2 is swap shared for all OSes, sda3 is actaully a Secondary OS (UserLinux from debian), because the installer I used was Debian Sarge beta2 and it had to install into a primary partiton (partitions 1-4). sda4 is the extended, sda5 is RHEL 3 AS, sda6 is WhiteBox Enterprise Linux, sda7 is a shared partiton for all OSs, and sda8 is CentOS 3.1.
Here is the grub.conf file for the Primary OS:
CODE
title White Box Enterprise Linux (2.4.21-9.0.1.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-9.0.1.ELsmp ro root=LABEL=/ vga=789 video=800x600
initrd /initrd-2.4.21-9.0.1.ELsmp.img
title Red Hat Enterprise Linux 3 AS
rootnoverify (hd0,4)
chainloader +1
title UserLinux
rootnoverify (hd0,2)
chainloader +1
title CentOS 3.1
rootnoverify (hd0,7)
chainloader +1
-------------------------------------------
I have the kind of setup on my other multi OS Test Box ... it has this for disk partitions:
CODE
Disk /dev/hda: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1580 12586927+ 83 Linux
/dev/hda3 1581 1711 1052257+ 82 Linux swap
/dev/hda4 1712 7297 44869545 5 Extended
/dev/hda5 1843 3148 10490445 83 Linux
/dev/hda6 3149 4486 10747453+ 83 Linux
/dev/hda7 4487 5900 11357923+ 83 Linux
/dev/hda8 5901 7297 11221371 83 Linux
/dev/hda9 1712 1842 1052226 82 Linux swap
Partition table entries are not in disk order
Disk /dev/hdb: 60.0 GB, 60022480896 bytes
16 heads, 63 sectors/track, 116301 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 16480 8305573+ 83 Linux
/dev/hdb2 16480 32959 8305605 83 Linux
/dev/hdb3 * 32959 49439 8305605 a5 FreeBSD
/dev/hdb4 49439 116296 33696337+ 5 Extended
/dev/hdb5 49439 65918 8305573+ 83 Linux
/dev/hdb6 65918 82397 8305573+ 83 Linux
/dev/hdb7 82397 98877 8305573+ 83 Linux
/dev/hdb8 98877 116296 8779491 83 Linux
Disk /dev/hdd: 15.0 GB, 15020457984 bytes
16 heads, 63 sectors/track, 29104 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdd1 * 1 29104 14668384+ 83 Linux
and this for a grub.conf
CODE
title Debian GNU/Linux, kernel 2.6.3-1-686
root (hd0,0)
kernel /vmlinuz-2.6.3-1-686 root=/dev/hda2 ro vga=792
initrd /initrd.img-2.6.3-1-686
savedefault
boot
title SUSE 9.0 Professional
rootnoverify (hd0,4)
chainloader +1
title Slackware 9.1
rootnoverify (hd0,5)
chainloader +1
title Mandrake 9.2
rootnoverify (hd0,6)
chainloader +1
title Mandrake 10 Community
rootnoverify (hd1,0)
chainloader +1
title Fedora Core 1
rootnoverify (hd1,1)
chainloader +1
title RedHat 9
rootnoverify (hd1,4)
chainloader +1
title Gentoo 2004.0
rootnoverify (hd0,7)
chainloader +1
title LAMP Debian
rootnoverify (hd1,7)
chainloader +1
title WhiteBox Test
rootnoverify (hd1,6)
chainloader +1
title FedoraCore2 - Test1
rootnoverify (hd2,0)
chainloader +1
title FreeBSD 5.2
rootnoverify (hd1,2)
chainloader +1
#title NOTHING
# rootnoverify (hd1,5)
# chainloader +1
On both machines, the /boot directroy for each Secondary OS is part of its boot partition and it shares the swap with all the other OSes. The MBR is controlled by the PRIMARY OS (the firest entry in the Grub.conf file) and the secodary OSes were all set to boot from their ROOT partition and they have their own boot loader (grub, lilo, etc.), which I set for a zero delay so it skips past and into the Secondary OS.
Hope this helps.