Skip to content
Search CentOS Stream

This page uses Chinese content. Search opens the Chinese documentation.

    Browse this documentation

    用 Kickstart 自动安装 CentOS Stream

    This content is not available in your language yet.

    适用:CentOS Stream 9 / 10 · 核对日:2026-11-01 · 官方依据:pykickstart 上游文档、安装器 Anaconda 的 Kickstart 文档(安装器内置文档 inst.doc)。

    Kickstart 把安装问答变成一份应答文件,装机零交互。Stream 场景下最常见的坑不在 ks 语法本身,而在校验工具的版本:Stream 9 自带的校验器不认识 Stream 10 的新语法。本页流程的校验环节在 Stream 9 / 10 容器实测;ks 文件的真机安装执行与 PXE 派发属装机阶段,见文末说明。

    • 一台能跑 dnf 的机器(校验器不必装在目标机上);
    • 想清楚装机策略:磁盘怎么分(本页样例用 autopart LVM)、root 口令锁不锁(样例 --lock,装完用密钥登录,见 SSH 密钥登录);
    • 回退点:ks 只影响安装阶段,不存在「装坏了回滚」——错了重装。先校验后装机就是回退点。

    以 Stream 9 网络安装为例(#version=RHEL9 声明语法版本):

    ks.cfg 最小样例(Stream 9)
    #version=RHEL9
    text
    lang zh_CN.UTF-8
    keyboard us
    timezone Asia/Shanghai --utc
    rootpw --lock
    network --bootproto=dhcp --activate
    url --url=https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/
    clearpart --all --initlabel
    autopart --type=lvm
    reboot
    %packages
    @core
    %end

    url --url= 指向发布线的 BaseOS os/ 目录:…/9-stream/BaseOS/x86_64/os/。装 Stream 10 就换成 10-stream 与 #version=RHEL10。国内镜像把域名与路径前缀换成同结构地址即可(如 https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/BaseOS/x86_64/os/)。同一地址也会填在图形安装器的「安装源」对话框里(boot ISO 安装时必填,见安装 CentOS Stream的摘要页说明):

    安装源对话框:boot ISO 安装时在网络上选协议并填软件库 URL

    安装校验器并校验 ks
    $ sudo dnf install pykickstart
    $ ksvalidator -v RHEL9 ks.cfg

    校验通过时无输出(退出码 0)。故意写一个不存在的命令再校验:

    验证校验器真的能拦错
    $ echo "fakecmd --foo" >> ks.cfg
    $ ksvalidator -v RHEL9 ks.cfg

    预期输出(实测摘录):

    The following problem occurred on line 16 of the kickstart file:

    语法版本要跟目标系统的安装器走。看校验器支持哪些版本:

    列出支持的语法版本
    $ ksvalidator --listversions

    实测对比:

    容器pykickstart支持到
    Stream 93.32.x…RHEL9(无 RHEL10)
    Stream 103.52.13…RHEL9 RHEL10

    用 S9 的校验器校验 RHEL10 语法的 ks 会直接报 The version RHEL10 is not supported by pykickstart。给 Stream 10 装机写 ks,请在 Stream 10 环境(或容器)里校验:

    Terminal window
    $ podman run --rm -v "$PWD:/w:Z" quay.io/centos/centos:stream10 \
    bash -c "dnf -qy install pykickstart >/dev/null && ksvalidator -v RHEL10 /w/ks.cfg"

    引导安装器时加内核参数 inst.ks=。物理机:在 ISO 引导菜单选中安装项按 e(UEFI)或 Tab(BIOS)编辑启动项,在 linux 行末尾追加:

    inst.ks=https://your-server/ks.cfg inst.ks.sendmac

    ks 文件放 HTTP(S) 服务器最省事(inst.ks.sendmac 会把网卡 MAC 附在请求头里,方便服务端按机器下发不同 ks)。ks 放在本地盘/U 盘的写法是 inst.ks=hd:LABEL=<卷标>:/ks.cfg。装机后的动作(首启核对、仓库检查)见装完 10 分钟。

    安装阶段的错误以重装收场:改 ks → 再校验 → 再装。没有装完后的「回滚」;真正要防的是 ks 里 clearpart --all 清错盘——目标机有多块盘时用 ignoredisk --only-use=sda 明确限定目标盘,不要让 clearpart 自由发挥。

    现象原因处理
    安装器停在交互问答ks 某项没答到(如未配 network)看 inst.cmdline 模式的报错行,或先跑交互安装记录答案
    failed to fetch kickstart 循环initramfs 阶段无网络内核参数加 ip=…(七字段语法见上文警示框)
    校验器报 version 不支持工具版本旧于目标语法换目标版本的容器校验(见上)
    url 阶段失败源地址 404 或网络不通先在浏览器/curl 确认 BaseOS os 目录可达
    卡在「Setting up installation source」ks 里失效的 addon repo 行阻塞源设置线程修掉失效 repo 行后重启安装;文本界面的 r 刷新救不回挂起的线程
    clearpart 清了数据盘未限定目标磁盘加 ignoredisk --only-use=,不可逆操作前置到「开始前」

    离线环境的边界(2026-11-01 实测):boot ISO 的安装环境内置 extras-common 仓库(metalink 指向 mirrors.centos.org),完全离线时它的失败会清空整个仓库集(packaging.log 出现 The repositories are set to: []),导致 ks 安装中止回退图形界面。用 boot ISO + 局域网镜像源安装时,至少要保证安装环境能解析并访问 mirrors.centos.org,或改用自带完整仓库树的 DVD ISO。