SPY HILL Research

Poughkeepsie, New York [DIR] [UP]

Kickstart Installation on Red Hat/Fedora Core Linux

Kickstart is a system for automated installation of Red Hat Linux or Fedora Core Linux. Instead of answering all the installation questions manually, one can put configuation information and packages selection into a file which is read and executed by the installation program. This page provides general information, links and some tools for creating or manipulating kickstart configuration files and boot images.

A separate page describes the "Kick Me" boot configuration disks in more detail.

Last updated: 25 August 2010

Red Hat Linux comes with a system for automatic installation called Kickstart. 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. This can be very useful for installing a specific known configuration on a collection of machines, such as a grid cluster or a Beowulf cluster. It is also fairly easy to copy files or run shell scripts non-interactively to customize the installation.

Listed below are:

The scripts Rachael and Randy are pretty rough and should only be used as guides for helping you make your own Kickstart configurations. This is not highly automated or easy or clean. Good luck (you'll need it).

Documentation about Kickstart is available from Red Hat at:

Note that there have been some changes to the configuration files commands between RH 6.x and RH 7.x. Most notably, an FTP installation used to be done with the ftp command but is now performed using the url command. The current examples are for RH 7.3, but I plan to update them to Fedora Core 3 when I can.

Kick Me disks

"Kick Me" is a floppy disk image created to perform a custom installation of Red Hat or Fedora Core Linux over the network using Kickstart. Details of the "Kick Me" disk can be found here

Kickstart Disk Images

The disk images at the link below are slightly modified version of the standard Red Hat or CERN boot disks. They include a ks.cfg configuration file, but you can also replace this with your own modified version if you like. Here is how to use these images.
  1. Download one of these disk images as a binary file (you'll probably need to right-click on the link to download):
    "Kick-Me" Kickstart Boot Disk Image 1.11 for Red Hat Linux 7.3 (as of 5 October 2003)
    Kickstart Boot Disk Image for CERN Red Hat Linux 7.2.1 (as of 1 July 2002)
    Kickstart Boot Disk Image for Red Hat Linux 6.2 (as of 18 December 2001)

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

  3. 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).

  4. Boot from that flopppy, and at the boot prompt enter
    linux ks=floppy

Sample Configuration File

A copy of this file, or something close to it, is already on the boot disk image, but I've put a copy here so that you can look through it without having to get the disk image.
This file is for the CERN/Red Hat Linux 7.2.1 installations for our ATLAS Grid Testbed site.

You should consider this as just a starting point for building your own ks.cfg file. In the least, you should edit it to change the networking and server information.

Alternate Consoles

A lot of information is made available during the installation process on alternate consoles. Press ALT and a function key to switch to a different console. This is especially useful if the installation fails, because you can get more detailed error messages this way, or even a shell.

Console 1 (ALT-F1): graphical installation status (what's normally shown during installation).

Console 2 (ALT-F2): bash shell (once the installation has progressed far enough).

Console 3 (ALT-F3): Installation progress log, including module insertion. The cause of an error can often be found here.

Console 4 (ALT-F4): Appears to be a log of raw device/SCSI information.

Console 5 (ALT-F5): Appears to be a log of filesystem operations.

Post-installation processing

It is possible to run shell commands after package installation. It is even possible to copy over files via FTP and install them, and to run shell scripts that have been copied over. Here is an outline of how our installation system works at U-M:
  1. First, a few simple commands are executed from the ks.cfg file to copy over other files via FTP. (See the example ks.cfg file for an example of how this is done non-interactively. Look for the commands at the end of the file, after the %post directive.)
  2. One of the files is linatX-install.tar which is unpacked under / to put configuration files in place.
  3. Another file is a script called ks.sh which is copied to /root and then run to finish the configuration process.
  4. The file /etc/rc.d/rc.local is also run once to finish configuration (and then it replaces itself with a simpler version of itself).

Rachael - creating a custom configuration file

This script will copy the configuration of a Red Hat Linux machine into a kickstart configuration file ks.cfg so that you can use it for a kickstart installation to make a replica of the original machine. The main thing it does is create a list of installed packages. It tries to verify that they are actually available from the installation source, which may or may not be too restrictive. (A Kickstart installation will fail if a package in the list of those to install is not available.)

The name comes from the Rachael character from Blade Runner. She was was a "replicant". (Whether Deckard was a replicant is debatable.)

The current version of Rachael creates a Kickstart file for RH 6.2, but I will probably update it for RH 7.2 soon.

Randy - creating a custom initial RAM disk

The original point of this script was to make a copy of an initial RAM disk (initrd) from one of the RedHat installation bootdisks while making it possible to remove unneeded modules to make space on the disk for a Kickstart configuration file. But you can also use it to add modules for devices that are not included in the original boot disk.

Note: This is not an automatic tool, it just provides a lot of assistance. You still have to know what the hell you are doing.

If you are at the point of digging into this kind of thing in earnest then you may want to read the script /sbin/mkinitrd (and the man page for it) for a better idea of how an initrd is constructed.

Eric Myers <myers@vassar.edu> 5 August 2003