Grub Based Multi Boot CDROM
I made a directory called bootcd and one called distros with a sub directory for each distro...
mkdir /home/bootcd
mkdir /home/distros
cd /home/distros
mkdir rescue rip slax puppy feather insert
Then I copied the livecd of each distro into the proper /home/distros/sub directory.
Then I copied the important parts of each distro into the /home/bootcd directory.
Note: If a distro has the same kernel and initrd, I changed the name of one set and also changed the grub entry for that distro. For example:
kernel /boot/vmlinuz3
initrd=/boot/image3.gz
For each distro, look at the isolinux.cfg to see what the kernel and initrd lines should look like.
You will need iso9660_stage1_5 for booting off from a cdrom. This comes with the RIP livecd or even with current distros.
I found that this type of setup doesn't allow any extras like "default=" or "timeout=" or even blank lines. Other wise things work quite well.
Below is my current /boot/grub/menu.lst
Code:
color light-gray/blue black/light-gray
title *=*=*=*=*=*=*=*=*=*=*=*=* CDROM BOOT MENU *=*=*=*=*=*=*=*=*=*=*=*=*=*=*
root (hd0)
title Windows
rootnoverify (hd0,0)
chainloader +1
title Fedora Core
root (hd1,1)
kernel /boot/vmlinuz ro root=/dev/hdb2 rhgb quiet
initrd /boot/initrd.img
title Rescue CD V0.2.15
kernel /boot/vmlinuz1 acpi=off root=/dev/ram0 init=/linuxrc nokeymap vga=785
initrd=/boot/initrd1
title Insert Linux V1.2.18
kernel /isolinux/vmlinuz ramdisk_size=100000 init=/etc/init lang=en apm=power-off hdc=scsi hdd=scsi vga=791 nomce quiet BOOT_IMAGE=insert
initrd=/isolinux/miniroot.gz
title RIP Linux V12.3
kernel /boot/kernel devfs=nomount vga=normal nokeymap init=/linuxrc root=/dev/ram0 rw
initrd=/boot/initrd.gz
title Feather Linux V0.7.4
kernel /isolinux/linux24 ramdisk_size=100000 nodma init=/etc/init lang=us apm=power-off vga=791 nomce quiet BOOT_IMAGE=knoppix
initrd=/isolinux/minirt24.gz
title Slax Linux V5.0.0
kernel /boot/vmlinuz2 max_loop=255 init=linuxrc livecd_subdir=/ load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw
initrd=/boot/initrd2.gz
title Puppy Linux V1.0.0
kernel /boot/vmlinuz3 root=/dev/ram0 PFILE=pup001-none-262144
initrd=/boot/image3.gz
title Freedos V9
kernel /boot/memdisk
initrd=/images/freedos.img
title Ranish Tool V2.44
kernel /boot/memdisk
initrd=/images/ranish.img
Once you have the systems loaded into the working directory ( bootcd ) and have the menu.lst setup, you can proceed as follows....
CD into the bootcd and type:
cdrecord dev=0,0,0 blank=fast
mkisofs -J -R -b boot/grub/iso9660_stage1_5 -c boot/boot.cat \
-o /home/bootcd.iso -no-emul-boot -boot-load-size 32 -boot-info-table .
cdrecord -v speed=4 dev=0,0,0 -data /home/bootcd.iso
I linked my Fedora kernel and initrd to vmlinuz and initrd.img so I wouldn't have to redo the cd everytime I get a new kernel.