Linux无人值守安装核心是PXE+Kickstart组合:PXE通过DHCP分配IP并由TFTP传输pxelinux.0等引导文件,Kickstart(ks.cfg)定义语言、分区、网络、软件包等全流程参数,配合HTTP/FTP安装源和Syslinux菜单,实现裸机开机自动完成部署。

Linux 系统中实现无人值守自动化安装,核心是组合使用 PXE 网络引导 和 Kickstart 应答文件。它不依赖光盘或U盘,适合批量部署几十台甚至上百台服务器,整个过程开机即自动完成——从获取IP、加载内核、分区格式化到安装软件包、配置网络和重启,全程无需人工干预。
必备服务组件要配齐
一台装机服务器需同时运行以下关键服务:
-
DHCP 服务:给裸机分配 IP 地址,并告知 TFTP 服务器地址和引导文件名(如
pxelinux.0) -
TFTP 服务:传输小体积引导文件(
vmlinuz、initrd.img、pxelinux.0、菜单配置等),必须启用 UDP 端口 69 -
HTTP/FTP/NFS 服务:提供完整的系统安装源(如 CentOS/Rocky 的
BaseOS和AppStream目录),推荐用httpd(Apache)或vsftpd -
Syslinux 工具包:提供 PXE 引导所需的
pxelinux.0和菜单支持模块(如ldlinux.c32)
Kickstart 文件 ks.cfg 是自动化灵魂
这个纯文本文件定义了全部安装行为,相当于把人工点选的每一步都写死。常见关键指令包括:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
lang en_US.UTF-8—— 设置语言 -
keyboard us—— 键盘布局 -
network --bootproto=dhcp --onboot=yes—— 自动获取网络配置 -
url --url=http://192.168.1.100/centos—— 指向安装源路径 -
rootpw --plaintext yourpass或--iscrypted $6$...—— 设置 root 密码(建议加密) -
clearpart --all --initlabel+autopart --type=lvm—— 清空并自动分区 -
timezone Asia/Shanghai --isUtc—— 时区 -
%packages段落 —— 列出要安装的软件包组或具体包,例如@^minimal-environment或vim-enhanced -
%post脚本段 —— 安装完成后执行的 Shell 命令,比如添加用户、关闭防火墙、配置 SSH
PXE 启动菜单要指向 Kickstart
TFTP 根目录下的 /var/lib/tftpboot/pxelinux.cfg/default 是客户端启动时读取的菜单文件。其中一条典型启动项如下:
label autoinstall menu label ^Auto Install CentOS 7 kernel centos/vmlinuz append initrd=centos/initrd.img inst.ks=http://192.168.1.100/ks.cfg ip=dhcp
关键在 inst.ks= 参数,它告诉安装程序去哪下载应答文件;ip=dhcp 确保网络可用。若 ks.cfg 放在 FTP 上,则用 ftp://192.168.1.100/centos/ks.cfg。
客户端只需 BIOS 开启网络启动
目标机器开机进 BIOS/UEFI,将启动顺序设为 “Network Boot” 或 “PXE Boot”,保存退出。只要网络连通、服务正常,机器就会:
- 广播 DHCP 请求 → 获取 IP 并拿到 TFTP 地址和
pxelinux.0 - 通过 TFTP 下载引导文件 → 加载内核与 initrd
- 内核启动后读取
inst.ks地址 → 下载并解析ks.cfg - 按配置自动执行分区、安装、脚本、重启等全部步骤

















