Version 21.3
[livecd.git] / README
bloba31d6d3af9d442a4b08e44696337317105aecee8
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
28 so on. 
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
33 additional media.
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.
41 2. CREATING A LIVE CD
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
55    installation root
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
78    from deleted files
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
93 The command
95 # livecd-creator \
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)
113 and others.
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
120 # livecd-creator \
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.
136 3. LIVE CD INSTALLS
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
141 such an icon.
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
154 of anaconda.
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.