Install the first OS, making sure to create a /boot, swap and / partition. Also create a separate /home partition if desired. Create the secondary boot OS partitions. For a typical install a partition size of about 1.2G should be adequate. Label them if needed. E.g.

  SDA1 	/boot (shared)
  SDA2	/swap (shared)
  SDA5	/	
  SDA6	/Mandrake8.0

Do create a bootdisk if asked.

Boot into the newly installed OS and backup the /boot partition. The /boot/vmlinuz should be a symlink to the vmlinuz-kernel_version. If it is not, copy vmlinuz to vmlinuz-kernel_version. Do the same for System.map.

Shutdown and begin the installation for the next OS. Use the same boot partition and swap space. Choose the next available partition for your / filesystem. E.g.:

  SDA1 	/boot (shared)
  SDA2	/swap (shared)
  SDA5	/Mandrake7.2
  SDA6	/
Make sure that /boot is *not* re-formatted.

Install the new OS as normal. Boot into the new OS and make the following changes: Check the version of lilo. If the versions differ, synchronize them to the same version. (Not absolutely necessary, but makes changes easier). Edit the /etc/lilo.conf file to include both OS's:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=90
linear
default=Mandrake7.2

image=/boot/vmlinuz-2.2.17-21mdk
	label=Mandrake7.2
	read-only
	root=/dev/sda5
	append="mem=192M"
    	initrd=/boot/initrd-2.2.17-21mdk.img

image=/boot/vmlinuz-2.4.3-20mdk
	label=Mandrake8.0
	read-only
	root=/dev/sda6
	append="mem=192M"

If necessary, add initrd entries pointing to the /boot/initrd-KERNELVERSION.img files. This is needed for most SCSI devices. Delete the /boot/system.map link if it exists. You should have System.map.KERNELVERSION for each bootable OS. Run lilo. That's it --