From Fedora Project Wiki

(selinux permissive isn't necessary for live image creation any more (or, rather, it gets done secretly when you run livecd-creator))
m (add note and link to livemedia-creator wiki page)
(17 intermediate revisions by 7 users not shown)
Line 7: Line 7:


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.  
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 | Newer method to create live cd.isos in f24  visit https://fedoraproject.org/wiki/Livemedia-creator-_How_to_create_and_use_a_Live_CD}}


{{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.}}
{{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.}}
Line 14: Line 16:
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.
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.


The '''livecd-creator''' tool is part of the <code>livecd-tools</code> package.  If it is not installed on your system, add it with:
The '''livecd-creator''' tool is part of the <code>livecd-tools</code> package.  If it is not installed on your system, add it with [[dnf|DNF]] or [[yum|YUM]]:


<pre>
<pre>
su -c 'yum install livecd-tools spin-kickstarts'
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           
</pre>
</pre>


Line 26: Line 30:
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.
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:
For the Fedora project, the most important live image configurations files are:


* '''[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://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).
* '''[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).
* 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 ''/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.
''kickstart'' files for other spins (e.g. Fedora Electronics Lab) can be found in {{filename|/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]]
[[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:
You can create a customized ''kickstart'' file by running {{command | system-config-kickstart}}. Note that you might have to install the package first with {{command|su -c "dnf install system-config-kickstart"}} in Fedora 22 and beyond or {{command|su -c "yum install system-config-kickstart"}} 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:
su -c "yum install system-config-kickstart"
Remember to add the line:
<pre>
<pre>
%include /usr/share/spin-kickstarts/fedora-live-base.ks
%include /usr/share/spin-kickstarts/fedora-live-base.ks
Line 72: Line 75:
<pre>
<pre>
livecd-creator --verbose \
livecd-creator --verbose \
--config=/usr/share/spin-kickstarts/fedora-livecd-desktop.ks \
--config=/usr/share/spin-kickstarts/fedora-live-workstation.ks \
--fslabel=Fedora-LiveCD \
--fslabel=Fedora-LiveCD \
--cache=/var/cache/live
--cache=/var/cache/live
</pre>
</pre>


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


=== A Barebones Live CD ===
=== A Barebones Live CD ===
Line 100: Line 103:
  qemu-kvm -m 2048 -vga qxl -cdrom filename.iso
  qemu-kvm -m 2048 -vga qxl -cdrom filename.iso


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


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


Replace '''filename.iso''' with the name of your created Live CD image.
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'''.


{{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.}}
{{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.}}

Revision as of 09:19, 28 June 2016


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
Newer method to create live cd.isos in f24 visit https://fedoraproject.org/wiki/Livemedia-creator-_How_to_create_and_use_a_Live_CD
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 DNF or 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

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:

  • fedora-live-base.ks : The base live image system (included in the 'livecd-tools' package).
  • For Fedora 20 and earlier: 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: fedora-live-workstation.ks - this is the Workstation product configuration.

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 create a customized kickstart file by running system-config-kickstart. Note that you might have to install the package first with su -c "dnf install system-config-kickstart" in Fedora 22 and beyond or su -c "yum install system-config-kickstart" 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.

Idea.png
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-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

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 2048 -vga qxl -cdrom filename.iso

If you do not have 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.

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