systemconfig.conf - System Configurator configuration file
This file, by default located in /etc/systemconfig/systemconfig.conf is
used by the systemconfigurator program to determine what configuration
information should be applied to your system.
The file looks something like the following:
# This is a comment
GATEWAY = 192.168.42.1
DNS1 = 192.168.42.254
DEVICE = eth0
TYPE = dhcp
DEVICE = eth1
IPADDR = 192.168.64.5
NETMASK = 255.255.255.0
TYPE = static
The configuration is divided into blocks of two types: Global
blocks (like [NETWORK] above), and Instance blocks (like
Each instance block can have as many entries as desired. The number
following the type must be unique for each new block.
The following options are available within the config file
The following options exist inside of the NETWORK block:
The default network gateway for the machine. This should be
specified in dotted decimal notation (i.e. 192.168.42.1). On a
multiple interface machine, GATEWAY will be attached to whatever
DEVICE was specified for INTERFACE0
The hostname for the machine. This should be the single word short
hostname, not the fully qualified hostname.
Whether or not to use the short hostname when setting up host names
(only affects some network modules). The value can be YES or NO,
and defaults to NO (i.e. use fully qualified name as host name) if
The domainname of the machine. This is an optional parameter.
The search list for resolv.conf. This should be a string which
looks just as the search string in resolv.conf (i.e.
"sub.domain1.com sub2.domain2.com domain1.com").
DNS1, DNS2, DNS3
You can specify up to three Domain Name Servers in the
configuration file. They should be the dotted decimal ip address
of the domain name servers you wish to use.
(Note: if you are using DHCP to configure your machines, the
nameservers will probably be specified by your DHCP server, hence
these variables will have no effect.)
The following directives may exist for an INTERFACE\d+ block. You may
have as many INTERFACE blocks as you like, as long as each one has a
separate numeral identifier. (i.e. INTERFACE0, INTERFACE1, INTERFACE2
If you wish to specify a GATEWAY you must specify INTERFACE0.
Otherwise there is no requirement on specifying specific INTERFACE
The network device this interface corresponds to. Should be of the
format eth0, tr0, or whatever the device name of your network
interface happens to be.
The protocol to use when booting. There are three valid values for
type: static, bootp, and dhcp. Static indicates that a static ip
will be provided, while bootp and dhcp specify the boot protocol to
use for dynamic address configuration.
The static IP address to be assigned to the host.
The subnet mask to be used for the host.
The following variables can be assigned in the [HARDWARE] section.
The format of the ORDER stanza is a list of module names (for
ORDER = e1000 eepro100 pcnet32
If ORDER is specified, the hardware list detected on the client
will be modified to ensure the listed modules are listed first, and
in the order specified. This will override the normal ordering of
modules (and hence aliases for eth0...ethN) which is based on the
device’s location on the pcbus.
Note: be careful when setting this, as some users have noticed that
not all modules can be loaded in any order.
The following variables can be assigned in the [BOOT] section.
This specifies the prefered boot module (i.e. Boot::Lilo or
Boot::Grub). This can be specified in an environment where
multiple modules may be functional, and the default order System
Configurator tries them is picks one other than what the
The device name that will be mounted as the root file system.
Should be specified in the format "/dev/hda#" or "/dev/sda#".
This specifies which device is your boot device (generally /dev/hda
or /dev/sda). It is required by the boot loader to know where it
should install itself.
How long the boot loader should wait before booting. This value
specifies the number of tenths of seconds to wait. For instance,
TIMEOUT = 50 specifies that the boot loader pause for 5 seconds
before starting the boot process.
The name of kernel to boot by default.
Any kernel parameters you want appended to all kernels specified in
the KERNEL## blocks.
VGA Set the VGA mode for the boot process. This defaults to ’normal’.
(Note: Currently only works for lilo)
This allows you to set any additional line you wish in the global
section of the bootloader conf. (Note: Currently only works for
The following directives may exist for a KERNEL\d+ block. You may have
as many KERNEL blocks as you like, as long as each one has a separate
numeral identifier. (i.e. KERNEL0, KERNEL1, KERNEL2 ...).
The path to the kernel image. Generally of the form
A name for the kernel.
The initial ramdisk to be used by the kernel during boot. This may
be optional if your boot devices are supported without additional
kernel modules. If no initrd is specified, then systemconfigurator
will attempt to create one if it is necessary.
An arbitrary string to be appended to the kernel during boot. This
will often be used for things such as specifying single user mode,
or specifying that cdrom devices should be utilized via the ide-
scsi emulation layer.
The device (e.g. /dev/hda3) that will be used as the root file
system for the kernel. This will be inherited from the global
option if not specified in the image.
For virtual machine support often a two stage kernel loading is
needed. HOSTOS allows to specify the first stage, in XEN this is
called the domain 0 kernel. An example of a XEN kernel
PATH = /boot/xen.gz
LABEL = Xen
APPEND = dom0_mem=131072
HOSTOS = /boot/vmlinuz-dom0
INITRD = /boot/initrd.img-dom0
System Configurator allows for the setting of time zones in a generic
way. By default this option is enabled, however no changes to the
filesystem will be done unless valid time options are added to the
stanza. This will both create the right /etc/localtime file and set
any configuration variables which are needed for normal operation.
The time zone, in glibc format (e.g. America/New_York).
UTC Whether the hardware clock is in UTC. Defaults to true.
System Configurator supports an arbitrary number of user exits. Each
user exit will be run in turn. The user exits are the last things run
by systemconfigurator, so it will have full access to the client
operating system. The first user exit to return a bad exit code will
stop the processing of the rest of the user exits.
Each user exit block takes two stanzas.
CMD The command to be run (e.g. touch). If the command is not found,
or not executable, this user exit will be skipped.
Any parameters needed to be passed to the command. Future versions
may allow the passing of other variables that System Configurator
has access to, but this is not yet supported.
Sean Dague <email@example.com>
Donghwa John Kim <firstname.lastname@example.org>
Joe Greenseid <email@example.com>
systemconfigurator, AppConfig, perl
Hey! The above document had some coding errors, which are explained
Around line 278:
You forgot a ’=back’ before ’=head1’