1. Installation Images


Installation images are used to speed installation up. Each separate image contains a compact part of a filesystem. Several images can be combined together to finally create several different complete systems - the only unique image for each such system is a separate image containing RPM (plus other metadata) database for a particular system.

Example of images on media:

Available Images:
  * Base_System
  * Xorg
  * Additional_Tools
  * Metadata_image_*, one for each imageset

Example of imagesets (combinations of images):

Base System:
  + Base_System
  + Metadata_image_1 (Base_System.meta)

Advanced System:
  + Base_System
  + Xorg
  + Metadata_image_2 (Base_System.meta + Xorg.meta)

Superadvanced System
  + Base_System
  + Xorg
  + Additional_Tools
  + Metadata_image_3 (Base_System.meta + Xorg.meta + Additional_Tools.meta)

1.1. Supported Types of Images

  • *.lzma (((files)tar)lzma) - TAR* archive additionally compressed with LZMA

  • *.xz - (((files)tar)lzma) - TAR* archive additionally compressed with newer LZMA

  • *.tar.bzip2, *.tar.gz (((files)tar)bzip2/gzip) - TAR*/Bzip2; resp. TAR*/Gzip archive

* Each TAR archive is created with: --numeric-owner --checkpoint=400 --record-size=10240

1.2. Imagesets Description

If we want to use installation images, we have to describe them first. See the example of /images/images.xml file stored on the first installation media:

<?xml version="1.0"?>
<!DOCTYPE images>
<image_installation xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
    <image_sets config:type="list" >

	<image_set>
	    <!--
		Comma-separated list of patterns included in
		a particular imageset
	    -->
	    <patterns>kde,x11,enhanced_base</patterns>
	    <archs>i386,ixxx,iyyy</archs>
	    <!--
		Matches the image->file of image that contains
		a particular imageset metadata
	    -->
	    <pkg_image>kde-meta.tar.lzma</pkg_image>

	    <!--
		Each imageset can contain one or more images that
		can be combined among all imagesets...
	    -->
	    <images config:type="list">
		<image>
		    <name>KDE [base]</name>
		    <type>tar</type>
		    <file>common-base-root.tar.xz</file>
		</image>
		<image>
		    <name>KDE [xorg]</name>
		    <type>tar</type>
		    <file>common-xorg-root.tar.bzip2</file>
		</image>

		<!-- More 'image' items can be added here -->

		<image>
		    <name>KDE [meta]</name>
		    <type>tar</type>
		    <file>kde-meta.tar.lzma</file>
		</image>
	    </images>
	</image_set>

	<!-- More 'image_set' items are usually added here -->

    </image_sets>
</image_installation>

This XML file describes sets of images from which an installation chooses the best-matching one according to <patterns>...</patterns> item defined in each imageset.

1.3. Images Details

Each imageset contains one or more images. To provide a useful feedback when deploying the images, they have to be described in /images/details-${ARCH}.xml, respectively in file /images/details.xml stored on the first installation media:

<?xml version="1.0"?>
<!DOCTYPE details>
<image_installation_details
    xmlns="http://www.suse.com/1.0/yast2ns"
    xmlns:config="http://www.suse.com/1.0/configns">
    <details config:type="list">
	<image>
	    <file>common-base-root.tar.lzma</file>
	    <!-- optional: number of files in archive -->
	    <files>28004</files>
	    <!-- optional: list of RPMs in archive -->
	    <rpms config:type="list">
		<rpm>ConsoleKit</rpm>
		<rpm>DirectFB</rpm>
		<rpm>DirectFB</rpm>
		<rpm>PolicyKit</rpm>
		<rpm>...</rpm>
	    </rpms>
	    <size>509624320</size>
	</image>
	<image>
	    <file>common-xorg-root.tar.lzma</file>
	    <size>220549120</size>
	</image>
	<image>
	    <file>common-qt.tar.lzma</file>
	    <size>10240</size>
	</image>
	<!-- one description for one image -->
    </details>
</image_installation_details>

${ARCH} is one of: i386, sparc, mips, ppc, alpha, s390, ia64, and x86_64.

Mandatary items for each image (file name) are file and size (in bytes).