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 [Bootloader] # Type of the bootloader. # Supported values: # # DEFAULT Choose the type by platform. # EXTLINUX Use extlinux 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 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. [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 [Bootloader] 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. [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 文件。