Creating a Product image

This page has been converted from the Fedora Project Wiki and cleaned up for publishing here on the Fedora Docs Portal, but it has not yet been reviewed for technical accuracy. This means any information on this page may be outdated or inaccurate. Reviews for technical accuracy are greatly appreciated. If you want to help, see the README file in the source repository for instructions.

Anaconda supports several ways to load new code at runtime. Passing inst.updates=<url> is one way to do this and is documented on the updates page. Another is to include a product.img in the install tree, inside the /images/ directory. It will be applied at runtime and can overwrite any file on the system, just like the updates.img.

One use for a product.img is to add a new installclass to Anaconda. A product image for a new installclass can be created from a directory of files like this:

$ mkdir -p product/run/install/product/pyanaconda/installclasses/
$ vim product/run/install/product/pyanaconda/installclasses/custom.py

Create new installclass, see Anaconda code for examples. Now you can create the product.img:

$ cd product/
$ find . | cpio -c -o | pigz -9cv > ../product.img

Now you can include product.img in the tree, inside /images/.

Alternatively you can now use lorax to create product.img as part of the boot.iso creation process. This is supported by lorax-21.27-1 and later and is documented here in the Lorax source tree.