4.3. 自定义默认配置
您可以创建您自己的配置文件,并使用它来自定义安装程序的配置。
4.3.1. 配置默认配置文件 复制链接链接已复制到粘贴板!
您可以以 .ini
文件格式编写 Anaconda 配置文件。Anaconda 配置文件由section、options 和 comments 组成。每个 section 都由一个 [section]
标头定义,注释以 #
字符开头,键用来定义 options
。生成的配置文件使用 configparser
配置文件解析器进行处理。
默认配置文件位于 /etc/anaconda/anaconda.conf
中,包含记录的部分和支持的选项。该文件提供了安装程序的完整默认配置。您可以修改 /etc/anaconda/product.d/
中的产品配置文件,以及 /etc/anaconda/conf.d/
中的自定义配置文件。
以下配置文件描述了 RHEL 9 的默认配置:
[Anaconda] # Run Anaconda in the debugging mode. debug = False # Enable Anaconda addons. # This option is deprecated and will be removed in the future. # addons_enabled = True # List of enabled Anaconda DBus modules. # This option is deprecated and will be removed in the future. # kickstart_modules = # 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] # 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 [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 = # 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 [Boot loader] # Type of the boot loader. # Supported values: # # DEFAULT Choose the type by platform. # EXTLINUX Use extlinux as the boot loader. # 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 rd.znet rd_ZNET 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 [Storage] # Enable dmraid usage during the installation. dmraid = True # Enable iBFT usage during the installation. ibft = True # Do you prefer creation of GPT disk labels? gpt = False # Tell multipathd to use user friendly names when naming devices during the installation. multipath_friendly_names = True # Do you want to allow imperfect devices (for example, degraded mdraid array devices)? allow_imperfect_devices = False # 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. # 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 200 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 does not 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 = # The path to a directory with help files. help_directory = /usr/share/anaconda/help # 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) [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 =
[Anaconda]
# Run Anaconda in the debugging mode.
debug = False
# Enable Anaconda addons.
# This option is deprecated and will be removed in the future.
# addons_enabled = True
# List of enabled Anaconda DBus modules.
# This option is deprecated and will be removed in the future.
# kickstart_modules =
# 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]
# 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
[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 =
# 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
[Boot loader]
# Type of the boot loader.
# Supported values:
#
# DEFAULT Choose the type by platform.
# EXTLINUX Use extlinux as the boot loader.
#
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 rd.znet rd_ZNET 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
[Storage]
# Enable dmraid usage during the installation.
dmraid = True
# Enable iBFT usage during the installation.
ibft = True
# Do you prefer creation of GPT disk labels?
gpt = False
# Tell multipathd to use user friendly names when naming devices during the installation.
multipath_friendly_names = True
# Do you want to allow imperfect devices (for example, degraded mdraid array devices)?
allow_imperfect_devices = False
# 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.
#
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 200 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 does not 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 =
# The path to a directory with help files.
help_directory = /usr/share/anaconda/help
# 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)
[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 =
4.3.2. 配置产品配置文件 复制链接链接已复制到粘贴板!
产品配置文件有一个或者两个额外的部分来识别这个产品。[Product]
部分指定产品的产品名称。[Base Product]
部分指定基础产品的产品名称(如果有的话)。例如:Red Hat Enterprise Linux 是 Red Hat Virtualization 的基本产品。
安装程序在加载指定产品的配置文件之前加载基础产品的配置文件。例如:它会首先载入 Red Hat Enterprise Linux 配置,然后载入 Red Hat Virtualization 的配置。
请参阅 Red Hat Enterprise Linux 的产品配置文件示例:
Anaconda configuration file for Red Hat Enterprise Linux. Show a warning if SMT is enabled.
# Anaconda configuration file for Red Hat Enterprise Linux.
[Product]
product_name = Red Hat Enterprise Linux
[Installation System]
# Show a warning if SMT is enabled.
can_detect_enabled_smt = True
[Network]
default_on_boot = DEFAULT_ROUTE_DEVICE
[Payload]
ignored_packages =
ntfsprogs
btrfs-progs
dmraid
enable_closest_mirror = False
default_source = CDN
[Boot loader]
efi_dir = redhat
[Storage]
file_system_type = xfs
default_partitioning =
/ (min 1 GiB, max 70 GiB)
/home (min 500 MiB, free 50 GiB)
swap
[Storage Constraints]
swap_is_recommended = True
[User Interface]
help_directory = /usr/share/anaconda/help/rhel
[License]
eula = /usr/share/redhat-release/EULA
请参阅 Red Hat Virtualization 产品配置文件示例:
Anaconda configuration file for Red Hat Virtualization.
# Anaconda configuration file for Red Hat Virtualization.
[Product]
product_name = Red Hat Virtualization (RHVH)
[Base Product]
product_name = Red Hat Enterprise Linux
[Storage]
default_scheme = LVM_THINP
default_partitioning =
/ (min 6 GiB)
/home (size 1 GiB)
/tmp (size 1 GiB)
/var (size 15 GiB)
/var/crash (size 10 GiB)
/var/log (size 8 GiB)
/var/log/audit (size 2 GiB)
swap
[Storage Constraints]
root_device_types = LVM_THINP
must_not_be_on_root = /var
req_partition_sizes =
/var 10 GiB
/boot 1 GiB
要为您的产品自定义安装程序配置,您必须创建一个产品配置文件。创建名为 my-distribution.conf
的新文件,其内容与上例类似。将 [Product]
部分中的 product_name 更改为产品的名称,如 My Distribution。产品名称应当与 .buildstamp
文件中使用的名称相同。
创建自定义配置文件后,请按照创建 product.img 文件 部分的步骤来创建包含自定义的新 product.img
文件,以及 创建自定义引导镜像以使用包含您的更改创建新的可引导 ISO 文件。
4.3.3. 配置自定义配置文件 复制链接链接已复制到粘贴板!
要自定义与产品名称无关的安装程序配置,您必须创建一个自定义配置文件。要做到这一点,创建一个名为 100-my-configuration.conf
的新文件,其内容类似于 配置默认配置文件中的示例,省略 [Product]
和 [Base Product]
部分。
创建自定义配置文件后,请按照创建 product.img 文件 部分的步骤来创建包含自定义的新 product.img
文件,以及 创建自定义引导镜像以使用包含您的更改创建新的可引导 ISO 文件。