2 The Fedora live CD tools
3 David Zeuthen <davidz@redhat.com>
4 Jeremy Katz <katzj@redhat.com>
6 Last updated: March 10, 2014 (v20.5)
8 This project concerns tools to generate live CD's on Fedora based
9 systems including derived distributions such as RHEL, CentOS and
10 others. See the project Wiki at
12 http://fedoraproject.org/wiki/FedoraLiveCD
14 for more details. Discussion of this project takes places at the
15 fedora-livecd@redhat.com mailing list
17 http://www.redhat.com/mailman/listinfo/fedora-livecd-list
19 This project and it's source files is licensed under the GPLv2
20 license. See the file COPYING for details.
22 1. LIVE CD DESIGN GOALS
24 The live CD is designed in such a way that the when running from a
25 live CD, the system should appear as much as possible as a standard
26 system with all that entails; e.g. read-write rootfs (achieved using
27 dm-snapshot), standard ext3 file system (for extended attributes) and
30 Another design goal is that the live CD should be ''installable'',
31 ie. an user should be able to install the bits from the live CD onto
32 his hard disk without this process requiring network access or
35 Finally, another design goal is that the tool set itself should be
36 separate from configuration; the same unmodified tool should be usable
37 for building various live CD flavors with vastly different
38 configurations, e.g. a GNOME live CD, a KDE live CD, a live cd with
39 music programs and so on.
43 To create a live cd, the livecd-creator tool is used. Super user
44 privileges are needed. The tool is more or less self-documenting, use
45 the --help option to see options.
47 2.1 HOW THE LIVE CD CREATOR WORKS
49 In a nutshell, the livecd-creator program
51 o Sets up a file for the ext3 file system that will contain all the
52 data comprising the live CD
54 o Loopback mounts that file into the file system so there is an
57 o Bind mounts certain kernel file systems (/dev, /dev/pts, /proc,
58 /sys, /selinux) inside the installation root
60 o Uses a configuration file to define the requested packages and
61 default configuration options. The format of this file is the same
62 as is used for installing a system via kickstart.
64 o Installs, using yum, the requested packages into the installation
65 using the given repositories
67 o Optionally runs scripts as specified by the live CD configuration file.
69 o Relabels the entire installation root (for SELinux)
71 o Creates a live CD specific initramfs that matches the installed kernel
73 o Unmounts the kernel file systems mounted inside the installation root
75 o Unmounts the installation root
77 o Runs resize2fs to minimize and unminimize the ext3 file to remove data
80 o Runs resize2fs to minimize on a devicemapper snapshot, to generate a
81 small minimized delta image file which can be used by anaconda to
82 reduce installation time by not copying unused data to disk
84 o Creates a squashfs file system containing only the ext3 file (compression)
86 o Configures the boot loader
88 o Creates an iso9660 bootable CD
91 2.2 EXAMPLE: A BAREBONES LIVE CD
96 --config=/usr/share/doc/livecd-tools/livecd-fedora-minimal.ks
98 will create a live CD that will boot to a login prompt. Not that since
99 no configuration is done the user will not be able to login to the
100 system as the root password is not set / cleared.
102 2.3 LIVE CD CONFIGURATION FILES
104 The configuration of the live CD is defined by a file that uses the
105 same format as installing a system via kickstart. They can include
106 some basic system configuration items, the package manifest and a
107 script to be run at the end of the build process.
109 For the Fedora project, there are currently a variety of different live CD
110 configuration files. The spin-kickstarts package includes all of the
111 kickstarts used to create the various spins. These include a minimal live image
112 (livecd-fedora-minimal.ks), a complete desktop image (livecd-fedora-desktop.ks)
115 2.4 EXAMPLE: SPINNING THE FEDORA DESKTOP LIVE CD
117 Assuming that you use the livecd-fedora-desktop.ks configuration file,
118 then the following command
121 --config=/usr/share/spin-kickstarts/fedora-livecd-desktop.ks \
122 --fslabel=Fedora-20-LiveCD-1-foo
124 will create a live CD called "Fedora-7-LiveCD-1-foo". The name
125 given by --fslabel is used.
127 o as a file system label on the ext3 and iso960 file systems
128 (as such it's visible on the desktop as the CD name)
130 o in the isolinux boot loader
132 If you have the repositories available locally and don't want to wait
133 for the download of packages, just substitute the URLs listed in the
134 configuration file to point to your local repositories.
138 As of Fedora 7, anaconda has support for doing an installation
139 from a live CD. To use this, double click on the "Install to Hard
140 Drive" item on the desktop or run /usr/bin/liveinst if you don't have
143 4. LIVE CD MEDIA VERIFICATION
145 The live CD can incorporate functionality to verify itself. To do so,
146 you need to have anaconda-runtime installed both on the system used
147 for creating the image and installed into the image. This is so that
148 the implantisomd5 and checkisomd5 utilities can be used. These
149 utilities take advantage of embedding an md5sum into the application
150 area of the iso9660 image. This then gets verified before mounting
151 the real root filesystem.
153 In a future release, the isomd5 utilities will probably be split out
156 5. USING LIVE IMAGES FROM USB MEDIA
158 USB sticks are becoming increasingly prevalent and are a nice way to
159 use live images. You can take a live CD iso image and transform it so
160 that it can be used on a USB stick. To do so, use the
161 livecd-iso-to-disk script.
162 /usr/bin/livecd-iso-to-disk /path/to/live.iso /dev/sdb1
164 Replace /dev/sdb1 with the (unmounted) partition where you wish to put
165 the live image. This is not a destructive process; any data you
166 currently have on your USB stick will be preserved.