home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog Special Edition 1: Linux
/
CD1.iso
/
doc
/
README.ks
< prev
next >
Wrap
Text File
|
1998-10-05
|
18KB
|
479 lines
Kickstart
=========
Due to the need for automated installation, Red Hat has created the
"kickstart" installation method. With this method a system administrator
can create a single file that defines the answers to the questions that
one would normally be asked in a regular Red Hat install. This procedure
is powerful enough that often times one kickstart configuration file can
actually be used for multiple machines.
The general procedure to use kickstart is to create the kickstart file
and then place that file somewhere the install can find it. That is
on the boot media (floppy) or on the network. The network is the most
common use since kickstart is usually used on networks of machines anyway.
Kickstart is only available for the CD-ROM and NFS install methods. You
can not do FTP, local hard disk, or SMB installs with kickstart. For
a detailed kickstart config file, see doc/sample.ks on the Red Hat
CD-ROM or on the FTP site.
Where to put your kickstart file
--------------------------------
From Floppy
To begin a kickstart install, you must include the "ks" option at the boot
prompt. If you want to get your kickstart file from the floppy, the
boot prompt command would be "boot: linux ks=floppy". If you want to get
your kickstart file from the network, you would simply do "boot: linux ks".
In the case of the floppy, the kickstart file must be named "ks.cfg" and
must reside in the top level directory of the boot floppy. The Red Hat
boot floppy images are in MS-DOS format, so you should be able to easily
copy the file there under Linux using the mtools 'mcopy' command. The
floppy method is most commonly used for CD-ROM kickstart installs.
From the Network
Network installs using kickstart are common because administrators can
easily automate the install of large amounts of machines in a network
environment quickly and painlessly. The general topology would be for
the administrator to have a BOOTP/DHCP server as well as an NFS server
on the local network. The BOOTP/DHCP server would be used to give the
client it's networking information and the NFS server would be used to
hold the installation media. These servers can be the same physical
machine, but they don't need to be.
To do an NFS kickstart install, you must have a BOOTP/DHCP server on
your network and it must have configuration information setup in it for
the machine you are attempting to install. The BOOTP/DHCP server will
be used to give the client it's networking information and can also be
used to specify the location of the kickstart configuration file. If
a file is specified by the BOOTP/DHCP server, the client will attempt
an NFS mount of the file path and will copy the specified file to the
client and use it as the kickstart configuration file. The strings
you need to set vary based on the BOOTP/DHCP server you use, but in
the DHCP server shipped with Red Hat you want to use "filename" for
the filename and "next-server" to set the NFS server name.
If the filename returned by the BOOTP/DHCP server ends in a "/" then
it is interpreted as a path only. That path is mounted and a file
by the default filename is copied from there. That default filename
is <ip-addr>-kickstart, where <ip-addr> is the client's IP address
in dotted decimal notation (for example, a filename for a machine
with IP 10.10.0.1 would be "10.10.0.1-kickstart").
If you don't specify a server name, then the install will default to
the server that answered the BOOTP/DHCP request. If you don't specify
a path or filename then it will default to trying to mount "/kickstart"
from the BOOTP/DHCP server and then it will try to grab the file using
the default filename (described above as <ip-addr>.kickstart).
The kickstart file
------------------
First, items must be specified *in order*. It is not a good idea to
try to change the order of the required items. Items that aren't
required can be omitted. Of the items that go in the kickstart
file (specified later in this document), the only ones that matter
to *upgrades* are language, installation method, device specification,
keyboard setup, the "upgrade" keyword, and the LILO configuration.
Specifying anything additional in an *upgrade* will be ignored
(including package selection). Omitting any required step, however,
will simply result in the kickstart process stopping to ask for
an answer to that question as if the install were running normally.
Once the answer is given, the kickstart install will continue
normally (unless it hits another unanswered question).
The kickstart file is a simple text file. You can create it by
editing the sample.ks file found in the doc/ directory of a
Red Hat CD image, or you can create it from scratch. You should
be able to edit it with any text editor or word processor that
can save as ASCII text.
Language
The first item that must appear is the language setting. You must
specify a language for the install to run in and setup your system
for. This must be a two letter ISO language code, such as
"en" for English, "de" for German, "fr" for French, etc. The variable
you must set is "lang". An example for setting this to English would
be:
lang en
Networking
The next item you need to set in the kickstart file is the networking
information. You must tell the system how it is going to setup
networking for itself. This item is optional and if omitted the
machine will be configured for stand alone operation.
You may specify networking one of three major ways, static, DHCP,
or BOOTP. Static means that you are going to tell the machine all
the networking information it needs and it will keep that. DHCP
and BOOTP specify that you are going to have the machine use each
of those protocols, respectively, at each boot to get it's networking
information.
To setup a machine to use DHCP to get it's networking, you would
put the following in the kickstart configuration file:
network --bootproto dhcp
To setup a machine to use BOOTP to get it's networking, you would
put the following in the kickstart configuration file:
network --bootproto bootp
For static networking, you have to give the machine several items.
Those are the IP address, netmask, gateway IP, and nameserver IP.
An example of how to do this would be:
network --bootproto static --ip 10.0.2.15 --netmask 255.255.255.0 --gateway 10.0.2.254 --nameserver 10.0.2.1
Note that there are some restrictions on this. You must do this all
on *one* line; you cannot wrap lines using a backslash, for example.
Also, you can only specify one nameserver here. You could use the
%post section (described later) to add more nameservers if you need
to.
Installation Method
The next item you need to setup is the installation method. This is
a required field. You have two choices, NFS or CD-ROM. For NFS
you must also pass the server name and directory to mount as arguments.
To do an NFS install, you would do something like:
nfs --server hostname.of.server --dir /path/to/RH/CD/image
If you are doing this via CD-ROM, you would simply give it the line
"cdrom" like so:
cdrom
Optional Hardware
The next item in the kickstart configuration is optional hardware
information. For most PCI hardware you can omit this step as it
will be autoprobed (IDE hard disks and common PCI cards all fit
this criteria). For other items, you may need to specify it here.
To specify a device, start with the "device" keyword, followed by the
type of device:
ethernet -- for ethernet cards.
scsi -- for scsi cards.
cdrom -- for non-scsi, non-ide cdrom cards (eg., sound cards with
proprietary CDROM interfaces).
Optional parameters that are required by a device can also be specified
by using the --opts option. Enclose the paratmeters in quotes after
--opts.
Note that you can specify multiple types of devices. For example, if you
know the machines you'll be kickstart-installing have either an Adaptec
1542 or a Buslogic card, you can enter both in the kickstart file. But
be aware that the install uses only the first card found, so order the
device entries appropriately...
An example for an ISA 3com ethernet card would be:
device ethernet 3c509 --opts "io=0x330, irq=7"
An example of a Adaptec 1542 would be:
device scsi aha154x
An example of a SoundBlaster CD-ROM would be:
device cdrom --opts "io=0x240"
Keyboard
The next item you need to specify is the correct code for your
keyboard type. For US keyboards, the type is "us". For the others,
please see the output of the kbdconfig program (or just set it to
"us" and run kbdconfig on the installed system and set it properly
after the install).
An example of this would be:
keyboard us
Partitioning
The hard disk in the machine must be partitioned before an install
can take place. In this phase we will describe how to specify how
to partition a disk using kickstart.
First, if you are installing to new machines, you will want to use
the "zerombr" command to clear the current partition information
because it is usually bogus. So, you would add:
zerombr yes
in that case. If you are installing to machines that have partition
information that you want to leave -or- that you want to change (even
if you want to completely change it) you would do:
zerombr no
The next command is completely optional but handy. If you want to
remove all partitions or simply remove all Linux related partitions,
you can use "clearpart". For example, to clear all "Linux native"
and "Linux swap" partitions, you could do:
clearpart --linux
To clear *all* partitions from a disk, you would do:
clearpart --all
The only options clearpart supports currently are --linux and --all.
The next step is to specify the partitions you want to create. These
will only be created using the free space (ie if the machine had FAT
or FAT32 partitions and you had done "clearpart --linux" your FAT
partitions would remain untouched). You need to enter one partition
per line using the following format:
part <mntpt> --size <size in megs> [--grow] [--maxsize <size in megs>]
<mntpt> is the location you are going to mount that partition in your
installed system (for example, you must at least have a "/" partition).
<size in megs> is the size of the partition in megabytes. You can
optionally specify that the partition be "growable" using --grow.
Making a partition "growable" does *not* mean that you can later
increase it's size (that isn't supported by the ext2 filesystem at
this time). What it means is that when you specify partitions you
are doing so using the "free space". Since that can vary and you
probably want to use it all, you can tag partitions as "growable"
and the install code will automatically increase the size of the
partitions tagged as growable to use that space. If you have
multiple partitions tagged as "growable" then the extra space is
split evenly among them. You can limit the size of some partitions
with the optional --maxsize argument, too.
For example, let's say you know your smallest disk is 1G out of a
set of machines you plan to install using the same kickstart config
file. You could use a partitioning scheme like the following:
zerombr no
clearpart --all
part / --size 250
part swap --size 50
part /usr --size 500 --grow --maxsize 800
part /tmp --size 100 --grow
This will clear all partitions. It then sets up a 250M root filesystem.
The next item creates a 50M swap partition. The next item will setup a
500M *minimum* /usr that could grow to a maximum of 800M. The next
item will setup a 100M *minumum* /tmp. So, for 1G of total disk space,
you would end up with a 250 root, 550M /usr, and 150M /tmp. If your
machine had 2G of total space, you would get a 250M root, 800M /usr,
and 900M /tmp.
Install/Upgrade Selection
The next item to specify is whether you are doing an install or an
upgrade of an existing install. For a fresh install, use:
install
For an upgrade of an existing system, use:
upgrade
Note again that for upgrades, the only items that matter are installation
media (CD-ROM or NFS), device specification (if necessary), keyboard
setup, install/updgrade specification (of course!), and LILO configuration.
Mouse
You need to set the "mouse" variable to the type of mouse you have.
To find out a list of usable options, run 'mouseconfig --help'.
The default device is correctly set for bus mice. /dev/cua0 is the
default for serial mice, but that can be overridden with the "--device"
option. Follow simply with the device name, like "cua1". If three
button emulation is required, specify "--emulthree".
For example, for a three button PS/2 mouse, you would use:
mouse --kickstart generic3ps/2
For a two button PS/2 mouse, use:
mouse --kickstart genericps/2
For a two button Microsoft mouse on your second serial port, use:
mouse --kickstart microsoft --device cua1
Timezone
You need to specify the timezone that your machine will live in. You
do this with the "timezone" command. You can run /usr/sbin/timeconfig
on a RH machine to see what all the valid options are. If you use
GMT/UTC on your system clock, add the --utc option. An example of
the US Eastern with GMT for the system clock would be:
timezone --utc US/Eastern
X Window Setup
The next item is the X Window setup area. The installation program
will normally find common PCI video hardware and will know which
X server to install. The command for X configuration is "xconfig".
If your card isn't probed properly, you can use --card to specify
the card. You can use "Xconfigurator --help" on a running Red Hat
system to get a list of supported cards to choose from. You must
use one of those settings.
If your card isn't in the list but *is* supported by one of the
existing servers, you can simply install the proper server by using
the "--server" option to "xconfig". Again, use "Xconfigurator --help"
to find a list of server names.
You also need to specify a monitor type. If you don't, the installation
will assume 640x480@60hz. Use the --monitor option to specify something
else. Again, "Xconfigurator --help" will list all valid monitor types.
If your monitor isn't listed, you can also list the actual monitor
data using the --hsync and --vsync options for horizontal and vertical
sync rates, respectively. The rates may be single numbers (representing
kilohertz and megahertz, as appropriate), groups of numbers separated by
commas, or two numbers separated by a dash (signifying a range). For
example: --hsync "31.5,35.5,50-65" --vsync "50-70"
An example for a machine where the video card is probed properly would
be:
xconfig --monitor "tatung cm14uhe"
An example for a machine where nothing is probed and the monitor isn't
in the list might be:
xconfig --server "Mach64" --hsync "31.5,35.5,50-65" --vsync "50-70"
Root Password
You can put the root passwd in the kickstart file in the clear (in which
case it would go over the network in the clear on an NFS install) or
you can specify an encrypted password to be used. To specify an actual
password in the kickstart file, you would do something like:
rootpw mypasswd
If you wanted to use an encrypted password, grab it out of /etc/passwd
(or somewhere else, if necessary) and use:
rootpw --iscrypted encryptedpasswdstring
LILO Configuration
For machines that use LILO (Intels), you can specify the LILO configuration
using the "lilo" keyword. By default you can just use:
lilo
and have LILO installed on the MBR and automatically configured to boot
your Linux install as well as a DOS or Windows install if you have one.
If you want to change the default location, you can do so with the
--location switch. It will take three options:
mbr - put LILO on the master boot record (default)
partition - put LILO on the beginning of the root partition
none - don't install LILO at all (you need your own method of booting)
You can also use the --append switch to add an "append=" line to
the Linux section if you need to do things like set memory sizes,
etc. For example, to set LILO up on the MBR on a machine with
memory size 128M, you could do:
lilo --append "mem=128M" --location mbr
Also note that the mem option *shouldn't* be necessary as of Red Hat
5.2.
Package Selection
You can use the "%packages" keyword to start the beginning of the
section that lists the packages you want to install (this is for
*install* only because the upgrade only upgrades the packages that
exist).
Packages can be specified by entire components or by individual
package names. See the RedHat/base/comps file on any Red Hat
CD image for a list of those. The components are the lines
with a number and space in front of them and each of their packages
follows. The individual packages have nothing in front of them.
Most folks will only need to list the components that they wish
to have installed. Also, the "base" component is always selected
by default, so you don't need to specify it.
An example would be:
%packages
@ Networked Workstation
@ C Development
@ Web Server
@ X Window System
bsd-games
New for 5.2 and later releases is the option to specify "Server"
or "Workstation". This installs the same package set as the
normal mode install for those two options. ### ED: Reference your
package description tags here.
An example would be:
%packages
@ Workstation
As you can see, specify components with an "@" symbol followed by
a space and then the full name as given in the "comps" file. Specify
individual packages with no additional characters (just like "bsd-games"
above).
Post Installation Configuration
You have the option of adding commands to be run on the installed
system after the install is complete. This section must be last
in the kickstart file and starts with "%post".
You can access the network in a %post if it was previously configured,
but you don't have access to nameservice. So use IP addresses only.
An example of a post install script would be:
%post
# add comment to /etc/motd
echo "Kickstart-installed Red Hat Linux `/bin/date`" > /etc/motd
# add another nameserver
echo "nameserver 10.10.0.2" >> /etc/resolv.conf