From Fedora Project Wiki

(Fix it to use the correct file path.)
(Copied page from https://fedoraproject.org/wiki/User:Nicolassatragno/How_to_create_and_use_a_custom_Live_CD)
(33 intermediate revisions by 14 users not shown)
Line 1: Line 1:
= Creating a Fedora Live CD/DVD Using the Live CD Tools =
{{autolang|base=yes}}


This project concerns tools to generate live CDs or DVD's on Fedora based systems including derived distributions such as RHEL, CentOS and others. You can find Fedora Live images for download at http://fedoraproject.org
<noinclude>
[[Category:Spins]]
[[Category:LiveMedia]]
</noinclude>
 
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.  
 
{{admon/note | Note | If you simply want to burn a pre-made ISO to a disc, visit http://fedoraproject.org/en/get-fedora to download a LiveCD or LiveDVD, then see the [http://docs.fedoraproject.org/install-guide/ install guide] or [http://docs.fedoraproject.org/readme-burning-isos/ burning how-to] for further instructions.}}
 
== 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 {{command | livecd-creator --help}} to see options.


See the [[FedoraLiveCD | project wiki]] for more details. Discussion of this project takes places at the fedora-livecd@redhat.com mailing list at http://www.redhat.com/mailman/listinfo/fedora-livecd-list.
The '''livecd-creator''' tool is part of the <code>livecd-tools</code> package. If it is not installed on your system, add it with:


This project and its source files are licensed under the GPLv2 license. See the file COPYING for details.
<pre>
su -c 'yum install livecd-tools spin-kickstarts'
</pre>


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


The live CD is designed in such a way that, when running from a live CD, the system should appear as much as possible as a standard system with all that entails; e.g., read-write rootfs (achieved using dm-snapshot), standard ext3 file system (for extended attributes) and so on.
SELinux should be in permissive mode for livecd-creator to work. Run the following as root user first before attempting to create a live CD or DVD.


Another design goal is that the live CD should be installable, i.e., a user should be able to install the bits from the live CD onto a hard disk without this process requiring network access or additional media.
setenforce 0


{{Admon/tip | The "install to hard drive" feature has now been implemented.  See below for details.}}
{{admon/warning | Warning | Setting SELinux to ''permissive'' mode will leave your computer less protected against security threats. '''Remember to revert this option after having finished with''' <pre>setenforce 1</pre>}}


Finally, another design goal is that the tool set itself should be separate from configuration; the same unmodified tool should be usable for building various live CD flavors with vastly different configurations, e.g., a GNOME live CD, a KDE live CD, a live cd with music programs, and so on.
== Configuring the image ==


== Creating a Live CD ==
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.


To create a live CD, the '''livecd-creator''' tool is used. Super user privileges are needed. The tool is more or less self-documenting, use the ''--help'' option to see options.
For the Fedora project, the two most important live image configurations files are:


The '''livecd-creator''' tool is part of the <code>livecd-tools</code> package. If it is not installed on your system, add it with:
* '''[https://fedorahosted.org/spin-kickstarts/browser/fedora-live-minimization.ks fedora-live-minimization.ks]''' : The base live image system (included in the 'livecd-tools' package).
* '''[https://fedorahosted.org/spin-kickstarts/browser/fedora-live-desktop.ks fedora-live-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).


''kickstart'' files for other spins (e.g. Fedora Electronics Lab) can be found in ''/usr/share/spin-kickstarts/'' 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|thumb|system-config-kickstart]]
You can easily create a customized ''kickstart'' file by running {{command | system-config-kickstart}}. Note that you might have to install the package first:
su -c "yum install system-config-kickstart"
Remember to add the line:
<pre>
<pre>
su -c 'yum install livecd-tools'
%include /usr/share/spin-kickstarts/fedora-live-base.ks
</pre>
</pre>
at the beginning of your ''kickstart'' file to include the base live configuration.


=== How the Live CD Creator Works ===
admon/tip || See [[Anaconda/Kickstart#Creating_the_Kickstart_File | Creating a ''kickstart'' file]] for advanced information regarding making your own custom ''kickstart'' file.}}


In a nutshell, the '''livecd-creator''' program
== Making the image ==


* Sets up a file for the ''ext3'' file system that will contain all the data comprising the live CD
To make the image, simply issue the following command:
* Loopback mounts that file into the file system so there is an installation root
<pre>
* Bind mounts certain kernel file systems (/dev, /dev/pts, /proc, /sys, /selinux) inside the installation root
livecd-creator --verbose \
* Uses a configuration file to define the requested packages and default configuration options.  The format of this file is the same as is used for installing a system via ''kickstart''.
--config=/path/to/kickstart/file.ks \
* Installs, using ''yum'', the requested packages into the installation using the given repositories
--fslabel=Image-Label \
* Optionally runs scripts as specified by the live CD configuration file.
--cache =/var/cache/live
* Relabels the entire installation root (for SELinux)
</pre>
* Creates a live CD specific ''initramfs'' that matches the installed kernel
* Unmounts the kernel file systems mounted inside the installation root
* Unmounts the installation root
* Creates a ''squashfs'' file system containing only the ''ext3'' file (compression)
* Configures the boot loader
* Creates an iso9660 bootable CD


=== Example #1: A Barebones Live CD ===
The name given by ''--fs-label'' is used:


The command
* 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.


<pre>livecd-creator \
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.
--config=/usr/share/doc/livecd-tools-<version>/livecd-fedora-minimal.ks </pre>


will create a live CD that will boot to a login prompt.
{{admon/note | Making a 32-bit spin ISO on a 64-bit machine| If you have an x86_64 machine you're building on but you want a 32-bit happy iso image, add the following before your livecd-creator command:
<pre>setarch i686 livecd-creator [...]</pre>
}}


{{Admon/tip | Barebones Live CD does not support login capability. | Since no configuration is done, the user will not be able to login to the system as the root password is not set/cleared.}}
== Examples ==


=== Live CD Configuration Files ===
=== Spinning the fedora desktop ===


The configuration of the live CD is defined by a file that uses the same format as installing a system via ''kickstart''.  They can include some basic system configuration items, the package manifest and a script to be run at the end of the build process.
The following command:


For the Fedora project, there are currently two different live CD configuration files. They are
<pre>
livecd-creator --verbose \
--config=/usr/share/spin-kickstarts/fedora-livecd-desktop.ks \
--fslabel=Fedora-LiveCD \
--cache=/var/cache/live
</pre>


{|
will create a live CD called "Fedora-LiveCD" using the '''fedora-live-desktop.ks''' configuration file.
|-
| livecd-fedora-minimal.ks || The base live CD system
|-
| livecd-fedora-desktop.ks || Complete desktop with applications and input/output support for all supported locales in Fedora
|}


=== Example #2: Spinning the Fedora Desktop Live CD ===
=== A Barebones Live CD ===


Assuming that you use the '''livecd-fedora-desktop.ks''' configuration file, then the following command
The command


<pre>livecd-creator \
<pre>livecd-creator --verbose \
--config=/usr/share/doc/livecd-tools-<version>/livecd-fedora-desktop.ks \
--config=/usr/share/doc/livecd-tools-`rpm -q livecd-tools --qf "%{VERSION}"`/livecd-fedora-minimal.ks \
--fslabel=Fedora-LiveCD </pre>
--cache=/var/cache/live
</pre>


will create a live CD called "Fedora-LiveCD".
will create a live CD that will boot to a login prompt.


The name given by ''--fs-label'' is used:
{{Admon/tip | Barebones Live CD does not support login capability. | Since no configuration is done, the user will not be able to login to the system as the root password is not set/cleared.}}


* as a file system label on the ext3 and iso9660 file systems (As such, it's visible on the desktop as the CD name)
== Testing your Live CD using KVM or qemu ==
 
* 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.


=== Testing your Live CD using QEMU ===
[[Image:Screenshot_qemu_gtk3.png|thumb|QEMU running Fedora 17]]


As root:
As root:
<code>qemu-kvm -m 512 -cdrom filename.iso</code>


Replace filename.iso with the name of your created Live CD image.  NOTE: be sure to "yum install kvm qemu" as root.
qemu-kvm -m 512 -cdrom filename.iso


== Live CD Installs ==
If you do not have [[Wikipedia:Kernel-based_Virtual_Machine | KVM]] support, you can use qemu instead


As of Fedora 7, anaconda has support for doing an installation from a live CD. To use this, double click on the ''Install to Hard Drive'' item on the desktop or run
qemu -m 512 --cdrom filename.iso


<pre>
Replace '''filename.iso''' with the name of your created Live CD image.
/usr/bin/liveinst
</pre>


if you don't have such an icon.
{{Admon/tip || Be sure to '''"yum install kvm qemu"''' as root for releases before Fedora 11. Fedora 11 has merged kvm and qemu into a single package. Just installing qemu package is enough.}}


== Live CD Media Verification ==
== Using your new live image ==


The live CD 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.
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 [[How_to_create_and_use_Live_USB | write it to a USB stick]].


== Using Live Images from USB Media ==
{{admon/install | Installing the Live image to the hard drive | As of Fedora 7, anaconda has support for doing an installation from a live image.  To use this, double click on the ''Install to Hard Drive'' item on the desktop or run
 
USB sticks are becoming increasingly prevalent and are a nice way to use live images.  You can take a live CD iso image and transform it so that it can be used on a USB stick.  To do so, use the '''livecd-iso-to-disk''' script:


<pre>
<pre>
/usr/bin/livecd-iso-to-disk /path/to/live.iso /dev/sdb1
/usr/bin/liveinst
</pre>
</pre>


Replace /dev/sdb1 with the (unmounted) partition where you wish to put the live image.  This is not a destructive process; any data you currently have on your USB stick will be preserved.
if you don't have such an icon. However, because of the way {{command|livecd-creator}} works, it is not possible to choose a different set of packages or a different filesystem during installation.}}


Additional information available at [[How_to_create_and_use_Live_USB | How to Install Live Image to USB Flash Drive]].
== 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 [[Classroom | Fedora Classroom]] class covering [[Classroom/Creating_Fedora_Remix | creating Fedora remixes]].
* A [[Classroom | Fedora Classroom]] class covering [[Classroom/Creating_Fedora_Remix | creating Fedora remixes]].
* If you are distributing your spin you need to be concerned about [[JeroenVanMeeuwen/Revisor/FedoraRebrandRemixGuidelines | trademark usage and GPL responsibilities]].
* If you are distributing your spin you need to be concerned about [[JeroenVanMeeuwen/Revisor/FedoraRebrandRemixGuidelines | trademark usage and GPL responsibilities]].
[[Category:Spins]]

Revision as of 02:55, 3 January 2013


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.

Note.png
Note
If you simply want to burn a pre-made ISO to a disc, visit http://fedoraproject.org/en/get-fedora to download a LiveCD or LiveDVD, then see the install guide or burning how-to for further instructions.

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 livecd-creator --help 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:

su -c 'yum install livecd-tools spin-kickstarts'

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

SELinux should be in permissive mode for livecd-creator to work. Run the following as root user first before attempting to create a live CD or DVD.

setenforce 0
Warning.png
Warning
Setting SELinux to permissive mode will leave your computer less protected against security threats. Remember to revert this option after having finished with
setenforce 1

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 two most important live image configurations files are:

  • fedora-live-minimization.ks : The base live image system (included in the 'livecd-tools' package).
  • fedora-live-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).

kickstart files for other spins (e.g. Fedora Electronics Lab) can be found in /usr/share/spin-kickstarts/ 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.

system-config-kickstart

You can easily create a customized kickstart file by running system-config-kickstart. Note that you might have to install the package first:

su -c "yum install system-config-kickstart"

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.

admon/tip || See Creating a kickstart file for advanced information regarding making your own custom kickstart file.}}

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.

Note.png
Making a 32-bit spin ISO on a 64-bit machine
If you have an x86_64 machine you're building on but you want a 32-bit happy iso image, add the following before your livecd-creator command:
setarch i686 livecd-creator [...]

Examples

Spinning the fedora desktop

The following command:

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

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

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.

Idea.png
Barebones Live CD does not support login capability.
Since no configuration is done, the user will not be able to login to the system as the root password is not set/cleared.

Testing your Live CD using KVM or qemu

QEMU running Fedora 17

As root:

qemu-kvm -m 512 -cdrom filename.iso

If you do not have KVM support, you can use qemu instead

qemu -m 512 --cdrom filename.iso

Replace filename.iso with the name of your created Live CD image.

Idea.png
Be sure to "yum install kvm qemu" as root for releases before Fedora 11. Fedora 11 has merged kvm and qemu into a single package. Just installing qemu package is enough.

Using your new live image

You can burn your image directly to a CD or a DVD if it fits, or you can write it to a USB stick.

Install icon.jpg
Installing the Live image to the hard drive
As of Fedora 7, anaconda has support for doing an installation from a live image. To use this, double click on the Install to Hard Drive item on the desktop or run
/usr/bin/liveinst
if you don't have such an icon. However, because of the way livecd-creator works, it is not possible to choose a different set of packages or a different filesystem during installation.

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