This page describes remixing Fedora and customized building of media using Revisor.
Looking for a certain topic? Here's a couple of links related to remixing Fedora:
- Revisor Development HOWTO
- Fedora Remix HOWTO
- Fedora Rebrand HOWTO
- Fedora Re-Spin HOWTO
- Fedora Live Media HOWTO
- Fedora Installation Media HOWTO
- Cobbler Integration
- Virtualization Media
- Generating Delta ISOs
- Known Bugs
Remix Fedora has been a number one feature of Fedora 7, allowing you to create whatever set of packages in whatever fashion, whether Fedora ships those packages, or somebody else distributes them. While originally intended just as a GUI front-end to release build tools, Revisor is now all about customization. With this customization, the number of options Revisor allows you to configure increases. The following topics walk you through these settings.
Most users of Revisor will start with using the GUI. If you are, you'll need the Walk
Through document, which will show you what options you have from the GUI. Revisor however also has a command-line interface, which is particularly interesting as it allows further customization -and that's what it's all about.
Revisor has a default master configuration file:
/etc/revisor/revisor.conf. This file contains a section
[revisor] , and several other sections (so-called models). The
[revisor] section allows global options to be specified. Here you will want to configure options that apply to all models. However, in each model, you can specify all options too, overriding the global options. An example:
[revisor] kickstart_file = /some/kickstart/file [model1] ...other options... [model2] ...other options... kickstart_file = /some/other/kickstart/file
In this particular case, the global options specify
/some/kickstart/file to be used, but if Revisor is going to compose media using the
/some/other/kickstart/file will be used instead -overriding the global configuration option. Revisor takes a command line parameter to set which configuration file to use:
Basic Configuration Options
This is a list of Revisor's most common and most used configuration directives and command-line parameters
|Configuration Directive||CLI Parameter||Description||Default|
||Configuration file to use|
||Turn on debug output||False|
||Force Revisor to run in CLI mode. No GUI will ever pop up.||False|
||Force Revisor to run in GUI mode. Normally Revisor will attempt to start in GUI mode, and if it fails, falls back to CLI mode. Use
||Model to use. This must be a valid section in the configuration file|
||Composes a CD or CD set||False|
||Composes a DVD or DVD set||False|
||Composes Optical Live Media||False|
||Specify which kickstart file to use||False|
For a complete reference, including CLI parameters, see the OptionReference document.
You can use kickstart files to configure the media that Revisor composes. Be it Installation, Live, Virtualization or Utility media, all kickstart configuration that applies to these different types of media will be used.
Installation Media:: Revisor can use the
%packages section to populate the package set available on the installation media. Other then that, Revisor can include the kickstart file in the build tree so that it ends up on the media or in the installation tree (configuration option: kickstart_include=1). Also, Revisor can configure the optical media's bootmenu to start the installer using the kickstart configuration file by default.
Live Media:: Revisor uses the kickstart options,
%post sections to configure the Live Media. As with Installation Media, Revisor could use the
%packages also, if desired.
Virtualization Media:: In some ways Virtualization Media can be considered similar to Live Media; Revisor allows the same types of configuration to be performed using kickstart configuration as with Live Media.
Utility Media:: Whether it is a boot.iso, pxeboot.iso or rescue CD, the kickstart configuration file could be included on the media so that you can use it to perform installations from these media, and of course you should be able to add certain packages that may allow you to perform additional troubleshooting and configuration on the system. In certain ways, the rescue CD behaves like a LiveCD in those aspects.
Creating a Kickstart File
To create a kickstart configuration file, you could use system-config-kickstart, or create one manually using the documentation in RHEL 5.0 Installation Manual (as a basis, you could use
/root/anaconda-ks.cfg which holds kickstart information on how you installed the current system).
Types of Media
There are several quite different types of Installation Media. The Fedora Project releases Optical Installation DVDs and an online Installation Tree. Several types of Installation Media include:
CD:: A CD, or CD set that allows you to install a system. (Setting: media_installation_cd) DVD:: A DVD, or DVD set that allows you to install a system. (Setting: media_installation_dvd) Tree:: A tree that contains everything a system needs to install itself. A tree can be published online as a NFS, HTTP or FTP installation source. (Setting: media_installation_tree) Unified ISO:: One image (ISO) containing the installation tree, for easier transportation or hard disk installations. (Setting: media_installation_unified)
Like Installation Media, Live Media can shape up in different forms also:
Optical:: Optical Live Media, being a CD, DVD or DVD Dual Layer. (Setting: media_live_optical) USB Thumb Drive:: Live USB Thumb Drive, for running the operating system right of your USB thumb drive. (Setting: media_live_thumb) USB Hard Drive:: Live USB Hard Drive, running the operating system from a real hard drive attached to the computer via USB. (Setting: media_live_hd)
Virtualization Media is an entirely new branch of media Revisor currently composes. This is particularly useful media when provisioning Virtual Guests for Xen or KVM.
Utility Media is a little extra. You can compose utility media that contains programs that help you recover your hard drive, install the system or recover the installation on the system, etc.
Revisor uses it's own repository configuration files like the ones installed in
/etc/revisor/conf.d. These are yum configuration files, but with all variables expanded. Variables such as $releasever and $basearch are being expanded in Revisor's repository configuration files to allow Revisor to cross-compose. Mind that because of this Revisor cannot (and will not) use /etc/yum.conf as a configuration file, although basically this configuration file is perfectly valid.