Documentation for a newer release is available. View Latest

Kickstart Syntax Reference

This appendix describes commands and options available in Kickstart installations. For general information about Kickstart, see Automating the Installation with Kickstart.

Table of Contents

Device names are not guaranteed to be consistent across reboots, which can complicate usage in Kickstart scripts. When a Kickstart option calls for a device node name (such as sda), you can instead use any item from /dev/disk. For example, instead of:

part / --fstype=xfs --onpart=sda1

You could use an entry similar to one of the following:

part / --fstype=xfs --onpart=/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0-part1
part / --fstype=xfs --onpart=/dev/disk/by-id/ata-ST3160815AS_6RA0C882-part1

This provides a consistent way to refer to disks that is more meaningful than just sda. This is especially useful in large storage environments.

While the general principles of Kickstart installations tend to stay the same, the commands and options can change between major releases. You can use the ksverdiff command to display the differences between two versions of the Kickstart syntax. This is useful when updating an existing Kickstart file to be used with a new release. To display a list of changes in syntax between Fedora 30 and 31, use the following command:

$ ksverdiff -f F30 -t F31

The -f option specifies the release to start the comparison with, and the -t option to specify the release to end with. For additional information, see the ksverdiff(1) man page. Also note that you can not use this to display changes in a release that is newer than your system - the version of pykickstart on Fedora 30 can not display changes in Fedora 31.

Additionally, you can review the Fedora 31 Release Notes, available at https://docs.fedoraproject.org/, for a list of changes.

In the following sections, if an option is followed by an equals mark (=), a value must be specified after it. In the example commands, options in square brackets ([ ]) are optional arguments for the command.

Installation Methods and Sources

The following commands control the way Fedora will be installed.

device (optional) - Install Extra Device Drivers

On most PCI systems, the installation program will automatically detect Ethernet and SCSI cards. However, on older systems and some PCI systems, Kickstart requires a hint to find the proper devices. The device command, which tells the installation program to install extra modules, uses the following format:

device moduleName [--opts=]

Replace moduleName with the name of the kernel module which should be installed.

--opts=

Options to pass to the installed kernel module. For example:

device i2c_piix4 --opts="aic152x=0x340 io=11"

driverdisk (optional) - Use a Driver Disk

Driver disks can be used during Kickstart installations to provide additional drivers not included by default. You must copy the driver disks’s contents to the root directory of a partition on the system’s hard drive. Then, you must use the driverdisk command to specify that the installation program should look for a driver disk and its location.

driverdisk partition | --source= | --biospart=
partition

Search for the driver disk image on a local partition. Replace partition with the name of the partition containing the driver disk. Note that the partition must be specified as a full path. For example:

driverdisk /dev/sdb1
--source=

Search for the driver disk in a network location instead of a local partition. For example:

driverdisk --source=ftp://path/to/dd.img
driverdisk --source=http://path/to/dd.img
driverdisk --source=nfs:hostname:/path/to/dd.img
--biospart=

BIOS partition containing the driver disk (for example, 82p2).

install (required) - Configure Installation Method

The default installation mode. You must specify the type of installation from cdrom, harddrive, nfs, liveimg, or url. The install command and the installation method command must be on separate lines. For example:

install
liveimg --url=file:///images/install/squashfs.img --noverifyssl

The installation method commands are:

cdrom

Install from the first optical (DVD) drive on the system.

harddrive

Install from a tree or full installation ISO image on a local hard drive. The tree or ISO image must be on a file system which is mountable in the installation environment. Supported file systems are ext2, ext3, ext4, vfat, or xfs.

install
harddrive --partition= | --biospart= [--dir=]
--partition=

Partition to install from (such as sdb2).

--biospart=

BIOS partition to install from (such as 82p2).

--dir=

Directory containing the installation tree or ISO image.

liveimg

Install from a disk image instead of packages. The image can be the squashfs.img file from a live ISO image, or any file system that the installation media can mount. Supported file systems are ext2, ext3, ext4, vfat, and xfs.

This command also supports installation from tar archives of the root file system. In that case, the file name must end with .tar, .tbz, .tgz, .txz, .tar.bz2, tar.gz, or tar.xz.

install
liveimg --url=  [--proxy= | --checksum= | --noverifyssl=]
--url=

The location to install from. Supported protocols are HTTP, HTTPS, FTP, and file.

--proxy=

Specify an HTTP, HTTPS or FTP proxy to use while performing the installation.

--checksum=

An optional argument with the SHA256 checksum of the image file, used for integrity verification. If you are using a live image provided by Fedora Project, you can find a list of checksums at https://fedoraproject.org/en/verify.

--noverifyssl

Disable SSL verification when connecting to an HTTPS server.

nfs

Install from an NFS server specified. The NFS server must be exporting the full installation ISO image (such as the Fedora Server DVD) or its extracted contents.

install
nfs --server=  [--dir=] [--opts= ]
--server=

Host name of the server.

--dir=

Directory containing the installation tree or ISO image.

--opts=

Mount options to use for mounting the NFS export.

url

Install from a tree on a remote server via HTTP, HTTPS, or FTP.

install
url --url= | --mirrorlist= [--proxy= | --noverifyssl]
--url=

The location to install from. Supported protocols are http, https, ftp, and file.

--mirrorlist=

The mirror URL to install from.

--proxy=

Specify an HTTP, HTTPS or FTP proxy to use while performing the installation.

--noverifyssl

Disable SSL verification when connecting to an HTTPS server.

mediacheck (optional) - Verify Installation Media Integrity

This command will force the installation program to perform a media check before starting the installation, similarly to the rd.live.check boot option (see Verifying Boot Media. This command requires that installations be attended, so it is disabled by default.

ostreesetup (optional) - Install from an OSTree

Used for OSTree installations. See https://wiki.gnome.org/action/show/Projects/OSTree for more information about OSTree. Available options are:

--osname=

Management root for OS installation (required).

--remote=

Management root for OS installation (optional).

--url=

Repository URL (required).

--ref=

Name of branch inside the repository (required).

--nogpg

Disable GPG key verification (optional).

repo (optional) - Configure Additional Repositories

Configures additional DNF repositories that may be used as sources for package installation. This command can be used multiple times in a single Kickstart file.

See the Fedora System Administrator’s Guide, available at https://docs.fedoraproject.org/, for information about the DNF package manager.

Repositories used for installation must be stable. The installation may fail if a repository is modified before the installation concludes.

--name=

The repository ID. This option is required. If a repository has a name which conflicts with another previously added repository, it will be ignored. Because the installation program uses a list of pre-configured repositories, this means that you cannot add repositories with the same names as the preconfigured ones.

--baseurl=

The repository URL. The variables that may be used in DNF repo configuration files are not supported. You may use one of either this option or --mirrorlist, not both.

--mirrorlist=

The URL pointing at a list of mirrors for the repository. The variables that may normally be used in dnf repository configuration files are not supported here. You may use one of either this option or --baseurl, not both.

--install

Make the repository configured in the Kickstart file available on the system after the installation as well. Creates a configuration file for the repository in /etc/yum.repos.d/ on the installed system.

--cost=

An integer value to assign a cost to this repository. If multiple repositories provide the same packages, this number will be used to prioritize which repository will be used before another. Repositories with a lower cost take priority over repositories with higher cost.

--excludepkgs=

A comma-separated list of package names that must not be pulled from this repository. This is useful if multiple repositories provide the same package and you want to make sure it comes from a particular repository. Both full package names (such as publican) and globs (such as gnome-*) are accepted.

--includepkgs=

A comma-separated list of package names and globs that must be pulled from this repository. This is useful if multiple repositories provide the same package and you want to make sure it comes from this repository.

--proxy=

Specify an HTTP, HTTPS or FTP proxy server to use when accessing this repository. This setting does not affect any other repositories or installation sources.

--ignoregroups=true

This option is used when composing installation trees and has no effect on the installation process itself. It tells the compose tools to not look at the package group information when mirroring trees so as to avoid mirroring large amounts of unnecessary data.

--noverifyssl

Disable SSL verification when connecting to an HTTPS server.

url (optional) - Install from an installation tree on a remote server via FTP or HTTP.

Install from an installation tree on a remote server via FTP or HTTP.

--proxy=

Specify an HTTP/HTTPS/FTP proxy to use while performing the install. The various parts of the argument act like you would expect. The syntax is:

[protocol://][username[:password]@]host[:port]
--noverifyssl

For a tree on a HTTPS server do not check the server’s certificate with what well-known CA validate and do not check the server’s host name matches the certificate’s domain name.

--url=

The URL to install from. Variable substitution is done for $releasever and $basearch in the URL.

--mirrorlist=

The mirror URL to install from. Variable substitution is done for $releasever and $basearch in the URL.

--metalink=

The metalink URL to install from. Variable substitution is done for $releasever and $basearch in the URL.

Storage and Partitioning

Commands in this section are used to determine your system’s storage options and partitioning.

autopart (optional) - Automatic Partitioning

Automatically creates partitions: a root (/) partition (1 GB or larger), a swap partition, and an appropriate /boot partition for the architecture. On large enough drives (50 GB and larger), this also creates a /home partition.

The autopart option cannot be used together with the part/partition, raid, logvol, or volgroup options in the same Kickstart file.

--type=

Selects one of the predefined automatic partitioning schemes you want to use. Accepts the following values:

  • lvm: The LVM partitioning scheme.

  • btrfs: The Btrfs partitioning scheme.

  • plain: Regular partitions with no LVM or Btrfs.

  • thinp: The LVM Thin Provisioning partitioning scheme.

    The created partitioning scheme will follow the recommended scheme described at Recommended Partitioning Scheme.

--fstype=

Specify a supported file system (such as ext4 or xfs) to replace the default when doing automatic partitioning.

--nolvm

Do not use LVM or Btrfs for automatic partitioning. This option is equal to --type=plain.

--encrypted

Encrypts all partitions. This is equivalent to checking the Encrypt partitions check box on the initial partitioning screen during a manual graphical installation.

--passphrase=

Provides a default system-wide passphrase for all encrypted devices.

--escrowcert=URL_of_X.509_certificate

Stores data encryption keys of all encrypted volumes as files in /root, encrypted using the X.509 certificate from the URL specified with URL_of_X.509_certificate. The keys are stored as a separate file for each encrypted volume. This option is only meaningful if --encrypted is specified.

--backuppassphrase

Adds a randomly-generated passphrase to each encrypted volume. Store these passphrases in separate files in /root, encrypted using the X.509 certificate specified with --escrowcert. This option is only meaningful if --escrowcert is specified.

--cipher=

Specifies which type of encryption will be used if the Anaconda default aes-xts-plain64 is not satisfactory. You must use this option together with the --encrypted option; by itself it has no effect. Available types of encryption are listed in the Fedora Security Guide, available at https://docs.fedoraproject.org/. Using either aes-xts-plain64 or aes-cbc-essiv:sha256 is strongly recommended.

--luks-version=

Specifies which version of LUKS should be used to encrypt the system. Only relevant if --encrypted is also specified.

--pbkdf=

Sets Password-Based Key Derivation Function (PBKDF) algorithm for the LUKS keyslot. Only relevant if --encrypted is also specified. See the cryptsetup(8) man page for more information.

pbkdf-memory=

Sets the memory cost for PBKDF. Only relevant if --encrypted is also specified. See the cryptsetup(8) man page for more information.

pbkdf-time=

Sets the number of miliseconds to spend with PBKDF passphrase processing. Only relevant if --encrypted is also specified. See information about the --iter-time option in the cryptsetup(8) man page for more information.

Only one of --pbkdf-time= or --pbkdf-iterations= can be specified at the same time.

pbkdf-iterations=

Sets the number of iterations for passphrase processing directly, and avoids PBKDF benchmark. Only relevant if --encrypted is also specified. See information about the --pbkdf-force-iterations option in the cryptsetup(8) man page for more information.

Only one of --pbkdf-time= or --pbkdf-iterations= can be specified at the same time.

bootloader (required) - Configure Boot Loader

Specifies how the boot loader should be installed.

You should always use a password to protect your boot loader. An unprotected boot loader can allow a potential attacker to modify the system’s boot options and gain unauthorized access to the system.

Some systems require a special partition for installing the boot loader. The type and size of this partition depends on whether the disk you are installing the boot loader to uses the Master Boot Record (MBR) or a GUID Partition Table (GPT) schema. For more information, see Boot Loader Installation.

--append=

Specifies additional kernel parameters. To specify multiple parameters, separate them with spaces. For example:

bootloader --location=mbr --append="hdd=ide-scsi ide=nodma"

The rhgb and quiet parameters are always used, even if you do not specify them here or do not use the --append= command at all.

--boot-drive=

Specifies which drive the boot loader should be written to, and therefore which drive the computer will boot from. If you use a multipath device as the boot drive, specify only one member of the device.

The --boot-drive= option is currently being ignored in Fedora installations on IBM System z systems using the zipl boot loader. When zipl is installed, it determines the boot drive on its own.

Not specifying this option will result in the following behavior:

  1. If the --driveorder= option was used, Anaconda will install the boot loader on the first valid device specified in the drive order.

  2. The first present and valid disk containing a /boot partition will be used.

  3. If none of the above applies, then the first valid storage device from the list of all detected devices will be used to install the boot loader.

--leavebootorder

Prevents the installation program from making changes to the existing list of bootable images on UEFI or ISeries/PSeries systems.

--driveorder=

Specifies which drive is first in the BIOS boot order. For example:

bootloader --driveorder=sda,hda
--location=

Specifies where the boot record is written. Valid values are the following:

  • mbr - The default option. Depends on whether the drive uses the Master Boot Record (MBR) or GUID Partition Table (GPT) scheme:

    • On a GPT-formatted disk, this option will install stage 1.5 of the boot loader into the BIOS boot partition.

    • On an MBR-formatted disk, stage 1.5 will be installed into the empty space between the MBR and the first partition.

  • partition - Install the boot loader on the first sector of the partition containing the kernel.

  • none - Do not install the boot loader.

    In most cases, this option does not need to be specified.

--password=

If using GRUB2 as the boot loader, sets the boot loader password to the one specified with this option. This should be used to restrict access to the GRUB2 shell, where arbitrary kernel options can be passed.

If a password is specified, GRUB2 will also ask for a user name. The user name is always root.

--iscrypted

Normally, when you specify a boot loader password using the --password= option, it will be stored in the Kickstart file in plain text. If you want to encrypt the password, use this option and an encrypted password.

To generate an encrypted password, use the grub2-mkpasswd-pbkdf2 command, enter the password you want to use, and copy the command’s output (the hash starting with grub.pbkdf2) into the Kickstart file. An example bootloader Kickstart entry with an encrypted password will look similar to the following:

bootloader --iscrypted --password=grub.pbkdf2.sha512.10000.5520C6C9832F3AC3D149AC0B24BE69E2D4FB0DBEEDBD29CA1D30A044DE2645C4C7A291E585D4DC43F8A4D82479F8B95CA4BA4381F8550510B75E8E0BB2938990.C688B6F0EF935701FF9BD1A8EC7FE5BD2333799C98F28420C5CC8F1A2A233DE22C83705BB614EA17F3FDFDF4AC2161CEA3384E56EB38A2E39102F5334C47405E
--timeout=

Specifies the amount of time the boot loader will wait before booting the default option (in seconds).

--default=

Sets the default boot image in the boot loader configuration.

--extlinux

Use the extlinux boot loader instead of GRUB2. This option only works on systems supported by extlinux.

--disabled

Do not attempt to install a boot loader. This option overrides all other boot loader configuration; all other boot loader options will be ignored and no boot loader packages will be installed.

--nombr

Install the boot loader configuration and support files, but do not modify the MBR.

btrfs (optional) - Create Btrfs Volume or Subvolume

Create a Btrfs volume or subvolume. For a volume, the syntax is:

btrfs mntpoint --data=level --metadata=level [--label=] partitions

One or more partitions can be specified in partitions. When specifying more than one partitions, the entries must be separated by a single space. See Creating Btrfs Volumes and Subvolumes for a demon