= How to create and use a Live CD

'''

[IMPORTANT]
======

This page was automatically converted from https://fedoraproject.org/wiki/How_to_create_and_use_a_Live_CD

It is probably

* Badly formatted
* Missing graphics and tables that do not convert well from mediawiki
* Out-of-date
* In need of other love

Please fix it, remove this notice, and then add to `_topic_map.yml`

Pull requests accepted at https://pagure.io/fedora-docs/fedora-howto

Once that is live, go to the original wiki page and add an `{{old}}`
tag, followed by a note like

....
{{admon/note|This page has a new home!|
This wiki page is no longer maintained. Please find the up-to-date
version at: https://docs.fedoraproject.org/whatever-the-url
}}
....

======

'''


This page explains how to make a custom-content Live CD or DVD on
Fedora-based systems including derived distributions such as RHEL,
CentOS and others.

[[getting-started]]
Getting started
~~~~~~~~~~~~~~~

To create a live image, the *livecd-creator* tool is used. Super user
privileges are needed. The tool is more or less self-documenting, use to
see options.

The *livecd-creator* tool is part of the `livecd-tools` package. If it
is not installed on your system, add it with link:dnf[DNF] or
link:yum[YUM]:

....
su -c 'yum install livecd-tools spin-kickstarts' #Versions prior to Fedora 22
                                 or
su -c 'dnf install livecd-tools spin-kickstarts' #Fedora 22 and beyond            
....

If you are interested in localized (i.e. translated into other
languages) live CD files, install also *l10n-kickstarts*.

[[configuring-the-image]]
Configuring the image
~~~~~~~~~~~~~~~~~~~~~

The configuration of the live image is defined by a file called
_kickstart_. It can include some basic system configuration items, the
package manifest and a script to be run at the end of the build process.

For the Fedora project, the most important live image configurations
files are:

* *https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-live-base.ks[fedora-live-base.ks]*
: The base live image system (included in the 'livecd-tools' package).
* For _Fedora 20 and earlier_:
*https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-livecd-desktop.ks[fedora-livecd-desktop.ks]*
: Complete desktop with applications and input/output support for all
supported locales in Fedora (this one is part of the 'spin-kickstarts'
package) - despite the name, this is the kickstart that generates the
~1GB-sized images for recent releases.
* For _Fedora 21 and later_:
*https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-live-workstation.ks[fedora-live-workstation.ks]*
- this is the Workstation product configuration.

_kickstart_ files for other spins (e.g. Fedora Electronics Lab) can be
found in after installing the 'spin-kickstarts' package. These pre-made
configuration files can be a great place to start, as they already have
some useful pre and post-installation scripts.
image:system-config-kickstart.png[system-config-kickstart,title="fig:system-config-kickstart"]
You can create a customized _kickstart_ file by running . Note that you
might have to install the package first with in Fedora 22 and beyond or
in earlier versions of Fedora. This tool is mainly intended for
generating kickstart files for automated installs, not live images, so
the output will probably not be usable without editing, but it may help
you to generate particular kickstart directives. Remember to add the
line:

....
%include /usr/share/spin-kickstarts/fedora-live-base.ks
....

at the beginning of your _kickstart_ file to include the base live
configuration.

[[making-the-image]]
Making the image
~~~~~~~~~~~~~~~~

To make the image, simply issue the following command:

....
livecd-creator --verbose \
--config=/path/to/kickstart/file.ks \
--fslabel=Image-Label \
--cache =/var/cache/live
....

The name given by _--fs-label_ is used:

* as a file system label on the ext3 and iso9660 file systems (As such,
it's visible on the desktop as the CD name).
* in the _isolinux_ boot loader.

If you have the repositories available locally and don't want to wait
for the download of packages, just substitute the URLs listed in the
configuration file to point to your local repositories.

[[examples]]
Examples
~~~~~~~~

[[spinning-the-fedora-desktop]]
Spinning the fedora desktop
^^^^^^^^^^^^^^^^^^^^^^^^^^^

The following command:

....
livecd-creator --verbose \
--config=/usr/share/spin-kickstarts/fedora-live-workstation.ks \
--fslabel=Fedora-LiveCD \
--cache=/var/cache/live
....

will create a live CD called "Fedora-LiveCD" using the
*fedora-live-workstation.ks* configuration file.

[[a-barebones-live-cd]]
A Barebones Live CD
^^^^^^^^^^^^^^^^^^^

The command

....
livecd-creator --verbose \
--config=/usr/share/doc/livecd-tools-`rpm -q livecd-tools --qf "%{VERSION}"`/livecd-fedora-minimal.ks \
--cache=/var/cache/live
....

will create a live CD that will boot to a login prompt.

[[testing-your-live-cd-using-kvm-or-qemu]]
Testing your Live CD using KVM or qemu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

image:Screenshot_qemu_gtk3.png[QEMU running Fedora
17,title="QEMU running Fedora 17"]

As root:

`qemu-kvm -m 2048 -vga qxl -cdrom filename.iso`

If you do not have Wikipedia:Kernel-based_Virtual_Machine[ KVM] support,
you have to use qemu instead

`qemu-system-x86_64 -m 2048 -vga qxl -cdrom filename.iso`

Replace *filename.iso* with the name of your created Live CD image and
*qemu-system-x86_64* with an appropriate qemu binary for the target
system, e.g *qemu-system-i386*.

[[using-your-new-live-image]]
Using your new live image
~~~~~~~~~~~~~~~~~~~~~~~~~

You can http://docs.fedoraproject.org/readme-burning-isos/[burn your
image directly to a CD or a DVD] if it fits, or you can
link:How_to_create_and_use_Live_USB[ write it to a USB stick].

[[live-image-media-verification]]
Live Image Media Verification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The live image can incorporate functionality to verify itself. To do so,
you need to have *isomd5sum* installed both on the system used for
creating the image and installed into the image. This is so that the
*implantisomd5* and *checkisomd5* utilities can be used. These utilities
take advantage of embedding an md5sum into the application area of the
iso9660 image. This then gets verified before mounting the real root
filesystem.

[[other-resources]]
Other Resources
~~~~~~~~~~~~~~~

* A link:Classroom[ Fedora Classroom] class covering
link:Classroom/Creating_Fedora_Remix[ creating Fedora remixes].
* If you are distributing your spin you need to be concerned about
link:JeroenVanMeeuwen/Revisor/FedoraRebrandRemixGuidelines[ trademark
usage and GPL responsibilities].

Category:Spins Category:LiveMedia
'''

See a typo, something missing or out of date, or anything else which can be
improved? Edit this document at https://pagure.io/fedora-docs/fedora-howto.
