Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.3. Kickstart 语法参考

23.3.1. Kickstart 语法变化

Kickstart 安装的一般原则保持不变,Red Hat Enterprise Linux 的主要发行本之间的命令和选项可能有所变化。请使用 ksverdiff 命令显示两本版本间 Kickstart 语法的不同。这在更新现有 Kickstart 文件,将其用于新发行本时很有用。要显示 Red Hat Enterprise Linux 6 和 7 之间语法的变化,请使用以下命令:
$ ksverdiff -f RHEL6 -t RHEL7
-f 指定要比较的第一个发行本,-t 指定要比较的最后一个发行本。详情请查看 ksverdiff(1) man page。

23.3.2. Kickstart 命令及选项

注意

如果选项后接等号(=),则必须指定一个值。在示例命令中,括号([ ])中的选项是该命令的自选参数。
auth 或者 authconfig(自选)
使用 authconfig 命令为系统设置认证选项,也可以在安装完成后在命令行中运行该命令。详情请查看 authconfig(8) 手册及 authconfig --help 命令。默认使用带阴影密码。

警告

使用包含 SSL 协议的 OpenLDAP 以保证安全时,请确定在该服务器配置中禁用了 SSLv2SSLv3 协议。这是因为有 POODLE SSL 漏洞(CVE-2014-3566)。详情请查看 https://access.redhat.com/solutions/1234843
  • --enablenis - 打开 NIS 支持。默认情况下,--enablenis 使用它在网络中找到的任意域。必须手动使用 --nisdomain= 选项设置域。
  • --nisdomain= - NIS 服务使用的 NIS 域名。
  • --nisserver= - NIS 服务使用的服务器(默认报文)。
  • --useshadow 或者 --enableshadow - 使用影子密码。
  • --enableldap - 打开 /etc/nsswitch.conf 中的 LDAP 支持,允许系统在 LDAP 目录中检索用户信息(比如 UID、主目录和 shell)。要使用此选项就必须安装 nss-pam-ldapd 软件包。还必须使用 --ldapserver=--ldapbasedn= 指定服务器和基础 DN
  • --enableldapauth - 使用 LDAP 作为验证方法。这启用了用于验证和更改密码的 pam_ldap 模块,它使用 LDAP 目录。要使用这个选项,则必须安装 nss-pam-ldapd 软件包。还必须用 --ldapserver=--ldapbasedn= 指定服务器和基本 DN。如果您的环境没有使用 TLS (Transport Layer Security),则请使用 --disableldaptls 选项确保结果配置文件可以使用。
  • --ldapserver= - 如果指定 --enableldap 或者 --enableldapauth,则可以使用这个选项来指定所使用的 LDAP 服务器名称。在 /etc/ldap.conf 文件中设置这个选项。
  • --ldapbasedn= - 如果指定 --enableldap 或者 --enableldapauth,则可以使用这个选项指定存放用户信息的 LDAP 目录树中的 DN。在 /etc/ldap.conf 文件中设置这个选项。
  • --enableldaptls - 使用 TLS(传输层安全)查寻。该选项允许 LDAP 在验证前向 LDAP 服务器传送加密的用户名和密码。
  • --disableldaptls - 不使用 TLS(传输层安全)在使用 LDAP 验证的环境中查找。
  • --enablekrb5 - 使用 Kerberos 5 验证用户。Kerberos 本身不知道主目录、UID 或 shell。如果您启用了 Kerberos,则必须启用 LDAP、NIS、Hesiod 或者使用 /usr/sbin/useradd 命令以便使这个工作站获知用户的帐号。如果使用这个选项,则必须安装 pam_krb5 软件包。
  • --krb5realm= - 您工作站所属的 Kerberos 5 网域。
  • --krb5kdc= - 为网域要求提供服务的 KDC(或者一组 KDC)。如果您的网域内有多个 KDC,则请使用以逗号分隔的列表,不带空格。
  • --krb5adminserver= - 您的网域内还运行 kadmind 的 KDC。该服务器处理更改密码以及其他管理请求。如果您有不止一个 KDC,该服务器必须是主 KDC。
  • --enablehesiod - 启用 Hesiod 支持查找用户主目录、UID 和 shell。有关在您的网络中设置和使用 Hesiod 的详情,可以在 glibc 软件包中提供的 /usr/share/doc/glibc-2.x.x/README.hesiod 中找到。Hesiod 是使用 DNS 记录来存储用户、组和其他信息的 DNS 的扩展。
  • --hesiodlhs--hesiodrhs - Hesiod LHS (left-hand side) 和 RHS (right-hand side) 的值,在 /etc/hesiod.conf 中设置。Hesiod 库使用这个选项决定查找信息时搜索 DNS 的名字,类似于 LDAP 对基本 DN 的使用。
    要查找用户名 jim 的用户信息,Hesiod 库会在 jim.passwdLHSRHS 中进行查询,并应该解析为 TXT 文本记录,该记录中包含与该用户 passwd文件中的一个条目完全相同:jim:*:1001:1001:Jungle Jim:/home/jim:/bin/bash。如果是要查找组,Hesiod 库会查询 jim.groupLHSRHS
    要根据号码查找用户和组群,请将 jim.passwd 设定为 CNAME 1001.uid,将 jim.group 设定为 CNAME 1001.gid。注意,当执行搜索时,程序库没有在 LHS 和 RHS 值前加句号 .。因此,如果需要在 LHS 和 RHS 值前面加一个句点,就必须在 --hesiodlhs--hesiodrhs 设置的值中包含句点。
  • --enablesmbauth - 启用根据 SMB 服务器(典型的是 Samba 或 Windows 服务器)的用户验证。SMB 验证支持不了解主目录、UID 或 shell。如果您启用 SMB,必须通过启用 LDAP、NIS、Hesiod 或者用 /usr/sbin/useradd 命令让工作站识别该帐号。
  • --smbservers= - 用来进行 SMB 验证的服务器名称。要指定多个服务器,请使用逗号(,)分开。
  • --smbworkgroup= - SMB 服务器的工作组名称。
  • --enablecache - 启用 nscd 服务。nscd 服务会将用户、组和其他类型的信息存入缓存。如果您选择在网络中用 NISLDAP 或者 Hesiod 配置用户和组的信息,缓存就尤其有用。
  • --passalgo= - 指定 sha256 设置 SHA-256 哈希算法,或者 sha512 设置 SHA-512 哈希算法。
autopart(自选)
自动生成分区:root (/) 分区(1 GB 或者更大),该架构的 swap 分区和正确的 /boot 分区。在有足够空间的驱动器中(50 GB 和更大的驱动器)中还会生成 /home 分区。

重要

autopart 选项不能与 part/partition, raidlogvol 或者 volgroup 在同样的 Kickstart 文件中一同使用。
  • --type= - 选择您要使用的预先定义的自动分区方案之一。可接受以下值:
    • lvm: LVM 分区方案。
    • btrfs: Btrfs 分区方案。
    • plain: 不附带 LVM 或者 Btrfs 的常规分区。
    • thinp: LVM 精简分区方案。
    有关可用分区方案的描述,请查看 第 6.14.4.1.1 节 “文件系统类型”
  • --fstype= - 选择可用文件系统类型之一。可用值为 ext2ext3ext4xfsvfat。默认系统为 xfs。有关使用这些文件系统的详情,请查看 第 6.14.4.1.1 节 “文件系统类型”
  • --nolvm - 不使用 LVM 或者 Btrfs 进行自动分区。这个选项等同于 --type=plain
  • --encrypted - 加密所有分区。这等同于在手动图形安装过程的起始分区页面中选中 加密分区 复选框。

    注意

    加密一个或多个分区时,Anaconda 尝试收集 256 字节熵,以保证对分区安全加密
    与安装系统互动可加速此进程(使用键盘输入或移动鼠标)。如果要在虚拟机中安装系统,则可添加 virtio-rng 设备(虚拟随机数生成器),如 《Red Hat Enterprise Linux 7.1; 虚拟化部署及管理指南》所述。
  • --passphrase= - 为所有加密设备提供默认的系统范围内的密码短语。
  • --escrowcert=URL_of_X.509_certificate - 将所有加密卷数据加密密码保存在 /root 中,使用来自 URL_of_X.509_certificate 指定的 URL 的 X.509 证书加密。每个加密卷的密码都作为单独的文件保存。只有指定 --encrypted 时这个选项才有意义。
  • --backuppassphrase - 为每个加密卷添加随机生成的密码短语。将这些密码保存在 /root 目录下的独立文件中,使用 --escrowcert 指定的 X.509 证书加密。只有指定 --escrowcert 时这个选项才有意义。
  • --cipher= - 如果指定 Anaconda 默认 aes-xts-plain64 无法满足需要,则可以指定要使用的加密类型。这个选项必须与 --encrypted 选项一同使用,单独使用无效。 《Red Hat Enterprise Linux 7 安全指南》中有可用加密类型列表,但 Red Hat 强烈推荐您使用 aes-xts-plain64 或者 aes-cbc-essiv:sha256
autostep(自选)
通常 Kickstart 安装会跳过不必要的页面。这个选项可让安装程序浏览所有页面,并摘要显示每个页面。部署系统时不应使用这个选项,因为它会干扰软件包安装。
  • --autoscreenshot - 在安装的每一步均截屏。这些截屏将在安装过程中保存在 /tmp/anaconda-screenshots 中,并在安装完成后保存在 /root/anaconda-screenshots 中。
    安装程序切换到下一步前一刻会捕获这些页面。这样很重要,因为如果没有使用所有必须的 Kickstart 选项而造成安装无法自动开始,就可以查看这些页面,了解哪些没有自动配置,并执行任意您想要的配置。然后点击 完成 继续。截屏中将包括您刚刚提供的配置。
引导装载程序(必填项)
指定如何安装引导装载程序。

重要

Red Hat 建议在每个系统中都设置引导装载程序密码。未经保护的引导装载程序程序可导致潜在攻击者修改系统引导选项,并获取对该系统的未授权访问。

重要

不保证使用 sdX(或者 /dev/sdX)格式的设备名称在重启后会保留,这让一些 Kickstart 命令的用法变得复杂。当某个命令调用设备节点名称时,则可使用 /dev/disk 中的项目。例如不使用:
part / --fstype=xfs --onpart=sda1
而使用类似以下条目之一:
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
这样此命令会指向同一存储设备。这对大型存储环境特别有帮助。有关使用不同方法持续指定存储设备的详情,请参看《Red Hat Enterprise Linux 7 存储管理指南》中有关持久存储设备命名一章。

注意

有时候如果要在 AMD64 和 Intel 64 系统中安装引导装载程序,需要一个特殊分区。这个分区的类型和大小取决于正在安装引导装载程序的磁盘是使用主引导记录(MBR)还是 GUID 分区表(GPT)方案。详情请查看 第 6.14.1 节 “引导装载程序安装”
  • --append= - 指定内核参数。要指定多个参数,使用空格分隔它们。例如:
    bootloader --location=mbr --append="hdd=ide-scsi ide=nodma"
    即使在此没有指定 rhgbquiet 参数,或者根本没有使用 --append= 命令,也总是要使用这两个参数。
  • --boot-drive= - 指定引导装载程序要写入的驱动器,以及用来引导计算机的驱动器。如果使用多路径设备作为引导驱动器,则只能指定该设备中的一个成员。

    重要

    目前在使用 zipl 引导装载程序的 IBM System z 系统中安装 Red Hat Enterprise Linux 时,会忽略 --boot-drive= 选项。安装 zipl 后,它会自己决定引导驱动器。
  • --leavebootloader - 防止安装程序更改 EFI 或者 ISeries/PSeries 系统中的现有可引导映像。
  • --driveorder= - 指定在 BIOS 引导顺序中的首选驱动器。例如:
    bootloader --driveorder=sda,hda
  • --location= - 指定引导记录的写入位置。有效值如下:
    • mbr - 默认选项。具体要看该驱动器是使用主引导记录(MBR)还是 GUID 分区表(GPT)方案:
      • 在使用 GPT 格式化的磁盘中,这个选项会在 BIOS 引导分区中安装 stage 1.5 引导装载程序。
      • 在使用 MBR 格式化的磁盘中,会在 MBR 与第一个分区之间的空白空间中安装 stage 1.5。
    • partition - 在包含内核的分区的第一个扇区中安装引导装载程序。
    • none - 不安装引导装载程序。
    在大多数情况下不需要指定这个选项。
  • --password= - 如果使用 GRUB2,则会将使用这个选项指定的密码设定为引导装载程序密码。这应用来限制对 GRUB2 shell 的访问,并可以跳过任意内核选项。
    如果指定密码,GRUB2 还会询问用户名。该用户名总是 root
  • --iscrypted - 通常当使用 --password= 选项指定引导装载程序密码时,会将其以明文方式保存在 Kickstart 文件中。如果要加密此密码,可使用这个选项和一个加密的密码。
    请使用 grub2-mkpasswd-pbkdf2 命令生成加密的密码,输入要使用的密码,并将该命令的输出结果(以 grub.pbkdf2 开头的哈希符号)复制到 Kickstart 文件中。附带加密密码的 bootloader Kickstart 条目类似如下:
    bootloader --iscrypted --password=grub.pbkdf2.sha512.10000.5520C6C9832F3AC3D149AC0B24BE69E2D4FB0DBEEDBD29CA1D30A044DE2645C4C7A291E585D4DC43F8A4D82479F8B95CA4BA4381F8550510B75E8E0BB2938990.C688B6F0EF935701FF9BD1A8EC7FE5BD2333799C98F28420C5CC8F1A2A233DE22C83705BB614EA17F3FDFDF4AC2161CEA3384E56EB38A2E39102F5334C47405E
  • --timeout= - 指定引导装载程序引导默认选项前等待的时间(以秒为单位)。
  • --default= - 设定引导装载程序配置中的默认引导映像。
  • --extlinux - 使用 extlinux 引导装载程序而不是 GRUB2。这个选项只能用于支持 extlinux 的系统。
  • --disabled — 这个选项是 --location=none 的加强版。--location=none 只是简单地禁用 bootloader 安装,而 --disabled 则不仅禁用 bootloader 安装,也会禁用 bootloader 软件包的安装,从而节省了空间。
btrfs(自选)
生成 Btrfs 卷或者子卷。卷的语法为:
btrfs mntpoint --data=level --metadata=level --label=label partitions
partitions 中可指定一个或者多个分区。指定一个以上分区时,必须使用单空格分开这些条目。示例请参看 例 23.1 “生成 Btrfs 卷和子卷”
子卷的语法为:
btrfs mntpoint --subvol --name=path parent
parent 应为该子卷上级卷的标识符,mntpoint 是文件系统挂载的位置。
  • --data= - 文件系统数据使用的 RAID 级别(比如 0、1 或 10)。这个参数为自选参数,对子卷没有任何意义,但需要一个以上的物理卷。
  • --metadata= - 文件系统/卷元数据使用的 RAID 级别(比如 01 或者 10)。这是自选选项,对子卷毫无意义,但需要一个以上物理卷。
  • --label= - 为 Btrfs 文件系统指定标签。如果给出标签已被另一个文件系统使用,则会生成新的标签。这个选项对子卷毫无意义。
  • --noformat 或者 --useexisting - 使用现有 Btrfs 卷(或者子卷)且不要重新格式化该文件系统。
  • --mkfsoptions= - 指定要提供的附加参数,以便在这个分区中建立文件系统。没有对任何参数列表执行任何操作,因此必须使用可直接为 mkfs 程序提供的格式。就是说可使用逗号分开或双引号分开的多个选项,要看具体文件系统。
以下示例演示了如何从三张磁盘的成员分区为 //home 生成 Btrfs 卷。在这个示例中没有直接挂在或者商业主卷。

例 23.1. 生成 Btrfs 卷和子卷

part btrfs.01 --size=6000 --ondisk=sda
part btrfs.02 --size=6000 --ondisk=sdb
part btrfs.03 --size=6000 --ondisk=sdc

btrfs none --data=0 --metadata=1 --label=rhel7 btrfs.01 btrfs.02 btrfs.03
btrfs / --subvol --name=root LABEL=rhel7
btrfs /home --subvol --name=home rhel7
clearpart(自选)
从该系统中删除分区要在生成新分区之前完成。默认情况下未删除任何分区。

重要

不保证使用 sdX(或者 /dev/sdX)格式的设备名称在重启后会保留,这让一些 Kickstart 命令的用法变得复杂。当某个命令调用设备节点名称时,则可使用 /dev/disk 中的项目。例如不使用:
part / --fstype=xfs --onpart=sda1
而使用类似以下条目之一:
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
这样此命令会指向同一存储设备。这对大型存储环境特别有帮助。有关使用不同方法持续指定存储设备的详情,请参看《Red Hat Enterprise Linux 7 存储管理指南》中有关持久存储设备命名一章。

注意

如果使用 clearpart 命令,则无法在逻辑分区中使用 part--onpart 命令。
有关包含 clearpart 命令的分区示例详情请查看 第 23.4.1 节 “高级分区示例”
  • --all - 删除系统中的所有分区。

    警告

    这个选项会删除安装程序可以到达的所有磁盘,包括附加的网络存储。使用这个选项应格外小心。
    可以使用 --drives= 选项防止 clearpart 清空要保留的存储,并通过稍后附加网络存储要清理的驱动器(例如:在 Kickstart 文件的 %post 部分),或将用来访问网络存储的内核模块放入黑名单。
  • --drives= - 指定从哪个驱动器中清除分区。例如,下面的命令清除了主 IDE 控制器中前两个驱动器上所有分区:
    clearpart --drives=hda,hdb --all
    要清除多路径设备,请使用 disk/by-id/scsi-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要清除 WWID 为 58095BEC5510947BE8C0360F604351918 的磁盘,请使用:
    clearpart --drives=disk/by-id/scsi-58095BEC5510947BE8C0360F604351918
    所有多路经设备首选这个格式,但如果有出错信息,也可使用逻辑卷管理(LVM)清除不使用的多路径设备,请使用 disk/by-id/dm-uuid-mpath-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要清除 WWID 为 2416CD96995134CA5D787F00A5AA11017 的磁盘,请使用:
    clearpart --drives=disk/by-id/dm-uuid-mpath-2416CD96995134CA5D787F00A5AA11017

    警告

    永远不要使用类似 mpatha 的设备名称指定多路径设备。类似这样的设备名称不是具体到某个磁盘。在安装过程中命名为 /dev/mpatha 的磁盘可能并不是您希望得到的那个。因此 clearpart 命令可能会对错误的磁盘进行操作。
  • --list= - 指定要清理的分区。这个选项覆盖 --all--linux 选项,并可跨不同驱动器中使用。例如:
    clearpart --list=sda2,sda3,sdb1
  • --linux - 删除所有 Linux 分区。
  • --none(默认)- 不删除任何分区。

注意

在 Kickstart 文件中使用 clearpart --all 命令,在安装过程中删除所有现有分区可造成 Anaconda 暂停,并提示您确定。如果需要执行没有互动的自动安装,请在 Kickstart 文件中添加 zerombr 命令。
cmdline(自选)
采用完全非互动的命令行模式执行安装。任何互动提示都会造成安装停止。这个模式对使用 x3270 终端的 IBM System z 系统中有用。详情请查看 第 18.4 节 “Kickstart 安装的参数”

重要

要进行完全自动安装,则必须在 Kickstart 文件中指定可用模式之一(graphicaltext 或者 cmdline),或必须使用 console= 引导选项,如 控制台、环境和显示选项 所述。如果没有指定任何模式,则系统会提示您选择一个模式以便继续安装。
device(自选)
在大多数 PCI 系统中,安装程序会自动探测以太网卡和 SCSI 卡。然而,在旧的系统和某些 PCI 系统中,Kickstart 需要提示方可找到正确的设备。device 命令用来告诉安装程序安装额外的模块,其格式为:
device moduleName --opts=options
  • moduleName - 使用应该安装的内核模块的名称替换。
  • --opts= - 传递给内核模块的选项。例如:
    device --opts="aic152x=0x340 io=11"
driverdisk(自选)
可以在 Kickstart 安装过程中使用驱动程序磁盘提供默认不包含的附加驱动程序。必须将驱动程序磁盘内容复制到系统硬盘分区的 root 目录中。然后必须使用 driverdisk 命令让安装程序查找驱动程序磁盘及其位置。
driverdisk [partition|--source=url|--biospart=biospart]
另外,也可以为驱动程序盘指定一个网络位置:
driverdisk --source=ftp://path/to/dd.img
driverdisk --source=http://path/to/dd.img
driverdisk --source=nfs:host:/path/to/img
  • partition - 包含驱动程序磁盘的分区。注:必须使用完全路径指定该分区(例如:/dev/sdb1),不能只使用分区名称(例如:sdb1)。
  • --source= - 驱动程序磁盘的 URL。NFS 位置格式为nfs:host:/path/to/img
  • --biospart= - BIOS 分区包含驱动程序磁盘(例如:82p2)。
eula(自选)
使用这个选项以非用户互动方式接受终端用户许可证协议(End User License Agreement,EULA)。指定这个选项可防止 Initial Setup 在完成安装并第一次重启系统时提示您接受该许可证。详情请查看 第 27 章 Initial Setup
  • --agreed(强制) - 接受 EULA。必须总是使用这个选项,否则 eula 命令就毫无意义。
fcoe(自选)
除指定 Enhanced Disk Drive Services(EDD)找到的那些 FCoE 设备外,还应该自动激活 FCoE 设备。
fcoe --nic=name [options]
  • --nic=(强制)- 要激活的设备名称。
  • --dcb= - 建立 数据中心桥接(DCB)设置。
  • --autovlan - 自动查找 VLAN。
firewall(自选)
为安装的系统指定防火墙配置。
firewall --enabled|--disabled device [options]
  • --enabled 或者 --enable - 拒绝回应输出要求的进入连接,比如 DNS 答复或 DHCP 请求。如果需要访问在这台机器中运行的服务,可以选择通过防火墙允许具体的服务。
  • --disabled 或者 --disable - 不配置任何 iptables 规则。
  • --trust= - 在这里列出设备,比如 em1,允许所有流量通过该防火墙进出那个设备。要列出一个以上的设备,请使用 --trust em1 --trust em2。不要使用逗号分开的格式,比如 --trust em1, em2
  • incoming - 使用以下服务中的一个或多个来替换,从而允许指定的服务通过防火墙。
    • --ssh
    • --smtp
    • --http
    • --ftp
  • --port= - 可以用端口:协议(port:protocal)格式指定允许通过防火墙的端口。例如,如果想允许 IMAP 通过您的防火墙,可以指定 imap:tcp。还可以具体指定端口号码,要允许 UDP 分组在端口 1234 通过防火墙,输入 1234:udp。要指定多个端口,用逗号将它们隔开。
  • --service= - 这个选项提供允许服务通过防火墙的高级方法。有些服务(比如 cupsavahi 等等)需要开放多个端口,或者另外有特殊配置方可工作。您应该使用 --port 选项指定每个具体端口,或者指定 --service= 并同时打开它们。
    有效选项是 firewalld 软件包中的 firewall-offline-cmd 程序可识别的所有选项。如果 firewalld 正在运行,firewall-cmd --get-services 将提供已知服务名称列表。
firstboot(可选)
决定 Initial Setup 程序是否在第一次引导系统时启动。如果启用,则必须安装 initial-setup 软件包。如果未指定,则默认禁用这个选项。
  • --enable 或者 --enabled - 系统第一次引导时启动 Initial Setup
  • --disable 或者 --disabled - 系统第一次引导时启动 Initial Setup
  • --reconfig - 引导系统时以重配置(reconfiguration)模式启动 Initial Setup。这个模式还启用了语言、鼠标、键盘、root 密码、安全级别、时区以及默认网络配置之外的网络配置选项。
group(自选)
在系统中生成新组。如果某个使用给定名称或者 GID 的组已存在,这个命令就会失败。另外,该 user 命令可用来为新生成的用户生成新组。
group --name=name [--gid=gid]
  • --name= - 提供组名称。
  • --gid= - 组的 UID。如果未提供,则默认使用下一个可用的非系统 GID。
graphical(可选)
以图形模式执行安装。这是默认选项。

重要

要进行完全自动安装,则必须在 Kickstart 文件中指定可用模式之一(graphicaltext 或者 cmdline),或必须使用 console= 引导选项,如 控制台、环境和显示选项 所述。如果没有指定任何模式,则系统会提示您选择一个模式以便继续安装。
halt(自选)
在安装成功后停止系统。这与手动安装类似,此时 Anaconda 会显示一条信息并等待用户按任意键重启系统。在 Kickstart 的安装过程中,如果没有指定完成方法,将默认使用这个选项。
halt 命令等同于 shutdown -h 命令。
关于其他完成方法,请参考 poweroffrebootshutdown 命令。
ignoredisk(自选)
导致安装程序忽略指定的磁盘。如果您使用自动分区并希望忽略某些磁盘的话,这就很有用。例如,没有 ignoredisk,如要尝试在 SAN-cluster 系统中部署,kickstart 就会失败,因为安装程序检测到 SAN 不返回分区表的被动路径(passive path)。
ignoredisk --drives=drive1,drive2,...
其中 driveNsdasdb ... hda 等等中的一个。

重要

不保证使用 sdX(或者 /dev/sdX)格式的设备名称在重启后会保留,这让一些 Kickstart 命令的用法变得复杂。当某个命令调用设备节点名称时,则可使用 /dev/disk 中的项目。例如不使用:
part / --fstype=xfs --onpart=sda1
而使用类似以下条目之一:
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
这样此命令会指向同一存储设备。这对大型存储环境特别有帮助。有关使用不同方法持续指定存储设备的详情,请参看《Red Hat Enterprise Linux 7 存储管理指南》中有关持久存储设备命名一章。
要忽略不使用逻辑卷管理(LVM)的多路径设备,请使用 disk/by-id/dm-uuid-mpath-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要忽略 WWID 为 2416CD96995134CA5D787F00A5AA11017 的磁盘,请使用:
ignoredisk --drives=disk/by-id/dm-uuid-mpath-2416CD96995134CA5D787F00A5AA11017
Anaconda 解析 Kickstart 文件前不会编译使用 LVM 的多路经设备。因此,您无法使用 dm-uuid-mpath 格式指定这些设备。反之,要忽略使用 LVM 的多路经设备,请使用 disk/by-id/scsi-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要忽略 WWID 为 58095BEC5510947BE8C0360F604351918 的磁盘,请使用:
ignoredisk --drives=disk/by-id/scsi-58095BEC5510947BE8C0360F604351918

警告

永远不要使用类似 mpatha 的设备名称指定多路径设备。类似这样的设备名称不是具体到某个磁盘。在安装过程中命名为 /dev/mpatha 的磁盘可能并不是您希望得到的那个。因此 clearpart 命令可能会对错误的磁盘进行操作。
  • --only-use - 指定安装程序要使用的磁盘列表。忽略其他所有磁盘。例如:要在安装过程使用磁盘 sda,并忽略所有其他磁盘:
    ignoredisk --only-use=sda
    要包括不使用 LVM 的多路经设备:
    ignoredisk --only-use=disk/by-id/dm-uuid-mpath-2416CD96995134CA5D787F00A5AA11017
    要包括使用 LVM 的多路径设备:
    ignoredisk --only-use=disk/by-id/scsi-58095BEC5510947BE8C0360F604351918
  • --interactive - 允许手动导航高级存储页面。
install(自选)
默认安装方法。您必须从 cdromharddrivenfsliveimg 或者 url(用于 FTP、HTTP、或者 HTTPS 安装)中指定安装类型。install 命令和安装方法命令必须在不同的行中。例如:
install
liveimg --url=file:///images/install/squashfs.img --noverifyssl
  • cdrom - 使用系统中的第一个光驱安装。
  • harddrive - 使用 Red Hat 安装树或者本地驱动器中的完整安装 ISO 映像安装。该驱动器必须包含安装程序可以挂载的文件系统:ext2ext3ext4vfatxfs
    • --biospart= - 安装的 BIOS 分区(比如 82)。
    • --partition= - 执行安装的分区(比如 sdb2)。
    • --dir= - 包含安装树 variant 目录或者或者完整安装 DVD 的 ISO 映像文件的目录。
    例如:
    harddrive --partition=hdb2 --dir=/tmp/install-tree
  • liveimg - 使用磁盘映像而不是软件包安装。映像文件可以是取自实时 ISO 映像的 squashfs.img 文件,压缩 tar 文件(.tar.tbz.tgz.txz.tar.bz2.tar.gz 或者 .tar.xz)或者安装介质可以挂载的任意文件系统。支持的文件系统为 ext2ext3ext4vfatxfs

    注意

    使用附带驱动程序磁盘的 liveimg 安装模式时,该磁盘中的驱动程序不会自动包含在安装的系统中。必要时,应手动安装这些驱动程序,或者 kickstart 脚本的 %post 部分手动安装这些驱动程序。
    • --url= - 执行安装的位置。支持的协议为 HTTPHTTPSFTPfile
    • --proxy= - 指定安装过程中要使用的 HTTPHTTPS 或者 FTP 代理服务器。
    • --checksum= - 附带映像文件 SHA256 checksum 的自选参数,用于确认。
    • --noverifyssl - 连接到 HTTPS 服务器时禁止 SSL 验证。
    例如:
    liveimg --url=file:///images/install/squashfs.img --checksum=03825f567f17705100de3308a20354b4d81ac9d8bed4bb4692b2381045e56197 --noverifyssl
  • nfs - 从指定的 NFS 服务器安装。
    • --server= - 执行安装的服务器(主机名或 IP)。
    • --dir= - 包含安装树 variant 目录的目录。
    • --opts= - 用于挂载 NFS 输出的 Mount 选项(自选)。
    例如:
    nfs --server=nfsserver.example.com --dir=/tmp/install-tree
  • url - 通过 FTP、HTTP 或 HTTPS 使用远程服务器中的安装树安装。
    • --url= - 用来安装的位置。支持的协议为 HTTPHTTPSFTPfile
    • --mirrorlist= - 用来安装的镜像 URL。
    • --proxy= - 指定安装过程中要使用的 HTTPHTTPS 或者 FTP 代理服务器。
    • --noverifyssl - 连接到 HTTPS 服务器时禁止 SSL 验证。
    例如:
    url --url http://server/path
    或者:
    url --url ftp://username:password@server/path
iscsi(自选)
iscsi --ipaddr=address [options]
在安装过程中指定要添加的附加 iSCSI 存储。如果您使用 iscsi 命令,则必须使用 iscsi 命令为 iSCSI 节点分配一个名称。在 kickstart 文件中 iscsiname 命令必须在 iscsi 命令前面。
我们建议您在系统 BIOS 或者固件中配置 iSCSI 存储,而不是使用 iscsi 命令。Anaconda 自动侦测并使用在 BIOS 或者固件中配置的磁盘,且在 kickstart 文件中不需要特殊配置。
如果您必须使用 iscsi 命令,请确定在开始安装时就激活网络。同时在 Kickstart 文件中,iscsi 命令在指向 iSCSI 磁盘的命令的 前面,比如 clearpart 或者 ignoredisk
  • --ipaddr=(强制)- 要连接的目标的 IP 地址。
  • --port=(强制) - 端口号(通常为 --port=3260
  • --target= - 目标 IQN(iSCSI 限定名称)。
  • --iface= - 绑定到具体网络接口的连接,而不是使用由网络层决定的默认接口。使用后就必须在整个 Kickstart 文件 iscsi 命令的所有事务中指定该接口。
  • --user= - 需要与目标进行验证的用户名
  • --password= - 与为目标指定的用户名对应的密码
  • --reverse-user= - 用于与来自使用反向 CHAP 验证对象的初始程序一同进行验证的用户名
  • --reverse-password= - 与为发起方指定的用户名对应的密码
iscsiname(自选)
为 iscsi 参数指定的 iSCSI 节点分配名称。如果在 kickstart 文件中使用 iscsi 参数,则在该 Kickstart 文件中必须指定 iscsiname
iscsiname iqn
%addon com_redhat_kdump(自选)
这个命令配置 kdump 内核崩溃转储机制。

注意

这个命令的句法与众不同,因为它是一个附加组件,不是内置 Kickstart 命令。有关附加组件的详情,请查看 第 23.3.7 节 “Kickstart 附加组件”
Kdump 是内核崩溃转储机制,可让您保存系统内存内容,以便稍后进行分析。它依赖 kexec,可用来在另一个内核上下文之引导 Linux 内核而无需重启,并保留第一个内核内存的内容,不使用此功能会丢失第一个内核的内存。
如果出现系统崩溃,kexec 会引导至第二个内核(捕获内核)。这个捕获内核位于系统内存的保留部分,第一个内核无法访问这部分。然后 Kdump 会捕获崩溃内核的内存(崩溃转储),并将其保存到指定位置。不能使用 Kickstart 命令配置该位置。必须在安装后编辑 /etc/kdump.conf 配置文件配置该位置。
有关 Kdump 的详情,请查看see the 《Red Hat Enterprise Linux 7 内核转储崩溃指南》
可用选项包括:
  • --enable - 在安装的系统中启用 kdump。
  • --disable - 在安装的系统中禁用 kdump。
  • --reserve-mb= - 要为 kdump 保留的内存量,单位为 MB。例如:
    %addon com_redhat_kdump --enable --reserve-mb=128
    %end
    还可以指定 auto 而不是数字值。这样该安装程序根据 《Red Hat Enterprise Linux 7 内核崩溃转储指南》所述标准自动决定内存量。
    如果启用 kdump,且不指定 --reserve-mb= 选项,则会使用值 auto
  • --enablefadump - 在系统中启用固件支持的转储允许使用此选项(特别是 IBM Power Systems 服务器)。
keyboard(必填项)
为系统设置一个或者多个可用键盘布局。
  • --vckeymap= - 指定应使用哪个 VConsole 键盘模式。有效名称会与 /usr/lib/kbd/keymaps/* 目录中的文件列表对应,无需 .map.gz 扩展名。
  • --xlayouts= - 指定 X 布局列表,该列表可使用逗号分开,无空格。接受与 setxkbmap(1) 相同格式的值,可以是 layout 格式(比如 cz),也可以是 layout (variant) 格式(比如 cz (qwerty))。
    所有可用布局请参考 xkeyboard-config(7) man page 的 Layouts 部分。
  • --switch= - 指定布局切换选项(在多个键盘布局间切换的快捷方式)列表。必须使用逗号分开多个选项,无空格。接受值与 setxkbmap(1) 格式相同。
    所有可用布局请参考 xkeyboard-config(7) man page 的 Layouts 部分。
下面的示例使用 --xlayouts= 选项设置两个键盘布局(English (US)Czech (qwerty)),并允许使用 Alt+Shift 在二者之间进行切换:
keyboard --xlayouts=us,'cz (qwerty)' --switch=grp:alt_shift_toggle

重要

可以是 --vckeymap=,或者必须使用 --xlayouts= 选项。
lang(必填项)
设置在安装过程中使用的语言以及系统的默认语言。例如,要将语言设置为英语,Kickstart 文件应该包含下面的一行:
lang en_US
文件 /usr/share/system-config-language/locale-list 里每一行的第一个字段提供了一个有效语言代码的列表,它是 system-config-language 软件包的一部分。
文本模式的安装过程不支持某些语言(主要是中文、日语、韩文和印度的语言)。如果用 lang 命令指定这些语言中的一种,安装过程仍然会使用英语,但是系统会默认使用指定的语言。
  • --addsupport= - 添加附加语言支持。格式为使用逗号分开的列表,无空格。例如:
    lang en_US --addsupport=cs_CZ,de_DE,en_UK
logging(自选)
这个命令控制安装过程中 Anaconda 的出错日志。它对安装好的系统没有影响。
logging [--host=host] [--port=port] [--level=debug|info|error|critical]
  • --host= - 向给定远程主机发送日志信息,该主机必须配置了运行 syslogd 进程来接收远程日志。
  • --port= - 如果远程 syslogd 进程使用默认意外的端口,则会使用这个选项指定该端口。
  • --level= - 指定 tty3 中显示信息的最低等级。然而,无论等级是什么,仍会将所有的信息发送到日志文件。可能的值为 debuginfowarningerror 或者 critical
logvol(自选)
使用以下句法为逻辑卷管理(LVM)创建逻辑卷:
logvol mntpoint --vgname=name --name=name [options]

注意

使用 Kickstart 安装 Red Hat Enterprise Linux 时,不要在逻辑卷和卷组名称中使用小横线(-)。如果使用这个字符,会完成安装,但 /dev/mapper/ 目录列出这些卷和卷组时,小横线会加倍。例如:某个卷组名为 volgrp-01,包含名为 logvol-01 逻辑卷,该逻辑卷会以 /dev/mapper/volgrp--01-logvol--01 列出。
这个限制只适用于新创建的逻辑卷和卷组名。如果您使用 --noformat 选项重复使用现有名称,它们的名称就不会更改。
有关在操作中 logvol 的详细示例请参考 第 23.4.1 节 “高级分区示例”
  • mntpoint — 是该分区挂载的位置,且必须是以下格式之一:
这些选项如下所示:
  • --noformat - 使用现有逻辑卷且不要对其进行格式化。
  • --useexisting - 使用现有逻辑卷并重新格式化它。
  • --fstype= - 为逻辑卷设置文件系统类型。有效值有:xfsext2ext3ext4swapvfat
  • --fsoptions= - 指定在挂载文件系统时所用选项的自由格式字符串。将这个字符串复制到安装的系统的 /etc/fstab 中,并使用括号括起来。
  • --mkfsoptions= - 指定要提供的附加参数,以便在这个分区中建立文件系统。没有对任何参数列表执行任何操作,因此必须使用可直接为 mkfs 程序提供的格式。就是说可使用逗号分开或双引号分开的多个选项,要看具体文件系统。
  • --label= - 为逻辑卷设置标签。
  • --grow - 会让逻辑卷使用所有可用空间(若有),或使用设置的最大值(如果指定了最大值)。必须给出最小值,可使用 --percent= 选项或 --size= 选项。
  • --size= - 以 MB 单位的逻辑卷大小。这个选项不能与 --percent= 选项一同使用。
  • --percent= - 考虑任何静态大小逻辑卷时的逻辑卷大小,作为卷组中剩余空间的百分比。这个选项不能与 --size= 选项一同使用。

    重要

    创建新逻辑卷时,必须使用 --size= 选项静态指定其大小,或使用 --percent= 选项指定剩余可用空间的百分比。不能再同一逻辑卷中同时使用这些选项。
    注:这个行为只能用于 Red Hat Enterprise Linux 7.1 以及之后的版本。在 Red Hat Enterprise Linux 7.0 中,这两个选项的互动方式不同。
  • --maxsize= - 当将逻辑卷被设置为可扩充时以 MB 为单位的最大值。在这里指定一个整数值,如500(不要在数字后添加单位)。
  • --recommended - 创建 swap 逻辑卷时可采用这个选项,以根据您的系统硬件自动决定这个卷的大小。有关推荐方案详情请查看 第 6.14.4.5 节 “推荐的分区方案”(AMD64 和 Intel 64 系统); 第 11.15.4.5 节 “推荐分区方案”(IBM Power Systems); 和 第 15.15.3.5 节 “推荐的分区方案”(IBM System z)。
  • --resize - 重新定义逻辑卷大小。如果使用这个选项,则必须还指定 --useexisting--size
  • --encrypted - 指定该逻辑卷应该用 --passphrase= 选项提供的密码进行加密。如果没有指定密码短语,安装程序将使用 autopart --passphrase 命令指定默认系统级密码,如果没有设定默认密码则会停止安装,并提示输入密码短语。

    注意

    加密一个或多个分区时,Anaconda 尝试收集 256 字节熵,以保证对分区安全加密
    与安装系统互动可加速此进程(使用键盘输入或移动鼠标)。如果要在虚拟机中安装系统,则可添加 virtio-rng 设备(虚拟随机数生成器),如 《Red Hat Enterprise Linux 7.1; 虚拟化部署及管理指南》所述。
  • --passphrase= - 指定在加密这个逻辑卷时要使用的密码短语。必须与 --encrypted 选项一同使用,单独使用这个选项无效。
  • --cipher= - 指定如果对 Anaconda 默认 aes-xts-plain64 不满意时要使用的加密类型。这个选项必须与 --encrypted 选项一同使用,单独使用无效。 《Red Hat Enterprise Linux 7 安全指南》中有可用加密类型列表,但 Red Hat 强烈推荐您使用 aes-xts-plain64 或者 aes-cbc-essiv:sha256。
  • --escrowcert=URL_of_X.509_certificate - 将所有加密卷数据加密密钥作为文件保存在 /root 中,使用来自 URL_of_X.509_certificate 指定的 URL 的 X.509 证书加密。每个加密卷的密钥都作为单独的文件保存。只有指定 --encrypted 时这个选项才有意义。
  • --backuppassphrase - 为每个加密卷添加随机生成的密码短语。将这些密码保存在 /root 目录下的独立文件中,使用 --escrowcert 指定的 X.509 证书加密。只有指定 --escrowcert 时这个选项才有意义。
  • --thinpool - 创建精简逻辑卷。(使用 none 挂载点)。
  • --metadatasize=size - 为新的精简池设备指定元数据大小(单位 MiB)。
  • --chunksize=size - 为新的精简池设备指定块大小(单位 KiB)。
  • --thin - 创建精简逻辑卷。(要求使用 --poolname
  • --poolname=name - 指定在其中创建精简逻辑卷的精简池名称。需要 --thin 选项。
  • --profile=name - 指定与精简逻辑卷配合使用的配置文件名称。如果使用此选项,还要用于给定逻辑的卷元数据中包含该名称。默认情况下,可使用的配置文件为在 /etc/lvm/profile 目录中定义的 defaultthin-performance。详情请查看 lvm(8) 手册页。
  • --cachepvs= - 用逗号分开的物理卷列表,应作为这个卷的缓存使用。
  • --cachemode= - 指定应使用哪种模式缓存这个逻辑卷 - 可以是 writeback,也可以是 writethrough

    注意

    有关缓存的逻辑卷及其模式的详情,请查看 lvmcache(7) 手册页。
  • --cachesize= - 附加到该逻辑卷的缓存大小,单位为 MiB。这个选项需要 --cachepvs= 选项。
首先创建分区,然后创建逻辑卷组,再创建逻辑卷。例如:
part pv.01 --size 3000
volgroup myvg pv.01
logvol / --vgname=myvg --size=2000 --name=rootvol
首先创建分区,然后创建逻辑卷组,再创建逻辑卷以占据逻辑组里剩余的 90% 空间。例如:
part pv.01 --size 1 --grow
volgroup myvg pv.01
logvol / --vgname=myvg --name=rootvol --percent=90
mediacheck(自选)
如果给出这个选项,则该命令将在启动安装前强制安装程序执行介质检查(rd.live.check)。这个命令需要执行安装,因此默认禁用此选项。
network(自选)
为目标系统配置网络信息并在安装程序环境中激活网络设备。在第一个 network 命令中指定的设备将被自动激活。例如:在网络安装或者使用 VNC 的安装中。--activate 选项还可以明确要求激活该设备。

注意

有几个可用来通过持久名称识别网络设备的网络设备命名方法标准,比如 em1 或者 wl3sp0。有关这些标准的详情请查看《Red Hat Enterprise Linux 7 联网指南》
  • --activate - 在安装程序环境中激活这个设备。
    如果在已经被激活的设备(例如使用引导选项配置的接口,以便系统可以读取 Kickstart 文件)之使用 --activate 选项,则将使用 Kickstart 文件中指定的内容重新激活这个设备。
    使用 --nodefroute 选项来阻止设备使用默认路由。
  • --bootproto= - dhcpbootpibft 或者 static 之一。默认选项为 dhcpdhcpbootp 选项作用相同。要禁用设备的 ipv4 配置,请使用 --noipv4 选项。

    注意

    这个选项设置该设备的 ipv4 配置。如果要配置 ipv6,则请使用 --ipv6 和 --ipv6gateway 选项。
    DHCP 方法使用 DHCP 服务器系统来获取其联网配置。BOOTP 方法和它很相似,要求 BOOTP 服务器提供网络配置。要让系统使用 DHCP:
    network --bootproto=dhcp
    要让某机器使用 BOOTP 获取联网配置,请在 Kickstart 文件中使用以下行:
    network --bootproto=bootp
    要让某机器使用 iBFT 中指定的配置,请使用:
    network --bootproto=ibft
    static方法要求您在 Kickstart 文件中指定 IP 地址、掩码、网关和命名服务器。这个信息是静态的,且在安装期间和安装之后使用。
    所有静态联网配置信息都必须在行中指定;您不能使用反斜杠(\)换行。
    network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=10.0.2.1
    还可以同时配置多个名称服务器。要做到这一点,请为每个要配置的名称服务器使用 --nameserver= 选项:
    network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=192.168.2.1 --nameserver=192.168.3.1
  • --device= - 使用 network 命令指定要配置的设备(并最终使用 Anaconda 启动)。
    如果首次 使用 network 命令时缺少 --device= 选项,则会使用 ksdevice= Anaconda 引导选项值(如果可用)。注:这是已放弃的行为,在大多数情况下应该为每个 network 命令指定 --device= 选项。
    如果缺少 --device= 选项,同一 Kickstart 文件中的任意连续 network 命令的行为尚不确定。请确定在每次使用 network 命令时都指定这个选项。
    可以使用以下任何方法指定要激活的设备:
    • 接口的设备名称,例如:em1
    • 接口中的 MAC 地址,例如:01:23:45:67:89:ab
    • 关键字 link,指定链接状态为 up 的第一个接口
    • 关键字 bootif,使用 pxelinuxBOOTIF 变量里设置的 MAC 地址。在 pxelinux.cfg 文件中设定 IPAPPEND 2 使 pxelinux 设置 BOOTIF 变量。
    例如:
    network --bootproto=dhcp --device=em1
  • --ip= - 该设备的 IP 地址。
  • --ipv6= - 该设备的 IPv6 地址,格式为 address[/prefix length] - 例如:3ffe:ffff:0:1::1/128 。如果缺少 prefix,则使用 64。还可以使用 auto 自动配置,dhcp 只能用于 DHCPv6 配置(无路由器公告)。
  • --gateway= - 单一 IPv4 地址的默认网关。
  • --ipv6gateway= - 单一 IPv6 地址的默认网关。
  • --nodefroute - 防止将接口设置为默认路由。使用 --activate= 选项激活其他设备时使用这个选项,例如:在独立子网中用于 iSCSI 目标的网卡。
  • --nameserver= - DNS 名称服务器作为 IP 地址。要指定一个以上名称服务器,请使用这个选项,并用逗号分开每个地址。
  • --nodns - 不要配置任何 DNS 服务器。
  • --netmask= - 已安装系统的子网掩码。
  • --hostname= - 已安装系统的主机名。主机名可以是完全限定域名(FQDN),其格式为 hostname.domainname;也可以是不含域名的简要主机名。很多网络有动态主机配置协议(DHCP)服务,它可自动提供带域名的连接的系统。要允许 DHCP 服务为这台机器分配域名,只指定简要主机名即可。

    重要

    如果您的网络不提供 DHCP 服务,则一定要使用 FQDN 作为系统的主机名。
  • --ethtool= - 指定用于网络设备的附加底层设置,可将其传送给 ethtool 程序。
  • --essid= - 无线网络的网络 ID。
  • --wepkey= - 无线网络的 WEP 加密密钥。
  • --wpakey= - 无线网络的 WPA 加密密钥。
  • --onboot= - 是否在引导时启用该设备。
  • --dhcpclass= - DHCP 类别。
  • --mtu= - 该设备的 MTU。
  • --noipv4 - 在这个设备中禁用 IPv4。
  • --noipv6 - 在这个设备中禁用 IPv6。
  • --bondslaves= - 使用这个选项时,会使用 --bondslaves= 选项中定义的 slave 生成 --device= 选项中指定的网络设备。例如:
    network --device=mynetwork --bondslaves=em1,em2
    上述命令可生成绑定设备,名为 mynetwork,并使用 em1em2 接口作为其从属。
  • --bondopts= - 绑定接口的自选参数列表,使用 --bondslaves=--device= 选项指定。该列表中的选项必须以逗号(",")或分号(";")分开。如果某个选项本身包含一个口号,请使用分号分开选项。例如:
    network --bondopts=mode=active-backup,balance-rr;primary=eth1
    可用自选参数列表请查看 《Red Hat Enterprise Linux 7 系统管理员指南》《使用内核模块》一章。

    重要

    --bondopts=mode= 参数只支持完整模式名称,比如 balance-rr 或者 broadcast,而不是与之对应的数字,比如 0 或者 3
  • --vlanid= - 为使用在 --device= 中指定的上级设备创建的设备指定虚拟 LAN(VLAN)ID 号(802.1q 标签)。例如:network --device=em1 --vlanid=171 将生成虚拟 LAN 设备 em1.171
  • --interfacename= - 为虚拟 LAN 设备指定定制接口名称。这个选项应在使用 --vlanid= 选项生成的默认名称不令人满意时使用。这个选项必须与 --vlanid= 一同使用。例如:
    network --device=em1 --vlanid=171 --interfacename=vlan171
    上述命令会在 em1 设备中生成虚拟 LAN 接口名称 vlan171,ID 为 171
    接口名称可以是任意名称(例如:my-vlan),但在具体情况下必须符合以下常规:
    • 如果名称中包含点符号(.),则其格式必须为 NAME.IDNAME 可为任意名称,但 ID 必须是 VLAN ID。例如:em1.171 或者 my-vlan.171
    • vlan 开始的名称,其格式必须为 vlanID。例如:vlan171
  • --teamslaves= - --device= 选项指定的成组设备将使用这个选项中指定的 slave 生成。使用逗号将各个 slave 分开。每个 slave 后接其配置,该配置是一个单引号括起来的 JSON 字符串,其中间隔使用 \ 和双引号。例如:
    network --teamslaves="p3p1'{\"prio\": -10, \"sticky\": true}',p3p2'{\"prio\": 100}'"
    还请查看 --teamconfig= 选项。
  • --teamconfig= - 用双引号括起来的成组设备配置,该配置是一个单引号括起来的 JSON 字符串,其中间隔使用 \ 和双引号。设备名称由 --device= 选项指定,其 slave 和它们的配置由 --teamslaves= 选项指定。例如:
    network --device team0 --activate --bootproto static --ip=10.34.102.222 --netmask=255.255.255.0 --gateway=10.34.102.254 --nameserver=10.34.39.2 --teamslaves="p3p1'{\"prio\": -10, \"sticky\": true}',p3p2'{\"prio\": 100}'" --teamconfig="{\"runner\": {\"name\": \"activebackup\"}}"
  • --bridgeslaves= - 使用此选项时,会生成使用 --device= 选项指定设备名称的网络桥接,并在桥接中添加使用 --bridgeslaves= 选项的设备。例如:
    network --device=bridge0 --bridgeslaves=em1
  • --bridgeopts= - 用于桥接接口的用逗号分开的自选参数列表。可用值包括 stppriorityforward-delayhello-timemax-ageageing-time。有关这些参数的详情请查看 nm-settings(5) 手册页中的《桥接设置》 表,或查看 https://developer.gnome.org/NetworkManager/0.9/ref-settings.html
    有关网络桥接的详情请查看 《Red Hat Enterprise Linux 7 联网指南》
%addon org_fedora_oscap(自选)
OpenSCAP 安装程序附加组件是用来在安装的系统中应用 SCAP(安全内容自动化协议)内容,即安全策略。从 Red Hat Enterprise Linux 7.2 开始默认启用这个附加组件。启用后,会自动安装提供这个功能的软件包。但默认情况下,不会强制采用任何策略,就是说在安装过程中或安装后不会执行任何选择操作,除非有特殊配置。

重要

不一定在所有系统中应用安全策略。只有机构规则或政府法规强制某种策略时,才应该使用这个页面。
与大多数命令不同,这个附加组件不接受常规选项,而是使用 %addon 定义中的密钥-数值对。这些数值对无法验证空白。数值为自选,采用单引号(')或双引号(")括起。
该附加组件可识别以下密钥:
  • content-type - 安全内容类型。可能值包括 datastreamarchiverpmscap-security-guide
    如果 content-typescap-security-guide,则该附加组件将使用 scap-security-guide 软件包提供的内容,这些内容包含着引导介质中。就是说除 profile 外,其他所有密钥均无效。
  • content-url - 安全内容为主。必须通过 HTTP、HTTPS 或者 FTP 访问该内容。本地存储目前不支持此功能。必须有可用的网络连接方可在使用远程位置中的内容定义。
  • datastream-id - content-url 值中所参考数据流的 ID。只有在 content-typedatastream 时方可使用。
  • xccdf-id - 要使用的基准点的 ID。
  • xccdf-path - 应使用的 XCCDF 文件的路径;在归档中采用相对路径格式。
  • profile - 要应用的配置文件 ID。使用 default 应用默认配置文件。
  • fingerprint - content-url 参考的 MD5、SHA1 或者 SHA2 校验和。
  • tailoring-path - 应使用裁剪文件的路径,在归档中使用相对路径。
使用安装介质中 scap-security-guide 内容的 %addon org_fedora_oscap 部分类似如下:

例 23.2. 使用 SCAP Security Guide 的 OpenSCAP 附加组件定义示例

%addon org_fedora_oscap
  content-type = scap-security-guide
  profile = pci-dss
%end
可从网页服务器载入自定义配置文件的复杂示例类似如下:

例 23.3. 使用 Datastream 的 OpenSCAP 附加组件定义示例

%addon org_fedora_oscap
  content-type = datastream
  content-url = http://www.example.com/scap/testing_ds.xml
  datastream-id = scap_example.com_datastream_testing
  xccdf-id = scap_example.com_cref_xccdf.xml
  profile =  xccdf_example.com_profile_my_profile
  fingerprint = 240f2f18222faa98856c3b4fc50c4195
%end
有关 OpenSCAP 安装程序附加组件附加信息,请查看 https://fedorahosted.org/oscap-anaconda-addon/。有关 SCAP Security Guide 中的可用配置文件详情及其功能,请查看 OpenSCAP 门户网站
part 或者 partition(强制)
在系统中创建分区。

警告

除非使用 --noformat--onpart,否则生成的所有分区都是安装过程的一部分。

重要

不保证使用 sdX(或者 /dev/sdX)格式的设备名称在重启后会保留,这让一些 Kickstart 命令的用法变得复杂。当某个命令调用设备节点名称时,则可使用 /dev/disk 中的项目。例如不使用:
part / --fstype=xfs --onpart=sda1
而使用类似以下条目之一:
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
这样此命令会指向同一存储设备。这对大型存储环境特别有帮助。有关使用不同方法持续指定存储设备的详情,请参看《Red Hat Enterprise Linux 7 存储管理指南》中有关持久存储设备命名一章。
有关在操作中 part 的详细示例请参考 第 23.4.1 节 “高级分区示例”
part|partition mntpoint --name=name --device=device --rule=rule [options]
  • mntpoint - 是该分区挂载的位置,且数值必须是以下格式之一:
    • /path
      例如://usr/home
    • swap
      该分区被用作交换空间。
      要自动决定 swap 分区的大小,使用 --recommended 选项:
      swap --recommended
      分配的大小将生效,但不会根据系统进行精确地校准。
      要自动决定 swap 分区的大小,但还要允许您的系统有附加空间以便可以休眠,请使用 --hibernation 选项:
      swap --hibernation
      分配的分区大小将与 --recommended 加上系统 RAM 量相等。
      有关这些命令分配的 swap 大小请查看 第 6.14.4.5 节 “推荐的分区方案”(AMD64 和 Intel 64 系统);第 11.15.4.5 节 “推荐分区方案”(IBM Power Systems 服务器);第 15.15.3.5 节 “推荐的分区方案”(IBM System z)。
    • raid.id
      该分区用于软件 RAID(请参考 raid)。
    • pv.id
      该分区用于 LVM(请参考 logvol)。
    • biosboot
      该分区用于 BIOS 引导分区。使用 GUID 分区表(GPT)的基于 BIOS 的 AMD64 和 Intel 64 系统的 boot 分区大小为 1MB,将在其中安装引导装载程序。在 UEFI 系统中不一定是这样。详情请查看 bootloader 命令。
    • /boot/efi
      EFI 系统分区。基于 UEFI 的 AMD64 和 Intel 64 系统使用 500MB 的 EFI 分区,建议大小为 200MB。在 BIOS 系统中不一定是这样。详情请查看 bootloader 命令。
  • --size= - 以 MB 为单位的分区最小值。在此处指定一个整数值,如 500(不要在数字后面加单位)。

    重要

    如果 --size 值太小,安装会失败。将 --size 值设置为您要求的最小空间大小。关于空间大小的建议值,请查看 第 6.14.4.5 节 “推荐的分区方案”
  • --grow - 让逻辑卷使用所有可用空间(若有),或使用设置的最大值(如果指定最大值)。

    注意

    如果使用 --grow 但没有在 swap 分区中设定 --maxsize=Anaconda 会将最大值限制在 swap 分区的大小。对于物理内存小于 2GB 的系统,强加的限制为物理内存值的两倍。对于内存大于 2GB 的系统,这个强制限制为物理内存值再加 2GB。
  • --maxsize= - 将分区设置为可扩充时的最大分区大小(以 MB 为单位)。在这里指定一个整数值如 500(不要在数字后加单位)。
  • --noformat - 指定安装程序不要格式化分区,和 --onpart 命令一起使用。
  • --onpart= 或者 --usepart= - 指定该设备所处分区。例如:
    partition /home --onpart=hda1
    /home 置于 /dev/hda1 上。
    这些选项还可以在逻辑卷中添加分区。例如:
    partition pv.1 --onpart=hda2
    这个设备必须已经在系统里,--onpart 选项不会创建设备。
  • --ondisk= 或者 --ondrive= - 强制在特定磁盘中创建分区。例如:--ondisk=sdb 会将分区置于系统的第二个 SCSI 磁盘中。
    要指定不使用逻辑卷管理(LVM)的多路径设备,请使用 disk/by-id/dm-uuid-mpath-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要指定 WWID 为 2416CD96995134CA5D787F00A5AA11017 的磁盘,请使用:
    part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=disk/by-id/dm-uuid-mpath-2416CD96995134CA5D787F00A5AA11017
    Anaconda 解析 kickstart 文件前不会编译使用 LVM 的多路经设备。因此,您无法使用 dm-uuid-mpath 格式指定这些设备。反之,要清除使用 LVM 的多路经设备,请使用 disk/by-id/scsi-WWID 格式,其中 WWID 是该设备的通用识别符。例如:要清除 WWID 为 58095BEC5510947BE8C0360F604351918 的磁盘,请使用:
    part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=disk/by-id/scsi-58095BEC5510947BE8C0360F604351918

    警告

    永远不要使用类似 mpatha 的设备名称指定多路径设备。类似这样的设备名称不是具体到某个磁盘。在安装过程中命名为 /dev/mpatha 的磁盘可能并不是您希望得到的那个。因此 clearpart 命令可能会对错误的磁盘进行操作。
  • 强制将该分区分配为分区。如果无法将该分区作为主分区使用(通常是因为已有太多主分区),则该分区进程会失败。只有使用主引导记录(MBR)时这个选项才有意义。对于使用 GUID 分区表(GPT)标记的磁盘,这个选项没有任何意义。有关主(及扩展)分区详情请查看 第 A.1.2 节 “分区:将一个驱动器变成多个”
  • --fsprofile= - 指定传递给在这个分区上创建文件系统的应用程序的使用类型。使用类型定义了创建文件系统时使用的各种微调参数。要使用这个选项,文件系统必须支持使用类型,且必须包含列出有效类型的配置文件。对于 ext2ext3ext4,这个配置文件是 /etc/mke2fs.conf
  • --mkfsoptions= - 指定要传递给该程序以便在这个分区中建立文件系统的附加参数。这个参数类似 --fsprofile,但可用于所有文件系统,而不只是支持该配置文件概念的文件系统。没有对该参数列表进行任何操作,因此必须以可以直接传递给 mkfs 程序的格式提供。就是说应根据文件系统使用逗号分开,或使用双引号分开多个选项。
  • --fstype= - 为分区设置文件系统类型。有效值有:xfsext2ext3ext4swapvfatefibiosboot
  • --fsoptions - 指定在挂载文件系统时所用选项的自由格式字符串。将这个字符串复制到已安装系统的 /etc/fstab 中,并使用引号括起来。
  • --label= - 为独立分区分配标签。
  • --recommended - 自动决定分区大小。有关推荐方案详情请查看 第 6.14.4.5 节 “推荐的分区方案”(AMD64 和 Intel 64 系统); 第 11.15.4.5 节 “推荐分区方案”(IBM Power Systems); 和 第 15.15.3.5 节 “推荐的分区方案”(IBM System z)。

    重要

    这个选项只可用于分区,以得到文件系统,比如 /boot 分区和 swap 空间。还可用来创建 LVM 物理卷或 RAID 成员。
  • --onbiosdisk - 强制在由 BIOS 发现的特定磁盘中创建分区。
  • --encrypted - 指定应该用 --passphrase 选项提供的密码短语加密这个分区。如果没有指定密码短语,Anaconda 将使用由 autopart --passphrase 命令设定的默认系统级密码,或者在未设置默认密码短语时暂停安装并提示您输入密码短语。

    注意

    加密一个或多个分区时,Anaconda 尝试收集 256 字节熵,以保证对分区安全加密
    与安装系统互动可加速此进程(使用键盘输入或移动鼠标)。如果要在虚拟机中安装系统,则可添加 virtio-rng 设备(虚拟随机数生成器),如 《Red Hat Enterprise Linux 7.1; 虚拟化部署及管理指南》所述。
  • --passphrase= - 指定在加密这个分区时要使用的密码短语。这个选项必须与 --encrypted 选项一同使用,单独使用无效。
  • --cipher= - 指定不满意 Anaconda 默认 aes-xts-plain64 时要使用的加密类型。这个选项必须与 --encrypted 选项一同使用,单独使用无效。 《Red Hat Enterprise Linux 7 安全指南》中有可用加密类型列表,但红帽强烈推荐您使用 aes-xts-plain64 或者 aes-cbc-essiv:sha256
  • --escrowcert=URL_of_X.509_certificate - 将所有加密分区数据加密密码作为文件保存在 /root 中,使用由 URL_of_X.509_certificate 指定的 URL 中的 X.509 证书加密。每个加密分区的密码都作为单独的文件保存。只有指定 --encrypted 时这个选项才有意义。
  • --backuppassphrase - 为每个加密分区添加随机生成的密码短语。将这些密码保存在 /root 目录下的独立文件中,使用 --escrowcert 指定的 X.509 证书加密。只有指定 --escrowcert 时这个选项才有意义。
  • --resize= - 重新定义现有分区大小。使用这个选项时,请使用 --size= 选项指定目标大小(单位 MB),同时使用 --onpart= 选项指定目标分区。

注意

如果因为某种原因分区失败了,虚拟控制台 3 中会显示诊断信息。
pwpolicy(自选)
这个命令可用来强制使用自定义密码策略,即根据密码长度和强度等因素指定在安装过程中生成的要求。
pwpolicy name [--minlen=length] [--minquality=quality] [--strict|--nostrict] [--emptyok|--noempty] [--changesok|--nochanges]
使用 rootuser 或者 luks 替换 name,以便在 root 密码、用户密码或 LUKS 密码中分别强制使用该策略。
libpwquality 库是用来检查最低密码要求(长度和质量)。可使用 libpwquality 软件包提供的 pwscorepwmake 命令检查密码质量得分,或使用给定分数创建随机密码。有关这些命令的详情请查看 pwscore(1)pwmake(1) 手册页。

重要

这个命令只能在 %anaconda 部分中使用。
  • --minlen= - 设置允许密码长度的最小值,以字符为单位。默认值为 8
  • --minquality= - 设置 libpwquality 库定义的允许密码最小值。默认值为 50
  • --strict - 启用严格的密码强制。不接受不满足 --minquality= 中所设定要求的密码。默认启用这个选项。
  • --notstrict - 可以接受不满足 --minquality= 选项所设定要求的密码,但需要点击 完成 两次。
  • --emptyok - 允许使用空密码。默认启用此选项。
  • --notempty - 不允许使用空密码。默认禁用此选项。
  • --changesok - 即使 Kikcstart 文件已指定密码,也允许在用户界面中更改该密码。默认禁用此选项。
  • --nochanges - 若在 Kickstart 文件中已设置密码,则不允许更改。默认启用此选项。
poweroff(自选)
在安装成功后关闭系统并断电。通常,在手动安装过程中,Anaconda 会显示一条信息并等待用户按任意键重启系统。在 kickstart 的安装过程中,如果没有指定完成方法,将使用默认的 halt 选项。
poweroff 选项等同于 shutdown -p 命令。

注意

poweroff 命令高度依赖所使用的系统硬件。特别是,某些硬件部件如 BIOS、APM(高级电源管理)和 ACPI(高级配置和电源界面)必须能和系统内核相互作用。关于系统的 APM/ACPI 容量的详情,请参看您的硬件文档。
关于其他完成方法,请参考 haltrebootshutdown Kickstart 命令。
raid(自选)
组成软件 RAID 设备。该命令的格式是:
raid mntpoint --level=level --device=device-name partitions*
  • mntpoint - 挂载 RAID 文件系统的位置。如果它是 /,RAID 级别必须是 1,除非引导分区(/boot)存在。如果引导分区存在,/boot 分区必须是级别 1,root(/)分区可以是任何可用的类型。partitions*(代表多个分区可以被列举)列举了要添加到 RAID 阵列的 RAID 标记。

    重要

    在 IBM Power Systems 中,如果在安装过程中准备了 RAID 设备但还未重新格式化,而且您想在这个 RAID 设备中放置 /bootPReP 分区,请确保 RAID 的元数据版本是 0.90
    引导设备不支持默认 Red Hat Enterprise Linux 7 mdadm 元数据版本。
    有关在操作中 raid 的详细示例请参考 第 23.4.1 节 “高级分区示例”
  • --level= - 要使用的 RAID 级别(0、1、4、5、6 或者 10)。有关各种可用 RAID 级别的详情,请查看 第 6.14.4.2 节 “创建软件 RAID”
  • --device= - 要使用的 RAID 设备名称 - 例如:--device=root

    重要

    请勿在格式 md0 中使用 mdraid 名称 - 无法保证这些名称不会变化。应使用有含义的名称,比如 root 或者 swap。使用有含义的名称在 /dev/md/name 中创建符号链接,并在此将 /dev/mdX 节点分配到该阵列中。
    如果有无法为其分配名称的旧阵列(v0.90 元数据),则可以使用文件系统标签或者 UUID 指定该阵列(例如:--device=rhel7-root --label=rhel7-root)。
  • --spares= - 指定为 RAID 阵列分配的备用驱动器数目。可使用备用驱动器在驱动器失败时重建阵列。
  • --fsprofile= - 指定传递给在这个分区上创建文件系统的应用程序的使用类型。使用类型定义了创建文件系统时使用的各种微调参数。要使用这个选项,文件系统必须支持使用类型,且必须有列出有效类型的配置文件。对于 ext2、ext3 和 ext4,这个配置文件是 /etc/mke2fs.conf
  • --fstype= - 为 RAID 阵列设置文件系统类型。有效值有:xfsext2ext3ext4swapvfat
  • --fsoptions= - 指定在挂载文件系统时所用选项的自由格式字符串。将这个字符串复制到安装的系统的 /etc/fstab 中,并使用括号括起来。
  • --mkfsoptions= - 指定要提供的附加参数,以便在这个分区中建立文件系统。没有对任何参数列表执行任何操作,因此必须使用可直接为 mkfs 程序提供的格式。就是说可使用逗号分开或双引号分开的多个选项,要看具体文件系统。
  • --label= - 为要生成的文件系统指定该标签。如果给定标签已由另一个文件系统使用,则会生成一个新标签。
  • --noformat - 使用现有的 RAID 设备,且不要格式化 RAID 阵列。
  • --useexisting - 使用现有的 RAID 设备并重新格式化。
  • --encrypted - 指定应该用 --passphrase 选项提供的密码短语加密这个 RAID 设备。如果没有指定密码短语,Anaconda 将使用由 autopart --passphrase 命令设定的默认系统级密码,或者在未设置默认密码短语时暂停安装并提示您输入密码短语。

    注意

    加密一个或多个分区时,Anaconda 尝试收集 256 字节熵,以保证对分区安全加密
    与安装系统互动可加速此进程(使用键盘输入或移动鼠标)。如果要在虚拟机中安装系统,则可添加 virtio-rng 设备(虚拟随机数生成器),如 《Red Hat Enterprise Linux 7.1; 虚拟化部署及管理指南》所述。
  • --cipher= - 指定如果对 Anaconda 默认 aes-xts-plain64 不满意时要使用的加密类型。这个选项必须与 --encrypted 选项一同使用,单独使用无效。 《Red Hat Enterprise Linux 7 安全指南》中有可用加密类型列表,但 Red Hat 强烈推荐您使用 aes-xts-plain64 或者 aes-cbc-essiv:sha256。
  • --passphrase= - 指定在加密这个 RAID 设备时要使用的密码短语。这个选项必须与 --encrypted 选项一同使用,单独使用无效。
  • --escrowcert=URL_of_X.509_certificate - 将这个设备的数据加密密钥保存在 /root 中,使用来自 URL_of_X.509_certificate 指定的 URL 的 X.509 证书加密。每个加密卷的密码都单独保存。这个选项只在指定 --encrypted 时才有意义。
  • --backuppassphrase - 为这个设备添加随机生成的密码短语。将这些密码短语以独立文件形式保存在 /root 中,使用 --escrowcert 指定的 X.509 证书加密。这个选项只在指定 --escrowcert 时才有意义。
下面的示例展示了假定系统里有三个 SCSI 磁盘的情况下,怎样创建 / 上的 RAID 1 分区,以及 /home 上的 RAID 5 分区。它也为每个磁盘创建 swap 分区,一共三个。

例 23.4. 使用 raid Kickstart 命令

part raid.01 --size=6000 --ondisk=sda
part raid.02 --size=6000 --ondisk=sdb
part raid.03 --size=6000 --ondisk=sdc

part swap --size=512 --ondisk=sda
part swap --size=512 --ondisk=sdb
part swap --size=512 --ondisk=sdc

part raid.11 --size=1 --grow --ondisk=sda
part raid.12 --size=1 --grow --ondisk=sdb
part raid.13 --size=1 --grow --ondisk=sdc

raid / --level=1 --device=rhel7-root --label=rhel7-root raid.01 raid.02 raid.03
raid /home --level=5 --device=rhel7-home --label=rhel7-home raid.11 raid.12 raid.13
realm(自选)
加入 Active Directory 或者 IPA 域。有关此命令的详情请参考 realm(8) man page 的 join 部分。
realm join domain [options]
  • --computer-ou=OU= - 提供与组织单位不同的可识别名称,以便生成计算机帐户。可识别名称的具体格式取决于客户端软件和成员软件。可跳过该可识别名称的 root DSE 部分。
  • --no-password - 无需密码自动加入。
  • --one-time-password= - 使用一次性密码加入。不是在所有域中都使用。
  • --client-software= - 只能加入可运行这个客户端软件的域。有效值包括 sssdwinbind。不是所有域都支持所有值。默认情况下可自动选择客户端软件。
  • --server-software= - 只能加入可运行这个服务器软件的域。可能值包括 active-directory 或者 freeipa
  • --membership-software= - 加入域时使用这个软件。有效值包括 sambaadcli。不是所有域支持所有值。默认情况下是自动选择成员软件。
reboot(自选)
在成功完成安装(没有参数)后重新引导。通常,Kickstart 会显示信息并等待用户按任意键来重新引导系统。
reboot 选项等同于 shutdown -r 命令。
reboot 指定为在 System z 的命令行模式中安装时进行完全自动安装。
关于其他的完成方法,请参考 haltpoweroffshutdown Kickstart 选项。
如果在 Kickstart 文件中没有明确指定其他方法,则默认使用 halt 选项完成。

注意

使用 reboot 选项可能会导致安装的死循环,这要看具体的安装介质和方法。
  • --eject - 重启前尝试弹出安装 DVD(如果是使用 DVD 安装)。
  • --kexec - 使用 kexec 系统调用而不是执行完整重启,这样可以立即将按照的系统载入内存,绕过通常由 BIOS 或固件执行的硬件初始化。

    重要

    由于使用 kexec 引导系统时非常复杂,因此无法单独测试,也无法保证在所有环境中均可正常进行。
    使用 kexec 后,设备注册程序中仍有数据(系统完全引导后通常会清除数据),这样可能会影响一些设备驱动程序。
repo(自选)
配置作为软件包安装来源的额外的 yum 库。可以指定多个 repo 行。
repo --name=repoid [--baseurl=<url>|--mirrorlist=url] [options]
  • --name= - 该库的 id。这个选项是必选项。如果库名称与另一个之前添加的库冲突,则会忽略它。因为这个安装程序使用预先配置的库列表,就是说您无法添加名称与预先配置的库相同的库。
  • --baseurl= - 程序库的 URL。这里不支持 yum 库配置文件中使用的变量。可以使用这个选项,也可以使用 --mirrorlist,但不能同时使用这两个选项。
  • --mirrorlist= - URL 指向该程序库的一组镜像。这里不支持 yum 库配置文件中使用的变量。可以使用这个选项,也可以使用 --baseurl,但不能同时使用这两个选项。
  • --install - 将所安装系统提供的存储库配置保存在 /etc/yum.repos.d/ 目录中。不使用这个选项,在 Kickstart 文件中配置的程序库只能在安装过程中使用,而无法在安装的系统中使用。
  • --cost= - 为这个库分配的 cost 整数值。如果多个库提供同样的软件包,这个数字就是用来规定那个库优先使用,cost 较低的库比 cost 较高的库优先。
  • --excludepkgs= - 逗号分开的软件包名称列表,同时一定不能从这个存储库中提取该软件包名称。如果多个库提供同样的软件包,且要保证其来自某个特定存储库,这个选项就很有用了。可接受完整软件包名称(比如 publican)和 globs(比如 gnome-*)。
  • --includepkgs= - 逗号分开的软件包名称列表,同时一定要从这个存储库中提取 glob。如果多个存储库提供同样的软件包,且要保证其来自某个特定存储库,这个选项就很有用了。
  • --proxy=[protocol://][username[:password]@]host[:port] - 指定只有这个存储库使用的 HTTP/HTTPS/FTP 代理服务器。这个设置不会影响其他存储库,也不会影响将 install.img 附加到 HTTP 安装的方法。
  • --ignoregroups=true - 组成安装树时使用这个选项,且对安装过程本身没有影响。它告诉组合工具在镜像树时不要查看软件包组信息,这样就不会镜像大量无用数据。
  • --noverifyssl - 连接到 HTTPS 服务器时禁止 SSL 验证。

重要

用于安装的库必须稳定。如果在安装完成前修改库,则安装会失败。
rescue(自选)
自动进入该安装程序的救援模式。这让您在出现任何问题是有机会修复。
rescue [--nomount|--romount]
  • --nomount 或者 --romount - 控制如何将安装的系统挂载到救援环境中。默认情况下该安装程序会找到您的系统,并以读-写模式挂载它,同时告知在哪里执行这个挂载。也可以选择不要挂载任何系统(--nomount 选项)或者以只读模式挂载(--romount 选项)。只能使用这两个选项中的一个。
reqpart(自选)
自动创建您的硬件平台需要的分区。这些分区包括 UEFI 固件所需 /boot/efi 分区、BIOS 固件和 GPT 所需 biosboot 分区、以及 IBM Power Systems 所需 PRePBoot分区。
reqpart [--add-boot]
  • --add-boot - 除使用基本命令创建的具体平台所需分区外,使用此选项创建独立 /boot 分区。

注意

这个命令可与 autopart 一同使用,因为 autopartreqpart 命令功能一致。另外,还可以创建其他分区或逻辑卷,比如 /swap。与 autopart 不同,这个命令只能创建具体平台的分区,并保持驱动器的其他部分空白,以便创建自定义布局。
rootpw(必填项)
使用 password 参数设定该系统的 root 密码。
rootpw [--iscrypted|--plaintext] [--lock] password
  • --iscrypted - 如果给出这个选项,则假设加密 password 参数。这个选项与 --plaintext 相互排斥。可以使用 python 生成加密的密码:
    $ python -c 'import crypt; print(crypt.crypt("My Password"))'
    这样会使用随机 salt 为密码生成 sha512 密码相容哈希。
  • --plaintext - 如果给出这个选项,则假设该 password 参数为明文。这个选项与 --iscrypted 相互排斥。
  • --lock - 如果给出这个选项,则默认锁定 root 帐户。也就是说 root 用户无法从控制台登录。这个选项还在图形和文本手动安装中禁用 Root 密码 页面。
selinux(自选)
在安装的系统中设置 SELinux 状态。默认 SELinux 策略为 enforcing
selinux [--disabled|--enforcing|--permissive]
  • --enforcing - 根据默认针对性策略,即 enforcing 启用 SELinux。
  • --permissive - 根据 SELinux 策略给出警告信息,但并不强制执行该策略。
  • --disabled - 在系统中完全禁用 SELinux。
有关 Red Hat Enterprise Linux 中 SELinux 的详情请查看《Red Hat Enterprise Linux 7 SELinux 用户及管理员指南》
services(自选)
修改在默认 systemd 目标中运行的默认服务集。禁用列表列出的服务会在启用列表之前进行处理。因此,如果某个服务同时出现这两个列表中,那么它会被启用。
services [--disabled=list] [--enabled=list]
  • --disabled= - 禁用在以逗号分开的列表中给出的服务。
  • --enabled= - 启用在以逗号分开的列表中给出的服务。

重要

不要在服务列表中包含空格。如果有空格,则 Kickstart 将只启用或者禁用第一个空格之前的服务。例如:
services --disabled=auditd, cups,smartd, nfslock
只禁用 auditd 服务。要禁用所有四个服务,这个条目就不应该有空格:
services --disabled=auditd,cups,smartd,nfslock
shutdown(自选)
在成功地完成安装后关闭系统。在 Kickstart 安装过程中,如果没有指定完成方法,将默认使用 halt 命令。
shutdown Kickstart 选项等同于 shutdown 命令。
关于其他的完成方法,请参考 haltpoweroffreboot Kickstart 选项。
skipx(自选)
如果出现该选项,那就是在安装的系统中没有配置 X

重要

如果在软件包选择选项中选择了安装 display manager,这个软件包将生成 X 配置,同时安装的系统将默认为 graphical.targetskipx 选项的效果将被覆盖。
sshpw(自选)
在安装过程中,您可与安装程序互动并通过 SSH 连接监控其进度。使用 sshpw 命令创建登录的临时帐号。该命令的每个实例都生成一个只用于安装环境的独立帐户。这些帐户不会转移到安装的系统中。
sshpw --username=name password [--iscrypted|--plaintext] [--lock]
  • --username - 提供用户的名称。这是必填项。
  • --iscrypted - 如果给出这个选项,则假设加密 password 参数。这个选项与 --plaintext 相互排斥。可以使用 python 生成加密的密码:
    $ python -c 'import crypt; print(crypt.crypt("My Password"))'
    这样会使用随机 salt 为密码生成 sha512 密码相容哈希。
  • --plaintext - 如果给出这个选项,则假设该 password 参数为明文。这个选项与 --iscrypted 相互排斥。
  • --lock - 如果给出这个选项,则默认锁定这个帐户。也就是说该用户无法从控制台登录。

重要

默认情况下不会在安装过程中启动 ssh 服务器。要让 ssh 在安装过程中可用,请使用 inst.sshd 内核引导选项引导该系统。详情请查看 控制台、环境和显示选项

注意

请使用以下命令在安装过程中禁止 root ssh 访问您的硬件:
sshpw --username=root --lock
text(自选)
以文本模式转型 Kickstart 安装。默认采用图形模式转型 Kickstart 安装。

重要

要进行完全自动安装,则必须在 Kickstart 文件中指定可用模式之一(graphicaltext 或者 cmdline),或必须使用 console= 引导选项,如 控制台、环境和显示选项 所述。如果没有指定任何模式,则系统会提示您选择一个模式以便继续安装。
timezone(必填项)
将系统时区设定为 timezone。请使用 timedatectl list-timezones 命令查看可用时区列表。
timezone timezone [options]
  • --utc - 如果存在,系统就会假定硬件时钟被设置为 UTC(格林威治标准)时间。
  • --nontp - 禁止自动启动 NTP 服务。
  • --ntpservers= - 指定要使用的 NTP 服务器列表,该列表使用逗号分开,没有空格。
unsupported_hardware(自选)
让安装程序绕过 探测到不支持的硬件 警告。如果不包括这个命令,同时探测到不支持的硬件,则安装会之出现此警告时停止。
user(自选)
在系统中生成新用户。
user --name=username [options]
  • --name - 提供用户的名称。这是必填项。
  • --gecos= - 为用户提供 GECOS信息。这个字符串中包括使用逗号分开的各种具体系统使用的字段。会频繁使用它来指定用户全名、办公室电话等信息。详情请查看 passwd(5) 手册页。
  • --groups= - 除默认组外,还有以逗号分开的该用户所属组群列表。在生成该用户帐户前该这些组就应该存在。详情请查看 group 命令。
  • --homedir= - 用户主目录。如果没有提供,则默认为 /home/username
  • --lock - 如果给出这个选项,则默认锁定这个帐户。也就是说该用户无法从控制台登录。这个选项还在图形和文本手动安装中禁用 创建用户 页面。
  • --password= - 新用户的密码。如果没有提供,则默认锁定该帐户。
  • --iscrypted - 如果给出这个选项,则假设加密 password 参数。这个选项与 --plaintext 相互排斥。可以使用 python 生成加密的密码:
    $ python -c 'import crypt; print(crypt.crypt("My Password"))'
    这样会使用随机 salt 为密码生成 sha512 密码相容哈希。
  • --plaintext - 如果给出这个选项,则假设该 password 参数为明文。这个选项与 --iscrypted 相互排斥。
  • --shell= - 用户的登录 shell。如果没有提供,则使用系统默认 shell。
  • --uid= - 用户的 UID(用户 ID)。如果没有提供,则默认使用下一个可用的非系统 UID。
  • --gid= - 该用户组使用的 GID(组 ID)。如果未提供,则默认使用下一个可用的非系统 GID。

    重要

    因为有程序错误,所以目前无法使用 --gid=。在 Kickstart 文件中使用该选项可造成安装显示出错信息并失败。这是一个已知问题。

注意

使用不同权限创建的文件和目录,由用来创建文件或目录的应用程序指定。例如:mkdir 命令创建启用了所有权限的目录。但根据 user file-creation mask 设置,应用程序不能为新创建的文件授予某些权限 。
可使用 umask 命令控制 user file-creation mask。新用户的 user file-creation mask 默认设置是由已安装系统 /etc/login.defs 配置文件中的 UMASK 变量定义。如果没有设定,则默认值为 022。这就是说在默认情况下,当某个应用程序创建一个文件时,会防止为该文件所有者以外的用户授予写入权限。但可使用其他设置或脚本覆盖此选项。
vnc(自选)
允许通过 VNC 远程查看图形模式安装。文本模式的安装通常更喜欢使用这个方法,因为在文本模式中有某些大小和语言的限制。如果没有其他附加选项,这个命令将在不需要密码的系统中启动 VNC 服务器,并显示需要运行以便连接该服务区所需详情。
vnc [--host=hostname] [--port=port] [--password=password]
  • --host= - 连接侦听给定主机中的 VNC viewer 进程。
  • --port= - 提供远程 VNC viewer 进程进行侦听的端口。如果没有提供,Anaconda 将使用 VNC 默认端口 5900。
  • --password= - 设定必须为连接 VNC 会话提供的密码。这是自选选项,但推荐使用。
有关 VNC 安装的详情,包括如何连接到安装系统的步骤,请查看 第 22 章 使用 VNC 安装
volgroup(自选)
生成逻辑卷管理(LVM)组。
volgroup name partition [options]

重要

使用 Kickstart 安装 Red Hat Enterprise Linux 时,不要在逻辑卷和卷组名称中使用小横线(-)。如果使用这个字符,会完成安装,但 /dev/mapper/ 目录列出这些卷和卷组时,小横线会加倍。例如:某个卷组名为 volgrp-01,包含名为 logvol-01 逻辑卷,该逻辑卷会以 /dev/mapper/volgrp--01-logvol--01 列出。
这个限制只适用于新创建的逻辑卷和卷组名。如果您使用 --noformat 选项重复使用现有名称,它们的名称就不会更改。
有关分区示例,包括 volgroup 的详情请查看 第 23.4.1 节 “高级分区示例”
这些选项如下所示:
  • --noformat - 使用现有卷组,且不进行格式化。
  • --useexisting - 使用现有卷组并重新格式化。如果使用这个选项,请勿指定 partition。例如:
    volgroup rhel00 --useexisting --noformat
  • --pesize= - 以 KiB 为单位设定卷组物理扩展大小。默认值为 4096 (4 MiB),最小值为 1024 (1 MiB)。
  • --reserved-space= - 以 MB 为单位指定在卷组中预留的未使用空间量。只适用于新生成的卷组。
  • --reserved-percent= - 指定卷组中预留未使用空间的比例。只适用于新生成的卷组。
首先创建分区,然后创建逻辑卷组,再创建逻辑卷。例如:
part pv.01 --size 10000
volgroup volgrp pv.01 
logvol / --vgname=volgrp --size=2000 --name=root
xconfig(自选)
配置 X Window 系统。如果您用不包含 xconfig 命令的 Kickstart 文件安装 X Window 系统,您必须在安装时手动提供 X 配置。
请不要在不安装 X Window 系统的 Kickstart 文件中使用这个命令。
  • --defaultdesktop= - 将默认桌面设置成 GNOME 或者 KDE(假设已根据 %packages 安装了 GNOME Desktop Environment 和(/或者) KDE Desktop Environment)。

    重要

    目前不能使用这个选项将 KDE 指定为默认桌面环境。这是一个已知问题。临时解决方案请查看 https://access.redhat.com/solutions/1125833。这个临时解决方案可作为 Kickstart 后安装脚本使用,如 第 23.3.6 节 “安装后脚本” 所述。
  • --startxonboot - 在安装的系统中使用图形界面登录。
zerombr(自选)
指定 zerombr,初始化所有可在磁盘中找到的有效分区表。这样会破坏所有使用无效分区表磁盘中的内容。在使用之前初始化的磁盘的系统中执行自动安装时需要这个命令。

警告

在 IBM System z 中,如果指定了 zerombr,安装程序可看到所有直接访问存储设备(DASD),即没有使用低级格式化的 DASD 也会使用 dasdfmt 自动进行低级格式化。这个命令还防止用户在互动安装过程中进行选择。
如果未指定 zerombr,且该安装程序至少可以看到一个未格式化的 DASD,则无法成功退出非互动 Kickstart 安装。
如果未指定 zerombr,且该安装程序至少可以看到一个未格式化的 DASD,则如果用户未同意格式化所有可以看到且未格式化的 DASD,那么就存在互动安装。要绕过这个陷阱,只能激活那些您要在安装过程中使用的 DASD。安装完成后您还是可以添加更多的 DASD。
zfcp(自选)
定义光纤设备。这个选项只可用于 IBM System z。必须指定所有下述选项。
zfcp --devnum=devnum --wwpn=wwpn --fcplun=lun
  • --devnum - 设备号(zFCP 适配器设备总线 ID)。
  • --wwpn - 该设备的全球端口名称(WWPN)。其格式为 16 位数字,以 0x 开头。
  • --fcplun - 该设备的本地单元号(LUN)。其格式为 16 位数字,以 0x 开头。
例如:
zfcp --devnum=0.0.4000 --wwpn=0x5005076300C213e9 --fcplun=0x5022000000000000
%include(自选)
使用 %include /path/to/file 命令将其他文件中的内容包括在 kickstart 文件中,就好像那些内容原本就在 kickstart 文件的 %include 命令部分。

重要

安装 Red Hat Enterprise Linux Atomic Host 时需要这个命令。采用以下方法将其指向 interactive-defaults.ks 文件:
%include /usr/share/anaconda/interactive-defaults.ks

23.3.3. 软件包选择

在 Kickstart 文件中使用 %packages 命令列出要安装的软件包。
可以根据环境或者其软件包名称指定软件包。安装程序定义包含相关软件包的几个环境和组。有关环境和组列表请查看 Red Hat Enterprise Linux 7 安装光盘中的 repodata/*-comps-variant.architecture.xml 文件。
*-comps-variant.architecture.xml 文件包含描述可用环境(使用 <environment> 标签标记)和组(<group> 标记)的结构。每个组都有一个 ID、用户可见性数值、名称、描述和软件包列表。如果未安装选择该组,那么就会安装该软件包列表中标记为 mandatory 的软件包;如果未明确指定,也会安装标记为 default 的软件包,而标记为 optional 的软件包必须在明确指定后方可安装。
您可以使用 ID(<id> 标签)或者名称(<name> 标签)指定软件包组或者环境。

重要

安装 Red Hat Enterprise Linux Atomic Host 时不能使用这个命令。

重要

要在 64 位系统中安装 32 位软件包,则需要添加用来构建该软件包的 32 位结构软件包名称,例如:glibc.i686。还必须在 Kickstart 文件中指定 --multilib 选项。可用选项如下。

重要

使用 Kickstart 文件安装系统后,Initial Setup 不会运行,除非在安装中包含桌面环境和 X Window System,并启用了图形登录。就是说默认情况下只生成 root 用户。可以使用 Kickstart 文件中的 user 选项,在安装附加系统前创建用户(详情请查看 第 23.3.2 节 “Kickstart 命令及选项”);或者通过虚拟控制台作为 root 登录已安装的系统,并使用 useradd 命令添加用户。
%packages 部分必须以 %end 命令结尾。
指定环境
除组外,您还要指定要安装的整体环境:
%packages
@^Infrastructure Server
%end
这个命令将安装作为 基础设施服务器 环境一部分的所有软件包。所有可用环境请参考 Red Hat Enterprise Linux 7 安装光盘的 *-comps-variant.architecture.xml 文件。在 Kickstart 文件中只能指定一个环境。
指定组
指定组,每个条目一行,以 @ 符号开始,接着是空格,然后是完整的组名或 *-comps-variant.architecture.xml 中指定的组 id。例如:
%packages
@X Window System
@Desktop
@Sound and Video
%end
永远都要选择 CoreBase 组,所以并不需要在 %packages 部分指定它们。
*-comps-variant.architecture.xml 文件还为 Red Hat Enterprise Linux 的每个变体定义名为 Conflicts (variant) 的组。这个组包含已知可造成冲突并将要排除的所有软件包。
指定独立软件包
根据名称指定独立软件包,每行一个条目。您可以在软件包名称中使用星号(*)作为通配符。例如:
%packages
sqlite
curl
aspell
docbook*
%end
docbook* 条目包含 docbook-dtdsdocbook-simpledocbook-slides 和其他匹配这个通配符模式的软件包。
排除环境、组或者软件包
使用小横线(-)开头指定安装中不使用的软件包或组。例如:
%packages
-@Graphical Internet
-autofs
-ipa*fonts
%end

重要

不支持在 Kickstart 文件中只使用 * 安装所有可用软件包,即使排除 @Conflicts (variant) 组也不行。
您可以使用几个选项更改 %packages 部分的默认行为。有些选项可用于所有软件包选择,其他则只能用于具体的组。

常用软件包选择选项

以下选项可用于 %packages。要使用这个选项,请将其添加到软件包选择部分的开始。例如:
%packages --multilib --ignoremissing
--default
安装默认软件包组。这与在互动安装过程中的 软件包选择 页面中没有其他选择时要安装的软件包组对应。
--excludedocs
不要安装软件包中的任何文档。大多数情况下,这样会排除一般安装在 /usr/share/doc* 目录中的所有文件,但要排除的具体文件取决于各个软件包。
--ignoremissing
忽略所有在这个安装源中缺少的软件包、组及环境,而不是暂停安装询问是应该放弃还是继续安装。
--instLangs=
指定要安装的语言列表。注:这与软件包组等级选择不同。这个选项不会告诉您应该安装哪些软件包组,而是通过设置 RPM 宏控制应该安装独立软件包中的哪些事务文件。
--multilib
为 multilib 软件包配置已安装的系统(即允许在 64 位系统中安装 32 位软件包),并安装在这一部分指定的软件包。
通常在 AMD64 和 Intel 64 系统中,只安装用于整个架构(标记为 x86_64)的软件包以及用于所有架构(标记为 noarch)软件包。使用这个选项时,将自动安装用于 32 位 AMD 系统 Intel(标记为 i686)的软件包。
这只适用于在 %packages 部分明确指定的软件包。对于那些仅作为相依性安装而没有在 Kickstart 文件中指定的软件包,将只安装其所需架构版本,即使有更多可用架构也是如此。
--nocore
禁用默认总被安装的 @Core 软件包组。禁用 @Core 软件包组应只用于创建轻量级的容器;用 --nocore 安装桌面或服务器系统将导致系统不可用。

注意

使用 -@Core 无法排除 @Core 软件包组里的软件包。排除 @Core 软件包组的唯一途径是使用 --nocore 选项。

具体软件包组选项

这个列表中的选项只用于单一软件包组。不是在 Kickstart 文件的 %packages 命令中使用,而是在组名称中添加条目。例如:
%packages
@Graphical Internet --optional
%end
--nodefaults
只安装该组的强制软件包,不是默认选择。
--optional
除安装默认选择外,还要安装在 *-comps-variant.architecture.xml 文件组定义中标记为自选的软件包。
注:有些软件包组,比如 Scientific Support,没有指定任何强制或默认软件包 - 只有自选软件包。在这种情况下必须使用 --optional 选项,否则不会安装这个组中的任何软件包。

23.3.4. 预安装脚本

您可以在解析 Kickstart 文件后、开始安装前立即添加要在该系运行执行的命令。这个部分必须处于 Kickstart 文件的最后,在 第 23.3.2 节 “Kickstart 命令及选项” 所述 Kickstart 命令之后,而且必须用 %pre 命令开头,以 %end 结尾。如果您的 Kickstart 文件还包括 %post 部分,%pre%post 的顺序是没有关系的。
您可以访问位于 %pre 部分的网络;但命名服务此时还未配置,所以只能使用 IP 地址。
Kickstart 文件的预安装脚本部分无法管理多个安装树或者源介质。这个信息必须包含在创建的每个 Kickstart 文件中,因为是在安装程序的第二阶段才运行预安装脚本。

注意

与后安装脚本不同,预安装脚本不会在 chroot 环境中运行。
可在预安装脚本中使用以下选项更改行为。要使用此选项,请将其添加到该脚本开始的 %pre 行。例如:
%pre --interpreter=/usr/bin/python
--- Python script omitted --
%end
--interpreter=
允许指定不同的脚本语言,如 Python。可使用该系统中可用的任意脚本语言。在大多数情况下是 /usr/bin/sh/usr/bin/bash/usr/bin/python
--erroronfail
如果脚本失败则显示出错信息并暂停安装。该出错信息可让您进入记录失败原因的位置。
--log=
在指定日志文件中记录该脚本的输出结果。例如:
%pre --log=/mnt/sysimage/root/ks-pre.log
以下是 %pre 部分的示例:

例 23.5. %pre 脚本示例

%pre
#!/bin/sh
hds=""
mymedia=""
for file in /proc/ide/h* do
	mymedia=`cat $file/media`
	if [ $mymedia == "disk" ] ; then
		hds="$hds `basename $file`"
	fi
done
set $hds
numhd=`echo $#`
drive1=`echo $hds | cut -d' ' -f1`
drive2=`echo $hds | cut -d' ' -f2`

#Write out partition scheme based on whether there are 1 or 2 hard drives
if [ $numhd == "2" ] ; then
	#2 drives
	echo "#partitioning scheme generated in %pre for 2 drives" > /tmp/part-include
	echo "clearpart --all" >> /tmp/part-include
	echo "part /boot --fstype xfs --size 75 --ondisk hda" >> /tmp/part-include
	echo "part / --fstype xfs --size 1 --grow --ondisk hda" >> /tmp/part-include
	echo "part swap --recommended --ondisk $drive1" >> /tmp/part-include
	echo "part /home --fstype xfs --size 1 --grow --ondisk hdb" >> /tmp/part-include
else
	#1 drive
	echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include
	echo "clearpart --all" >> /tmp/part-include
	echo "part /boot --fstype xfs --size 75" >> /tmp/part-include
	echo "part swap --recommended" >> /tmp/part-include
	echo "part / --fstype xfs --size 2048" >> /tmp/part-include
	echo "part /home --fstype xfs --size 2048 --grow" >> /tmp/part-include
fi
%end
该脚本决定系统中的硬盘驱动器数量,并根据系统中有一个还是两个驱动器而编写带有不同分区方案的文本文件。不是在 Kickstart 文件中有一组分区命令,而是包含以下行:
%include /tmp/part-include
在将要使用的脚本中选择的分区命令。

23.3.5. Anaconda 配置

可在 Kickstart 文件的 %anaconda 部分配置附加安装选项。这个部分控制安装系统的用户界面行为。
这个部分必须处于 kickstart 文件的最后(在 Kickstart 命令部分之后,如 第 23.3.2 节 “Kickstart 命令及选项” 所述)而且必须用 %anaconda 命令开头,以 %end 结尾。
目前,能够在 %anaconda 部分使用的命令只有 pwpolicy。详情请查看 第 23.3.2 节 “Kickstart 命令及选项”
以下是 %anaconda 部分示例:

例 23.6. %anaconda 脚本示例

%anaconda
pwpolicy root --minlen=10 --strict
%end
这个 %anaconda 部分示例设定密码策略(即 root 密码不得少于 10 个字符),并严格禁止不满足这个要求的密码。

23.3.6. 安装后脚本

您可以在安装完成后、第一次重启前立即添加要在该系统中运行的命令。这部分内容必须在 Kickstart 的最后,在 第 23.3.2 节 “Kickstart 命令及选项” 所述 Kickstart 命令之后,同时必须用 %post 命令开头,以 %end 结尾。如果您的 Kickstart 文件还包括一个 %pre 部分,那 %pre%post 的顺序是没有关系的。
这部分在安装附加软件或者配置附加名称服务器时有用。该后安装脚本是在 chroot 环境中运行,因此默认情况下不支持执行类似为安装介质复制脚本或者 RPM 软件包的任务。您可以使用下述 --nochroot 选项更改这个行为。

重要

如果您用静态 IP 信息和命名服务器配置网络,您可以在 %post 部分访问和解析 IP 地址。如果您使用 DHCP 配置网络,当安装程序执行到 %post 部分时,/etc/resolv.conf 文件还没有准备好。此时,您可以访问网络,但是您不能解析 IP 地址。因此,如果您使用 DHCP,您必须在 %post 部分指定 IP 地址。
可在后安装脚本中使用以下选项更改行为。要使用此选项,请将其添加到该脚本开始的 %post 行。例如:
%post --interpreter=/usr/bin/python
--- Python script omitted --
%end
--interpreter=
允许指定不同的脚本语言,如 Python。例如:
%post --interpreter=/usr/bin/python
可使用该系统中可用的任意脚本语言。在大多数情况下是 /usr/bin/sh/usr/bin/bash/usr/bin/python
--nochroot
允许指定要在 chroot 环境之外执行的命令。
下例将 /etc/resolv.conf 文件复制到刚安装的文件系统里。
%post --nochroot
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
%end
--erroronfail
如果脚本失败则显示出错信息并暂停安装。该出错信息可让您进入记录失败原因的位置。
--log=
在指定的日志文件中记录该脚本的输出结果。注:必须考虑该日志文件的路径,无论您是否使用 --nochroot 选项。例如:没有 --nochroot
%post --log=/root/ks-post.log
使用 nochroot
%post --nochroot --log=/mnt/sysimage/root/ks-post.log
以下是 %post 部分的示例:

例 23.7.  %post 脚本示例

# Start of the %post section with logging into /root/ks-post.log
%post --log=/root/ks-post.log

# Mount an NFS share
mkdir /mnt/temp
mount -o nolock 10.10.0.2:/usr/new-machines /mnt/temp
openvt -s -w -- /mnt/temp/runme
umount /mnt/temp

# End of the %post section
%end
上面的示例是挂载一个 NFS 共享,并执行该共享中位于 /usr/new-machines/ 的名为 runme 的脚本。注: Kickstart 模式支持 NFS 文件锁定,因此需要 -o nolock 选项。
Kickstart 安装中最常使用的后安装脚本是使用 Red Hat Subscription Manager 自动注册安装的系统。以下是 %post 脚本中的自动订阅示例:

例 23.8. 将 subscription-manager 作为安装后脚本运行

%post --log=/root/ks-post.log
/usr/sbin/subscription-manager register --username=admin@example.com --password=secret --serverurl=sam-server.example.com --org="Admin Group" --environment="Dev" --servicelevel=standard --release="7.0"
%end
subscription-manager 命令行脚本会在红帽订阅管理服务器(客户门户网站订阅管理、Subscription Asset Manager 或者 CloudForms System Engine)中注册系统。这个脚本还可用来为系统自动分配或者附加与该系统最匹配的订阅。
在客户门户网站中注册时,请使用 Red Hat Network 登录证书。使用 Subscription Asset Manager 或者 CloudForms System Engine 注册时,请使用本地管理员生成的用户帐户。
注册命令中可使用附加选项设定系统的首选服务等级,以及对具体操作系统版本限制更新和勘误。
还可以查看红帽客户门户网站中的 如何在 kickstart 文件中使用 subscription-manager?,以了解在 Kickstart %post 部分使用 subscription-manager 的附加信息。

23.3.7. Kickstart 附加组件

从 Red Hat Enterprise Linux 7, Kickstart 安装支持附加组件。这些附加组件可在很多方面扩展基本 Kickstart( Anaconda)功能。
要在 Kickstart 文件中使用附加组件,请使用 %addon addon_name options 命令,并使用 %end 语句放在命令结尾,与上一部分所述预安装和后安装脚本类似。例如:如果要使用默认由 Anaconda 分配的 Kdump 附加组件,请使用以下命令:
%addon com_redhat_kdump --enable --reserve-mb=auto
%end
%addon 命令不包含任何其自身的选项 - 所有选项都依赖实际附加组件。有关附加组件的详情,请查看 《Anaconda 附加组件开发指南》

23.3.8. Red Hat Enterprise Linux Atomic Host 注意事项

Red Hat Enterprise Linux Atomic Host 的 Kickstart 安装与 Red Hat Enterprise Linux 安装没有什么不同,以下注意事项除外。
Red Hat Enterprise Linux Atomic Host 使用 rpm-ostree 技术管理和更新软件包。因此在 Kickstart 文件中不适用 %packages 部分。反之,该文件必须包含安装介质中包含 interactive-defaults.ks文件的命令。该文件包含 Kickstart 命令,指向介质中的 OSTree 存储库,还要禁用 cloud-init 服务。
使用 Red Hat Enterprise Linux Atomic Host 的默认分区。这是由 autopart 命令处理。请勿使用 partvolgroup 或者 logvol。有关示例 Kickstart 文件,请查看 第 23.4.2 节 “Red Hat Enterprise Linux Atomic Host Kickstart 文件示例” 部分。