[Fedora-livecd-list] Moving forward with Fedora LiveCD

Darko Ilic darko.ilic at gmail.com
Tue Jul 5 11:05:52 UTC 2005


My name is Darko Ilic, I`m a Summer of Code 
(http://code.google.com/summerofcode.html) participant working on the Fedora 
Live CD generator project. Elliott allready mentioned that I will join you, 
and here I am.

Here is a description of the project I`ve submitted:

Project title: 
        Toolkit for Fedora Live CD/DVD generation

        The toolkit would include three separate tools: 
         - a tool for generating config files that hold the list of packages 
that should be included in Live CD distribution (in kickstart-like format),
         - a tool that installs specified packages in the specified directory 
(and also check dependencies),
         - a tool that makes bootable iso image out of that directory

Benefits to the Community
         - The toolkit could be used at the Fedora Project for generation of 
official Live CDs/DVDs. Once the config files for different-purpose Live CDs 
are made (for example: Office Live CD, Workstation Live CD, Live DVD ...), 
they could be used for every Fedora Core edition, and Live CDs could be 
automatically generated.
         - The toolkit could be also used by 3rd party companies for 
Fedora-based live CDs creation (but with addition of some software not 
included in Fedora Core)
         - Fedora users could use the toolkit for custom Fedora Live CD 
generation. Every Fedora user could put his favorite Fedora installation on 
the Live CD or DVD, and take the full advantage of Live CD technology. Fedora 
users could also use their working Fedora systems to make Live CDs out of 

Project Details
        The purpose of the toolkit is to create Live CD/DVD distributions out 
of Fedora Core installable tree. It would be composed of three separate 

         1. A tool that would be used for config file generation. Config file 
would hold the list of packages that should be included in Live CD 
distribution. Config file would be in kickstart-like format, for 
compatibility and consistency reasons. Keeping this file format would allow 
skiping this step, and using some existing kickstart file. The tool itself 
would be a wizard style application with nice user interface (both GUI and 
console based, like anaconda). It would allow user to browse trough the 
groups of packages and to select individual packages or groups of packages. 
It would provide information of expected iso image size so the user could 
include/exclude packages to make iso image fit the desired media. 
        I would write this tool using anaconda code base because the majority 
of code is allready included in anaconda. Additionally, I would consider 
Kickstart Configurator and maybe some other kickstart configuration utility, 
if such exist.

        2. A simple tool that takes config file with the list of packages, 
check dependencies, and use Fedora Core installable tree to install packages 
in the target directory. It would be realized as a shell script, so it would 
be possible to run it automatically (with cron, for example). 

        3. A tool that makes bootable iso image out of the directory holding 
Fedora Core installed system. It could be used both with the running Fedora 
installation and with the installation created using previously described 
tool. It would have to modify init scripts and some other config files, to 
modify an initrd image, to compress the data and also to include some other 
software that would be needed. After all, it would have to create bootable 
iso image. 
        This tool would be also realized as a shell script, so it would be 
possible to run it automatically (with cron, for example). I would consider 
the mklivecd tool from the readonly-root package, and possibly take it as my 
start-point, because it`s purpose is quite similar.

        Some of the features that created Live CD would have:
         - automatic hardware detection (existing Fedora feature, but should 
be mentioned because it`s very important)
         - using local storage devices (hard disks, usb storage devices) for 
storing/restoring settings and home directory
         - installing a basic Fedora system on the local computer, that could 
be further supplemented with the online repositories like any regular 

        Technologies to be used:
         - Python (and maybe BASH) would be used for programming ("Using the 
Python scripting language for the majority of code allows for easy 
distribution of updates and the quick development of new features")
         - syslinux or isolinux (http://syslinux.zytor.com/) for booting the 
         - Zisofs, Cloop or Squashfs for image compression (benchmark tests at 
http://kerneltrap.org/files/PERFORMANCE.README.txt show that SquashFS is the 
fastest, but I will also consider other aspects before making choice)
         - tmpfs for storing changes made to system in memory


So, more or less, it`s something you were talking about here. I`ve allready 
started, and I`ll work very hard during the hole summer, `cause I have to 
finish the project before the 1st of September. It`s great that you are here, 
so I can bother you with my questions :)

The first, and the most important question is what should be used for starting 
point ( Rookery, mklivecd, ADIOS). Greg allready asked, so I`ll wait to hear 
your oppinion. I tought that mklivecd should be my starting point because it 
comes from RH, but I`ll also consider the other two projects. 

I`ll try to gather as much information as I can till the thursday night, so we 
can discuss them on the meeting (I`m in GMT+1 so I`m fine with 23:00 GMT).

See you,
Darko (spells like donnie darko)

More information about the Fedora-livecd-list mailing list