深夜的机房,运维工程师小李正面临一场噩梦:50台新到的服务器需要安装操作系统。按照传统方式,他需要准备一堆U盘,一台接一台地安装,这意味着一场通宵的"体力劳动"。但这次不同,只见他在控制台输入几行命令,所有服务器就像被施了魔法一样,开始自动安装系统。这就是PXE引导安装方式。

一、 什么是PXE?

PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动技术。想象一下,你的电脑还没装系统,就能连上网络下载安装程序,这就是PXE的神奇之处。

PXE的工作原理就像点外卖:

服务器开机后,PXE网卡发送"我要吃饭"的请求(DHCP Discover)

DHCP服务器回复:"这是菜单地址"(提供TFTP服务器IP)

服务器根据菜单(PXE引导文件)下单(下载启动文件)

开始享用美食(加载操作系统安装程序)

二、 PXE的配方

要施展PXE魔法,需要准备以下"魔法材料":

DHCP服务器:负责分配IP地址,告诉客户端去哪找启动文件

TFTP服务器:存放启动文件和内核镜像,就像外卖的中央厨房

安装源:可以是HTTP、FTP或NFS服务器,提供操作系统安装包

PXE配置:定义启动菜单和安装选项,就像定制外卖订单

以CentOS为例,典型的PXE配置包括:

pxelinux.0(引导程序)

vmlinuz(Linux内核)

initrd.img(初始内存磁盘)

ks.cfg(Kickstart自动安装配置文件)

三、 为什么要用PXE?

作为运维工程师,我总结了PXE的几大优势:

批量安装:一次可以安装数十甚至上百台服务器,效率提升N倍

远程操作:无需现场插拔U盘,躺着也能完成系统安装

版本统一:确保所有服务器安装相同的系统版本和配置

快速部署:新服务器上架后,半小时内就能投入使用

灵活定制:通过Kickstart或Preseed文件,实现自动化定制安装

四、 PXE实战指南

让我们通过一个实际案例,看看如何用PXE安装CentOS系统:

准备环境

配置DHCP服务器:

复制
subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
next-server 192.168.1.10;  # TFTP服务器地址
filename "pxelinux.0";

}
设置TFTP服务器目录结构:

复制
/tftpboot/
├── pxelinux.cfg/
│ └── default
├── pxelinux.0
├── vmlinuz
├── initrd.img
└── ks.cfg
配置启动菜单
编辑default文件:

复制
default menu.c32
prompt 0
timeout 100

label CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.10/ks.cfg
准备Kickstart文件
示例ks.cfg:

复制

version=DEVEL

install
url --url="http://192.168.1.10/centos7"
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw --plaintext yourpassword
...
%packages
@^minimal
%end
开始安装

新服务器开机,选择PXE启动

服务器自动获取IP,下载启动文件

加载安装程序,读取Kickstart配置

全自动完成系统安装

五、 PXE的魔法世界

PXE的应用远不止系统安装。在云计算时代,PXE技术已经演变成更强大的工具:

自动化运维:与Ansible、SaltStack等工具结合,实现从裸机到应用的全自动部署

云环境部署:OpenStack的Ironic组件就使用PXE来部署物理机

系统维护:通过网络启动救援系统,进行故障排查和数据恢复

多系统管理:一个PXE服务器可以支持多种操作系统安装

PXE就像运维界的"魔法棒",让繁琐的系统安装变得优雅而高效。 在这个追求自动化的时代,掌握PXE技术已经成为运维工程师的必备技能。下次当你面对一堆待安装的服务器时,不妨试试PXE这个"魔法",让它帮你把体力活变成技术活。


千里之行
1 声望2 粉丝

SRE体系践行者