1. 网络启动概述:PXE 与批量部署的基石

各位好,我是老赵。今天咱们聊聊网络启动,也就是 PXE。这东西听起来有点玄乎,说白了就是让一台裸机——没硬盘、没光驱、没系统——通过网络把操作系统给拉起来。

我最早接触 PXE 是在十年前,给一家公司搭无盘工作站。那时候还在用百兆交换机,一台机器启动要等五分钟。现在千兆网络普及,PXE 的实用性反而更强了。你想想看,几十台服务器同时装机,难道还一台台插 U 盘?

1.1 什么是 PXE

PXE 的全称是 Preboot eXecution Environment,预启动执行环境。它是 Intel 在 1999 年提出的一套标准,让计算机在 BIOS/UEFI 阶段就能从网卡获取启动文件。

核心组件就这几个:

  • DHCP 服务器:给客户端分配 IP,同时告诉它 TFTP 服务器的地址
  • TFTP 服务器:传输启动引导文件,比如 pxelinux.0
  • NFS/HTTP 服务器:挂载根文件系统或安装镜像
  • 客户端网卡:必须支持 PXE 协议(现在基本都支持)

关键点:PXE 本身不装系统,它只负责把引导程序拉到内存里。真正的安装或运行,靠的是后续的 NFS、HTTP 或 iSCSI。

1.2 网络启动的工作流程

我习惯把 PXE 启动分成四个阶段。每个阶段都有坑,咱们一个一个说。

  1. 客户端开机,网卡初始化:BIOS/UEFI 检测到 PXE 启动项,网卡发出 DHCP Discover 广播。
  2. DHCP 交互:DHCP 服务器返回 IP、子网掩码、网关,以及 next-server(TFTP 地址)和 filename(启动文件名)。
  3. TFTP 下载引导文件:客户端从 TFTP 服务器拉取 pxelinux.0 或 bootx64.efi,然后加载配置文件。
  4. 加载内核与根文件系统:根据配置文件,下载 vmlinuz 和 initrd.img,启动安装程序或无盘系统。

嗯,这里要注意。DHCP 和 TFTP 的配合经常出问题。我曾经遇到一个案例,DHCP 能正常分配 IP,但 next-server 写成了域名,客户端解析不了,卡在 TFTP 超时。后来我统一用 IP 地址,再也没出过类似问题。

个人经验:调试 PXE 时,在 DHCP 服务器上开启日志,看 Option 66(next-server)和 Option 67(filename)是否准确下发。这是排查启动失败最快的方法。

1.3 应用场景分析

PXE 不是银弹,但在三个场景里它几乎是唯一选择。

1.3.1 无盘工作站

无盘工作站,就是客户端没有本地硬盘,完全通过网络启动操作系统。所有数据读写都走网络存储。

  • 适用场景:学校机房、呼叫中心、网吧
  • 优点:集中管理、数据安全(客户端不留数据)、硬件成本低
  • 缺点:对网络带宽和延迟敏感,单点故障影响面大

我记得有一次给一个呼叫中心做无盘方案,他们用的是百兆网络,结果开机高峰期交换机端口跑满,员工登录要等三分钟。后来换成千兆,问题才解决。所以无盘对网络基础设施要求很高。

1.3.2 自动化装机

这是我最常用的场景。几十台服务器上架,用 PXE + Kickstart 或 Preseed,半小时全部装完。

对比项 传统 U 盘装机 PXE 自动化装机
单台耗时 约 20 分钟(含人工操作) 约 10 分钟(全自动)
批量效率 线性增长,100 台需 33 小时 并发启动,100 台约 30 分钟
配置一致性 依赖人工,容易出错 模板化,100% 一致
维护成本 需要准备大量 U 盘 只需维护一台服务器

说白了,自动化装机就是「一次配置,无限复制」。我建议所有运维团队都把这个能力作为基础设施标配。

1.3.3 数据中心批量部署

数据中心里,PXE 通常和带外管理(如 IPMI、iLO)配合使用。管理员远程开机,机器自动从 PXE 启动,完成系统安装或恢复。

  • 裸机部署:新服务器上架,远程设置 PXE 启动,自动安装操作系统
  • 系统恢复:系统崩溃后,通过 PXE 启动救援模式,修复或重装
  • 临时计算节点:按需启动无盘计算节点,用完即释放

避坑指南:我曾经在数据中心踩过一个坑——PXE 和本地硬盘的启动顺序没配好。结果服务器重启后,明明硬盘有系统,却总是从网络启动,导致生产环境被重装。后来我强制在 BIOS 里把本地硬盘设为第一启动项,PXE 只作为备用。

1.4 PXE 启动流程示意图

下面这张图是我自己画的,把整个流程串起来。你对照着看,会更清楚。

PXE 网络启动流程 PXE 网络启动完整流程 客户端(裸机) DHCP 服务器 TFTP 服务器 NFS/HTTP 服务器 ① DHCP Discover ② DHCP Offer(含 next-server) ③ 请求 pxelinux.0 ④ 传输引导文件 + 配置文件 加载内核 + initrd ⑤ 挂载根文件系统 注意事项 • DHCP 与 TFTP 需同网段 • 防火墙放行 67/69/2049 端口 • 配置文件路径要准确

1.5 小结

PXE 的核心价值就一句话:让网络成为计算机的第一块硬盘。不管是无盘工作站、自动化装机还是数据中心批量部署,底层逻辑都一样——通过网络把启动所需的文件传给客户端。

我个人觉得,掌握 PXE 是运维工程师的必修课。它不复杂,但细节多。后面几章我会带你一步步搭建完整的 PXE 环境,包括 DHCP、TFTP、NFS 的配置,以及 Kickstart 无人值守安装。咱们先把基础打牢。