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
  DNS1 =
  DEVICE = eth0
  TYPE = dhcp
  DEVICE = eth1
  TYPE = static

The configuration is divided into blocks of two types:
Global blocks (like [NETWORK] above), and
Instance blocks (like [INTERFACE0] above).

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

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. ``'').

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 blocks.

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 example):
  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.

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.

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 lilo)


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 /boot/vmlinuz-2.2.17-5.

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.


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

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.

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 <>
  Donghwa John Kim <>
  Joe Greenseid <>


systemconfigurator, AppConfig, perl