10.1 Building a CDBoot Image

In environments where no network infrastructure is available to boot Point of Service systems over the LAN, you can use boot CDs. Boot CDs are also required to deploy POSBranch Servers.

The ImageBuilder tool includes an option to generate CDBoot images. ImageBuilder generates an ISO 9660-compliant CD image that is bootable according to the El Torito specification. The resulting CD contains a minimal Linux system image (CDBoot), a Linux system client image (Minimal, Java, Browser, or Desktop), and a config.image configuration file. The configuration file controls whether the client image is written into a RAM disk or if it must be placed on the hard disk of the booting node.

To build a CDBoot image, you must complete the following steps:

  1. Prepare the client image you want to build with the CDBoot image and generate a test build.

  2. Create the CD setup directory.

  3. Create the config.image file.

  4. Generate the CDBoot image and its associated client image.

  5. Generate the CD ISO image.

  6. Boot the CDBoot Image.

These steps are discussed in the following sections.

10.1.1 Preparing the Client Image

Before creating a CD ISO image, prepare the following:

  • Select which client image you want to build with the CDBoot image (Minimal, Java, Browser, Desktop, POSBranch, or a custom image).
  • Before you create the CDBoot image, generate a test build of the client image to verify there are no problems with the image.

For information on creating a preparing and generating client images, see Section 8.4, Building Images with scr or Section 9.4, Building Images with xscr.

10.1.2 Creating the CD Setup Directory

When you create a CDBoot image, all files must be part of the CD and therefore, must be centrally located in a setup directory. Therefore, the first step in preparing the CDBoot image is putting all the configuration files required for the CDBoot image in a centralized setup directory. This includes the config.image file and any other files required to configure the Point of Service terminal such as XF86Config files.

Use the following command to create a CD setup directory:

mkdir /tmp/cdsetup_directory

After you create the CD setup directory, create the config.image file and copy over any other configuration files required for the CDBoot image.

10.1.3 Creating the config.image File

After creating the CD setup directory, you can create the config.image file. This file contains the parameters required to configure a specific Point of Service terminal during a CDBoot; that is, it indicates which client image the CDboot boot image should load and how to do it. It is an ASCII, line-based file that can be created in a text editor. It must be named “config.image” and it must be located in the CD setup directory.

The format of the config.image file is as follows:

	IMAGE=device;name;version;compressed
	CONF=source;dest,...,source;dest
	PART=size;id;Mount,...,size;id;Mount
	JOURNAL=ext3
	DISK=device
	FEATURE=<contents of the --feature option>
	EXTEND=<contents of the --extend option>
	PARAMS=<additional options of type bool>

Table 10-1 provides a detailed description of each parameter in the config.image file.

Table 10-1 config.image file parameters

Parameter

Variable

Description

IMAGE

 

Specifies the client image (image) and version (version) that will be loaded on the Point of Service terminal.

When you generate the CDBoot image, ImageBuilder uses this information to generate the client image with the CDBoot image.

 

device

The storage device to which the image is linked; for example, /dev/ram1 or /dev/hda2.

NOTE:The Point of Service terminal partition hda2 defines the root file system ( / ) and hda1 is used for the swap partition. The RAM device should not be confused with the hard disk device which uses a partition table. On the RAM disk device, /dev/ram0 is used for the initial RAM disk and cannot be used as storage device for the client image. We recommend that you use /dev/ram1 for the RAM disk.

 

image

The client image to load on the Point of Service terminal.

 

version

The version of the client image to load on the Point of Service terminal.

 

compressed

Specifies a compressed image boot. If the compressed variable is not included, the standard boot process is used.

The the boot fails if you specify Compressed and the image isn't compressed. It also fails if you don't specify “'compressed”' and the image is compressed.

IMPORTANT:The name of the compressed image must contain the suffix .gz and must be compressed with the gzip tool or by using the --gzip option at create time.

CONF

 

Specifies the configuration files to download to the Point of Service terminal. The data is provided in a comma-separated list of source:target configuration files.

 

source

The path to the source configuration file within the directory.

 

dest

An absolute path below the client image where the configuration file is saved.

PART

 

Specifies partitioning data. The data is provided in a comma-separated list.

The first element of the list must define the swap partition. The second element of the list must define the root partition. Each element must include the size (size), the type number (id), and the mount point (Mount).

 

size

The size of the partition.

If a partition should take all the space left on a disk you can set a lower x letter as the size specification.

 

id

The partition type number.

 

mount

The partition mount point.

IMPORTANT:The swap partition must not contain a mount point. Use a lowercase letter x instead.

JOURNAL

 

Specifies a journal to be added to the file system.

The value for this parameter must be set to ext3 because the only journaled file system Novell Linux Point of Service supports is ext3.

NOTE:If you have an existing ext2 image, you can change the file system by setting a flag in the scCashRegister or the scWorkstation objects rather than recreate the image. If ext3 is specified in either LDAP object, the Point of Service terminal extends the file system to ext3 when the image is deployed.

The JOURNAL parameter is evaluated only if the DISK parameter is set.

DISK

 

Defines the device through which the hard disk can be addressed, for example /dev/hda.

This parameter is used only with PART.

FEATURE

 

The value of FEATURE is the value of the --feature option used for building the client image. For information, refer to scr Commands or xscr Commands.

This optional parameter is only pertinent while the client image is created.

EXTEND

 

The value of EXTEND is the value of the --extend option used to extend an image with an additional RPM package. For information, refer to scr Commands.

IMPORTANT:The EXTEND parameter may only be used for CDBoot images generated with scr. The xscr ImageBuilder tool uses the ImageSpecification.xml document to add additional packages to the CDBoot image.

This optional parameter is only pertinent while the client image is created.

PARAMS

 

The value of PARAMS consists of bool options that are used for special actions. The PARAMS parameter is only pertinent while the client image is created.

This parameter can be used with the --gzip option to compress the image. The CDboot linuxrc recognizes a compressed image referring to the suffix .gz. A compressed CD image is uncompressed on the fly while the image is installed.

For POSBranch images, we recommend that you add the following line to the config.image file:

PARAMS=--keep-rpm

This allows you to use the YaST2 interface to configure POSBranch Servers. However, it does add approximately 30 MB to the size of the image. If the size of the image is an issue, you can leave the RPMs out; however, you will not have YaST2 functionality.

10.1.4 Generating the CDBoot Image

To build the CDBoot image, you must use ImageBuilder’s CD boot feature. This feature requires the CD setup directory as a parameter so ImageBuilder can locate the config.image file. It then uses the parameters defined in this file to create the CDBoot image. When you generate the CDBoot image, ImageBuilder also builds the client image designated in the config.image file’s IMAGE parameter. For information on the config.image file format and parameters, see Section 10.1.3, Creating the config.image File.

IMPORTANT:Because ImageBuilder automatically generates the client image when it builds the CDBoot image, the Image Description Trees for both the CDBoot and client images must be complete before generating the CDBoot image.

The CDBoot build command syntax is as follows:

xscr --prepare --build --image image_name-version  
--feature boot_cd:config=CD_setup_directory --destdir directory

NOTE:This procedure is written for xscr. However, the processes are the same for scr and xscr; only the executable changes.

For example, the following command creates the CDboot and client images as specified in the config.image file in the /tmp/cdsetup/ directory and saves the images to /tmp/mycd/.

xscr --prepare --build --image cdboot-2.3.10  
--feature boot_cd:config=/tmp/cdsetup --destdir /tmp/mycd

NOTE:If you plan to create an .iso file of an image that is larger than 650 MB, use the compression option so the resulting image will fit on a standard CD.

10.1.5 Creating the CD ISO Image

After the CDBoot and client images are generated, you are ready to create the final ISO image. ImageBuilder’s --create-iso option builds the following components in the ISO image:

  • The CD directory structure
  • All necessary boot manager files
  • The CDBoot and client images

The command syntax for creating an ISO image is as follows:

xscr --create-iso image_name.iso --destdir directory

NOTE:This procedure is written for xscr. However, the processes are the same for scr and xscr; only the executable changes.

For example, the following command creates the mycd ISO image in the /tmp/mycd/ directory.

xscr --create-iso mycd.iso --destdir /tmp/mycd

IMPORTANT:The --destdir option defines the target and the source directory. The CDBoot and client images you previously created must be located in the destination directory. At the end of the process, you will have three images in the directory: the CDBoot image, the client image, and the final ISO image.

When the process is complete, use a CD recording program to burn only the ISO image (/tmp/mycd/mycd.iso) to a CD.

10.1.6 Booting the CDBoot Image

After you have burned the CDBoot ISO image to a CD, you can use the CD to boot and configure Point of Service terminals.

NOTE:If there are multiple CD drives in the Point of Service terminal, there is no way to designate which CD drive to use; the system chooses the first one it finds. If the Point of Service terminal does not find the drive with the boot CD, it returns BIOS errors. To correct the problem, insert the CD in the bootable CD drive.

Depending on the client image (Minimal, Java, Browser, or Desktop) that resides on the boot CD, you should note the following restrictions:

  • The Point of Service terminal must be upgraded with enough RAM to hold the client image.
  • On diskless Point of Service terminals, there must be enough available RAM to load the first and second stage boot images. Otherwise the terminal returns a kernel panic error.

    NOTE:Keep in mind that onboard VGA reduces the Point of Service terminal’s available RAM.

The behavior of Point of Service terminals booting from CD is similar to Point of Service terminals that receive the first and second stage boot image over the LAN from a Branch Server:

  1. The client image (for example, the Browser image) is installed to a RAM or hard disk drive on the Point of Service terminal.

    The partition information resides in the config.image file located on the CD.

    NOTE:For electronic distributions, the partition information is created based on LDAP entries on the Administration Server,

  2. The installed client image is booted from the RAM or hard disk drive on the Point of Service terminal.