SPY HILL Research

Poughkeepsie, New York [DIR] [UP]

Kick Me: Automatic installation of
Red Hat/Fedora Linux using Kickstart
(Floppy disk version - deprecated)

Kickstart is a system for automated installation of Red Hat Linux or Fedora Linux. These notes describe the "Kick Me" CD for quickly installing and configuring Linux via kickstart. This is especially useful when setting up a large cluster of computers.

This page describes the older Kick Me floppy disk proceedure, which is now deprecated. You should instead use the newer CD version. The page is kept only for historical reasons.

Last updated: 25 August 2010

Kick-Me CD
Kickstart configuration files
Post-installation processing
Updated RPM packages
host configuration files
pre-reboot tasks
post-reboot tasks
Kickstart is an installation program from Red Hat which makes it possible to customize installation of the Red Hat Linux operating system. Kickstart is also available for Fedora Linux, which is basically a test stand for Red Hat Linux. One can use kickstart to easily create an automated non-interactive installation. Instead of answering all the installation questions manually, including all the details of package selection, you can put your answers and list of packages into a file which will automatically be read by the installation program at startup.

Kick Me is a modified installation CD image created to perform a custom installation of Red Hat or Fedora Linux using Kickstart. (Previous releases of Kick-Me were on floppy disks.) These notes describe how the Kick Me disk works. This system should scale fairly easily to a much larger cluster, provided only that machines in the cluster will boot from the CD drive.

Future versions will also provide the option of installing via a local network, assuming that the packages are all available from an ftp server on the head node, or some other machine on the local network.

Manual intervention is only required to get the process started, and to change CDs during the installation. Everything else is automated in the kickstart configuration.

After the initial installation the system will reboot and then require a brief dialogue to give the system it's name and IP address. It will then reboot itself again with the proper network configuration.

Brief History

The "Kick Me" disks were originally created for Red Hat Linux 6.2. The boot disks Red Hat provided for RH 6.2 did not have room for an extra Kickstart configuration file - they were full to the gills! A modified version of the installation disk was therefore created with enough room to insert a very small kickstart configuration file. As the kickstart configuration evolved the disks needed a name and verison numbers, and so they were called the "Kick Me" disks.

In Red Hat 7.x a little room was left on the default installation images for a kickstart configuration file, though not very much. The Kick Me disks contained a bootable installer and a small kickstart configuration file which could copy to the target some extra installation scripts and rpms.

In Fedora Core 3 it is not possible to boot the installer from a floppy disk -- you need to boot from the first installation CD. But you can still use kickstart and get the kickstart configuration files from a floppy drive. The Kick Me 2.x disks contain just the kickstart configuration files.

For Fedora Core 6 the bootable installation disc1 was modified to contain the kickstart configuration and supporting files, so there is no need for a floppy drive. The initial installation is all done from the CD set rather than the network. The Kick Me 3.x disk is thus a drop-in replacement for install disc 1. A script called KickMe.sh will build a bootable Kick Me CD from the bare installer CD.

Kick Me images

The older Kick Me floppy images may be obtained from here. Here is how to use one of these old floppy images:

  • Copy it to a floppy, as with:
    dd if=kick-me-X.X.img of=/dev/fd0 bs=1k

  • Mount the floppy disk (it's in FAT format) and edit the file ks.cfg to your liking. Comments are included to help. You should at least change your NFS or FTP server IP address and the path to the RedHat directory, or you'll end up trying to load from mine (which probably won't work).

  • Boot from the first installation CD, and at the boot prompt enter
    linux ks=floppy
    It is no longer possible to boot a Linux installer from a floppy, you have to do this from a CD. The Kick Me disks therefore no longer include a bootable image, but only contain the configuration files.


    Kickstart Configuration Files

    The files on the boot disk are:

    % ls -lt /mnt/floppy
    -rwxr-xr-x    1 myers    myers        7744 Jul  3 19:15 ks.cfg
    -rwxr-xr-x    1 myers    myers        6943 Jul  3 19:15 upgrade.cfg
    -rwxr-xr-x    1 myers    myers        7407 Jun  7 18:43 laptop.cfg
    -rwxr-xr-x    1 myers    myers        7407 Jun  7 18:43 wipe.cfg

    The most important file is ks.cfg. It is divided into three parts. The first part simply contains answers to the questions normally asked during an interactive installation. The comments in the file should be enough to understand what is going on, but you can use the "Kickstart options" section of the on-line Kickstart manual to modify it to suit your needs.

    One useful directive in the configuration file is interactive. When this is used, the installation will still ask you questions as it goes along, but it will use the values from the configuration file as the defaults. This has been commmented out in the configuration file, but uncommenting it is very useful for debugging.

    Our version of the configuration file uses DHCP to configure the network connection during the installation. This is set by:

    ### Network Configuration using DHCP
    network --nodns --bootproto dhcp  --hostname kick-me 

    It is almost trivial to change to using a temporary static IP address for the installation. This is set by
    ### Network Configuration using linux-install IP
    network --nodns --hostname kick-me --bootproto static --ip  --netmask  --gateway

    Our configuration file include information for creating a set of Linux partitions:

    clearpart  --linux
    part /boot --size   128  --fstype=ext2
    part swap  --size  1024  --fstype=ext2
    part /tmp  --size   512  --fstype=ext2
    part /var  --size   512  --fstype=ext2
    part /     --size   512  --fstype=ext2
    part /usr  --size  2048  --fstype=ext2
    part /home --size  1024  --fstype=ext2

    The sizes of these partitions are sufficient for CERN Red Hat 7.2.1 but may need to be made larger for a newer release (Red Hat installations are getting bloated).

    If you select "upgrade" rather than the default of "install" then the configuration file upgrade.cfg. is used instead. The first section of this file is simlar to the corresponding section of ks.cfg except that it does not contain partitioning information.

    We have had troubles with AFS after an upgrade unless you first remove any previous non-RPM version of AFS first.


    Package Selection

    The second part of the Kickstart configuration file lists the packages to be installed. This section begins with the line


    You can list packages individually by name (without version numbers). You can also list collections of packages, with the name of the collection preceeded by an "@" sign. For example, to include all the packages that make up the collection called "CERN OpenAFS client" you would add the line

    @ CERN OpenAFS client

    You can also require that a particular package not be installed by preceeding the name with a minus sign. For example, to be sure that the telnet-server package is not installed (a good idea for security these days - use ssh instead) you would simply add the line:



    Post Installation Processing

    The last part of the Kickstart configuration file is for post-procssing after all RPM packages have been installed. The package list ends and the post-processing section begins with the line:


    We have used this section to perform automatic site-specific customization of the installation. How this is done is the topic of the next several sections.

    The instructions in the post-processing section are Bourne shell script commands which are run in a chroot environment. Our version of the configuration file does the following:

    1. Connects via ftp back to the server from where the installation was originally performed and copies three sets of files:
      • Newer RPM packages than those in the original installation
      • A tar file containing all customized configuration files (such as /etc/hosts and /etc/resolv.conf.
      • A script called ks.sh which will be run later.

    2. Installs the newer RPM packages.

    3. Unpacks the tar file from the / directory, thus puttting every cusotmized configuration file in it's proper place.

    4. Looks for the file /root/ks.sh This allows for further customization, which is described further below.

    A log of all post-processing is kept in the file /root/ks.log


    Updated RPM packages

    As currently configured, the post-processing script gets the updated RPM packages via anonymous ftp from the host (linat1.physics.lsa.umich.edu) from the directory /pub/linux/RH7.2/updates. Any RPM package found in this directory is installed, whether or not an older package was initially installed.

    These packages are also installed as part of an upgrade.


    Host Configuration Files

    As currently configured, the post-processing script gets the configuration file tarball via anonymous ftp from the host (noether.vassar.edu) from the directory /pub/linux/local-updates. The name of the file is vc-ligo.tar.gz (it is compressed). This is sorely out of date, so you should change it for your own purpose.

    Pre-reboot tasks

    The file ks.sh in the /root directory is a part of the configuration file tarball. It contains instructions that are to be performed before the post-installation reboot.

    The current version does the following:

    1. Adds an NFS mount of /usr/local to /etc/fstab
    2. Creates several mount point directories
    3. Turns particular services on or off
    4. Changes the LILO boot message

    After this script is finished the system will reboot.


    Post-reboot tasks

    All manual intervention has been saved until after the reboot. A short script which is run after the reboot is actually the rc.local script in /etc/rc.d, which is always run at the end of a boot. It is put in place as a part of the configuration file tarball described above (though it is probably better to have it copied over via ftp). It does the following:
    1. Turns certain services on or off (this is redundant with what's done in ks.sh).
    2. Sets the hostname and IP address (and restart the network with this new information).
    3. Creates an emergency boot disk for the machine (this requires that someone put in a blank floppy disk).
    4. Runs tripwire to record the filesystem status for later comparison for intrusion detection or system administration.
    5. Replaces itself with a more generic rc.local file which will be run in future reboots.


      Copyright © 2010 by Spy Hill Research http://www.Spy-Hill.com/~myers/linux/kickstart/kick-me-floppy.html (served by Islay.spy-hill.com) Last modified: 25 August 2010