It may be a surprise to hear it but one Grub floppy can boot over 90 systems in a PC.
The Grub floppy here is one with only the stage1 and stage2 "dd" into a floppy by any Linux that supports Grub. The details of how to create one is described by Chapter 3.1 of the Grub Manual
. The stage1 and stage2 file can be sourced from a Live CD without even a Linux available from a computer.
The Grub manual gives out the full details but not necessarily tells us how to boot 100 systems but you can put two and two together to make 4 to do just that.
You may wonder how do I boot a system in a Grub prompt provided by this floppy. Well the full instruction of how a Linux boots itself is available in
if it uses Grub. The menu.lst is just the instructions you need to type at the terminal to boot the Linux manually.
For a Linux that uses Lilo its booting instructions are always stored in /etc/lilo.conf. Therefore you can ask Grub to list the file out at the terminal (by its cat command) and boot it with the displayed kernel and initrd names.
In other word you can literally walk up a PC you have never seen before, boot the Grub floppy up, list its /etc/lilo.conf or /boot/grub/menu.lst and follow the instruction to boot up the installed Linux. You can ask Grub to find which partition has /etc/lilo.conf or /boot/grub/menu.lst too.
How to boot 100 systems? If you know how to boot a system manually then you can choose a Linux into the MBR and edit its /boot/grub/menu.lst to automate the booting of 100 systems.
Why Grub is so easy?
Grub can chainload any system (DOS, Windows, Linux, BSD, SOlaris & Darwin) in the jth partition of the ith disk with 3 generic instructions
As systems like DOS, Windows, BSD, Solaris & Darwin must be installed and originally booted from a "primary partition" each has to put its boot loader inside the system's root partition. Chainloading mean Grub doesn't boot the system but boots only the boot loader of that system. That is why Grub can boot so many of them. The "+1" position means Grub actually "cut & paste" itself with that boot loader in the operation.
In Linux one can ask the installer to put the boot loader, either Lilo or Grub, in its root partition and then proceed to the above generic instruction to boot it. There you potentailly you can boot the 100 systems by repeating the above 3 generic lines 100 times, changing only the partition references. This is substantially true and you only have complication with multiple DOS, Windows, BSD and Solaris in the same PC. To overcome the booting order created by these systems Grub is equipped with
"hide" and "unhide" statement to make other partitions visible or invisivle to the booting partition.
"makeactive" to toggle any primary partition to become active or bootable
"map" to re-map disk order so that a system in 2nd, 3rd 4th..position can be temporarily take over the 1st disk status "on-the-fly".
I have not been able to find an operating system conforming to the PC standard that Grub cannot boot. I shall call it day when I have exhausted 100 systems.
When one boots a Linux by naming its kernel and initrd files names that constitutes "directly" booting. Grub can boot directly all Linux and BSDs.
Chainloading is "indirect" booting. Grub can boot every one.
I don't want to undermine cheetaham's work here but booting can be a lot simpler than most of the users think.
I just feel sad that so much emphasis is placed in "dual boot" and "tri boot" without bothering to know the simple mechanism of booting. Every Linux is born to multi boot. I just finished installing Frugalware 0.4 but haven't counted how many systems it has arranged to multi boot without even askig me. Its previous version 0.1 picked out 39 booting entires automatically. All I did was to arrange every Linux to have its boot loader in root partition because I have only one MBR readable by the Bios in a PC.
My Grub Manual is identical to the one you can read in the Internet. I am new in Linux too and started my adventure in June last year.