4.4. Configuring the default configuration files
You can write the Anaconda configuration files in the .ini file format. The Anaconda configuration file consists of sections, options and comments. Each section is defined by a section header, the comments starting with a # character and the key = value pairs to define the options. The resulting configuration file is processed with the configparser Python configuration file parser.
The default configuration file, located at /etc/anaconda/anaconda.conf, contains sections and options that are supported. The file provides a full default configuration of the installer. You can create custom configuration files in /etc/anaconda/conf.d/ directory.
The following configuration file describes the default configuration:
# Anaconda configuration file.
[Anaconda]
# Run Anaconda in the debugging mode.
debug = False
# List of Anaconda DBus modules that can be activated.
# Supported patterns: MODULE.PREFIX., MODULE.NAME activatable_modules = org.fedoraproject.Anaconda.Modules.
org.fedoraproject.Anaconda.Addons.*
# List of Anaconda DBus modules that are not allowed to run.
# Supported patterns: MODULE.PREFIX., MODULE.NAME forbidden_modules = # List of Anaconda DBus modules that can fail to run. # The installation won't be aborted because of them. # Supported patterns: MODULE.PREFIX., MODULE.NAME
optional_modules =
org.fedoraproject.Anaconda.Modules.Subscription
org.fedoraproject.Anaconda.Addons.*
[Installation System]
# Type of the installation system.
# FIXME: This is a temporary solution.
type = UNKNOWN
# Should the installer show a warning about enabled SMT?
can_detect_enabled_smt = False
[Installation Target]
# Type of the installation target.
type = HARDWARE
# A path to the physical root of the target.
physical_root = /mnt/sysimage
# A path to the system root of the target.
system_root = /mnt/sysroot
# Should we install the network configuration?
can_configure_network = True
# Should we copy input kickstart to target system?
can_copy_input_kickstart = True
# Should we save kickstart equivalent to installation settings to the new system?
can_save_output_kickstart = True
# Should we save logs from the installation to the new system?
can_save_installation_logs = True
[Network]
# Network device to be activated on boot if none was configured so.
# Valid values:
#
# NONE No device
# DEFAULT_ROUTE_DEVICE A default route device
# FIRST_WIRED_WITH_LINK The first wired device with link
#
default_on_boot = NONE
[Payload]
# Default package environment.
default_environment =
# List of ignored packages.
ignored_packages =
# Names of repositories that provide latest updates.
updates_repositories =
# Names of repositories disabled by default.
# Supported patterns: REPO-NAME, PREFIX*, SUFFIX, *INFIX
disabled_repositories =
source
debuginfo
updates-testing
updates-testing-modular
# List of .treeinfo variant types to enable.
# Valid items:
#
# addon
# optional
# variant
#
enabled_repositories_from_treeinfo = addon optional variant
# Enable installation from the closest mirror.
enable_closest_mirror = True
# Default installation source.
# Valid values:
#
# CLOSEST_MIRROR Use closest public repository mirror.
# CDN Use Content Delivery Network (CDN).
#
default_source = CLOSEST_MIRROR
# Enable ssl verification for all HTTP connection
verify_ssl = True
# GPG keys to import to RPM database by default.
# Specify paths on the installed system, each on a line.
# Substitutions for $releasever and $basearch happen automatically.
default_rpm_gpg_keys =
[Security]
# Enable SELinux usage in the installed system.
# Valid values:
#
# -1 The value is not set.
# 0 SELinux is disabled.
# 1 SELinux is enabled.
#
selinux = -1
[Bootloader]
# Type of the bootloader.
# Supported values:
#
# DEFAULT Choose the type by platform.
# EXTLINUX Use extlinux as the bootloader.
# SDBOOT Use systemd-boot as the bootloader.
#
type = DEFAULT
# Name of the EFI directory.
efi_dir = default
# Hide the GRUB menu.
menu_auto_hide = False
# Are non-iBFT iSCSI disks allowed?
nonibft_iscsi_boot = False
# Arguments preserved from the installation system.
preserved_arguments =
cio_ignore zfcp.allow_lun_scan
speakup_synth apic noapic apm ide noht acpi video
pci nodmraid nompath nomodeset noiswmd fips selinux
biosdevname ipv6.disable net.ifnames net.ifnames.prefix
nosmt vga
[Storage]
# Enable iBFT usage during the installation.
ibft = True
# Tell multipathd to use user friendly names when naming devices during the installation.
multipath_friendly_names = True
# Create GPT discoverable partition type IDs, if possible
gpt_discoverable_partitions = True
# Do you want to allow imperfect devices (for example, degraded mdraid array devices)?
allow_imperfect_devices = False
# Btrfs compression algorithm and level. e.g. zstd:1
btrfs_compression =
# Default disk label type.
# Valid values:
#
# gpt Prefer creation of GPT disk labels.
# mbr Prefer creation of MBR disk labels.
#
# If not specified, use whatever Blivet uses by default.
#
disk_label_type =
# Default file system type. Use whatever Blivet uses by default.
file_system_type =
# Default partitioning.
# Specify a mount point and its attributes on each line.
#
# Valid attributes:
#
# size <SIZE> The size of the mount point.
# min <MIN_SIZE> The size will grow from MIN_SIZE to MAX_SIZE.
# max <MAX_SIZE> The max size is unlimited by default.
# free <SIZE> The required available space.
# btrfs The mount point will be created only for the Btrfs scheme
#
default_partitioning =
/ (min 1 GiB, max 70 GiB)
/home (min 500 MiB, free 50 GiB)
# Default partitioning scheme.
# Valid values:
#
# PLAIN Create standard partitions.
# BTRFS Use the Btrfs scheme.
# LVM Use the LVM scheme.
# LVM_THINP Use LVM Thin Provisioning.
#
default_scheme = LVM
# Default version of LUKS.
# Valid values:
#
# luks1 Use version 1 by default.
# luks2 Use version 2 by default.
#
luks_version = luks2
[Storage Constraints]
# Minimal size of the total memory.
min_ram = 320 MiB
# Minimal size of the available memory for LUKS2.
luks2_min_ram = 128 MiB
# Should we recommend to specify a swap partition?
swap_is_recommended = False
# Recommended minimal sizes of partitions.
# Specify a mount point and a size on each line.
min_partition_sizes =
/ 250 MiB
/usr 250 MiB
/tmp 50 MiB
/var 384 MiB
/home 100 MiB
/boot 512 MiB
# Required minimal sizes of partitions.
# Specify a mount point and a size on each line.
req_partition_sizes =
# Allowed device types of the / partition if any.
# Valid values:
#
# LVM Allow LVM.
# MD Allow RAID.
# PARTITION Allow standard partitions.
# BTRFS Allow Btrfs.
# DISK Allow disks.
# LVM_THINP Allow LVM Thin Provisioning.
#
root_device_types =
# Mount points that must be on a linux file system.
# Specify a list of mount points.
must_be_on_linuxfs = / /var /tmp /usr /home /usr/share /usr/lib
# Paths that must be directories on the / file system.
# Specify a list of paths.
must_be_on_root = /bin /dev /sbin /etc /lib /root /mnt lost+found /proc
# Paths that must NOT be directories on the / file system.
# Specify a list of paths.
must_not_be_on_root =
# Mount points that are recommended to be reformatted.
#
# It will be recommended to create a new file system on a mount point
# that has an allowed prefix, but doesn't have a blocked one.
# Specify lists of mount points.
reformat_allowlist = /boot /var /tmp /usr
reformat_blocklist = /home /usr/local /opt /var/www
[User Interface]
# The path to a custom stylesheet.
custom_stylesheet =
# A list of spokes to hide in UI.
# FIXME: Use other identification then names of the spokes.
hidden_spokes =
# Should the UI allow to change the configured root account?
can_change_root = False
# Should the UI allow to change the configured user accounts?
can_change_users = False
# Define the default password policies.
# Specify a policy name and its attributes on each line.
#
# Valid attributes:
#
# quality <NUMBER> The minimum quality score (see libpwquality).
# length <NUMBER> The minimum length of the password.
# empty Allow an empty password.
# strict Require the minimum quality.
#
password_policies =
root (quality 1, length 6)
user (quality 1, length 6, empty)
luks (quality 1, length 6)
# Should kernel options be shown in the software selection spoke?
show_kernel_options = True
[License]
# A path to EULA (if any)
#
# If the given distribution has an EULA & feels the need to
# tell the user about it fill in this variable by a path
# pointing to a file with the EULA on the installed system.
#
# This is currently used just to show the path to the file to
# the user at the end of the installation.
eula =
[Timezone]
# URL for geolocation data provider.
# This is used for automatic language and timezone detection.
#
# Known valid providers:
#
# https://geoip.fedoraproject.org/city
# https://api.hostip.info/get_json.php
#
# If left empty, geolocation does not run.
#
geolocation_provider = https://geoip.fedoraproject.org/city
[Localization]
# Should geolocation be used when setting the language ?
#
use_geolocation = True
Content of files in the conf.d directory overrides defaults from anaconda.conf. The files are named in a <priority>-<config-description>.conf form, for example 100-my-distribution.conf. The file with the highest priority is applied last, overriding all configuration files applied earlier.
Here’s an example of a customization configuration file content:
# Anaconda configuration file for My Distribution
[Profile]
Define the profile.
profile_id = my_distribution
[Profile Detection]
Match os-release values.
os_id = my_distribution
[Network]
default_on_boot = NONE
[Storage]
file_system_type = xfs
default_partitioning =
/ (min 2 GiB, max 50 GiB)
/home (min 20 GiB, free 10 GiB)
/test (size 256 MiB)
swap
[Storage Constraints]
swap_is_recommended = True
[User Interface]
custom_stylesheet = /usr/share/anaconda/pixmaps/my_distribution.css