Multiple live images on a USB stick

It keeps coming up that people would like to support multiple live images running off the same USB stick/hard drive/$arbitrary medium and so it’s probably worth considering some of the ways that it could possibly be supported.  Also, for the personal reason, it would make it easier for me to effectively use my netbook with the super-slow SSD if I just put a new rawhide live image on it regularly and keep my homedir on the (faster) SD card :-)

Breaking it down into components, I think there are a few things which we have to worry about

  1. Where to put things on the disk. 

    The more I think about it, the more I think that having “everything” for one image (including the bootloader bits) will be easiest.  The suggestion of using the iso label for namespacing seems to make reasonable sense.

  2. Boot loader config

    There are a couple of possibilities here… the simplest would just be that we edit the syslinux.cfg and append more entries.  A little bit more complicated would be to just have a simple “top-level” syslinux.cfg which uses CONFIG directives to load the additional config files.  Third would be a com32 module to iterate and set up the menu items automatically.  I lean towards the second, at least for at first unless someone is super-motivated to write a com32 module

  3. How to know the new directory

    There are multiple places scattered that have hard-coded looking for LiveOS.  There’s the initrd, there’s the livesys initscript and there’s livecd-iso-to-disk/liveusb-creator.  While we could add a kernel command line option and go and change each of these to set it/respect it, it feels like maybe the less general solution.  Maybe it’s just that we should always have livelabel= available so that we can use it other places? 

Of these, I’m especially not sold with the last question and would love to see some thoughts or ideas from others. From there, it should be pretty straight-forward to implement so that we can have everything in place for Fedora 11 Beta

On a related note — I wonder if there’s value in moving the livesys initscript from being based in the live image kickstart config to being provided by a package (most obviously, initscripts)