/dev/hda1 5GB FAT32 Windows
/dev/hda2 5GB UFS FreeBSD
/dev/hda3 5GB ... <none/*BSD/Solaris/Minix>
/dev/hda4 (extended 'mother' partition)
/dev/hda5 20GB FAT32 D:, /mnt/storage in all
/dev/hda6 512MB <swap> Swap for all Linux
/dev/hda7 5GB EXT2 /usr/local in all
/dev/hda8 5GB EXT2 Debian
/dev/hda9 5GB EXT2 Fedora Core
/dev/hda10 5GB BeFS BeOS
.
. (unused space for new OSes)
.
» Install Windows before any other OS, on the very first partition (hda1, C:).
» Create two more primary partitions (hda2, hda3), even if you don't plan to install any OS there at the moment. Some OSes cannot be installed on logical drives in extended partitions.
» The first two logical partitions have special purpose. hda5 (D:) is a common data repository for all operating systems. It is FAT32, because every OS worth its salt can read FAT. And if some day it goes kaboom, there are recovery tools that work on FAT partitions.
Make sure this partition is large enough for all your data; the space following this will be used only for operating systems.
Use the uid=,gid= flags of mount(1) to prevent having to su to access this FAT32 partition. Here is how I mount it:
/dev/hda7 /mnt/storage vfat quiet,uid=deep,gid=deep 0 0
Do not make the mistake of keeping a bit of data in every $HOME directory.
» Keep the next two partitions common to all Linux distributions that you may install; the first is for swap, mount /usr/local on the next partition.
» Devote one partition per Linux distribution. e.g., hda3: Fedora /, hda7: Debian /. Do not worry about creating partitions for /home, /var etc. The OS partitions need not be more than 5 GB each.
» When you install a new OS, install its boot record in its root partition. Then, you can just say:
other=/dev/hdax
label=FooOS
in your main lilo.conf to make the new OS available in the 'menu'.