PXE 大规模装机故障排查手册
实验目标
PXE 装机(PXE 启动 → 内核引导 → 安装源 → 系统落盘 → 首次启动配置)在单机上几乎不失败,但规模一上来就各种怪:50 台节点同时 PXE 启动时 TFTP 超时、部分节点进不了安装界面、装机后网络起不来……这些故障的共同点是"每台都偶发、复现不稳定",如果不用系统化方法,会浪费大量交付时间。
本篇以故障排查为主线,按"现象 → 定位方法 → 根因 → 解法"逐段拆解 PXE 大规模装机的六类经典故障。命令均为真实可复现操作,故障现象与解法来自集群交付经验,不编造具体环境数字。
故障一:PXE 启动阶段 DHCP/TFTP 超时或闪断
现象:少量节点按 F12/PXE 启动后停留在 DHCP 阶段,或 TFTP 下载引导文件时超时重试。
定位方法:
# 服务端:观察 DHCP 与 TFTP 请求是否到达
tail -f /var/log/messages | grep -E "dhcpd|tftp"
# 客户端侧确认:进入 PXE 界面后,确认网卡拿到的是哪个 DHCP 服务器
# 同时确认 TFTP 服务器 IP 是否正确下发(option next-server / option tftp-server-name)根因与解法(按概率排序):
- DHCP 请求风暴:大规模节点同时启动,DHCP 服务器默认配置下处理能力或租约池不足。解法:确认租约池大小 ≥ 装机批次节点数;必要时分批装机(如每批 20-30 台),而不是全部节点同时 PXE。
- TFTP 吞吐瓶颈:TFTP 默认 blksize 512B,50 台节点并发拉取引导文件时 IO 排队严重。解法:服务端开启 blksize/tsize 扩展(如 1456 或更大),或在内存盘提前加载引导文件;也可改用 HTTP 引导(iPXE + HTTP)降低并发压力。
- 多 DHCP 冲突:机房内其他 DHCP(如管理网内无意的 DHCP 服务)响应更快,节点拿到错误配置。解法:确认管理网内 DHCP 唯一性;PXE 环境中用 DHCP option 与 IP 校验核对引导服务器。
- 交换机 DHCP Snooping / 广播限制:部分接入交换机默认限制 DHCP 广播。解法:核对交换机 DHCP Snooping 配置与端口策略。
工程观察:大规模 PXE 第一定律——先在 1 台节点上把 PXE 链路完整跑通并留档,再放开批次。批次容量不是拍脑袋定的,是"TFTP/DHCP 服务端实测并发上限"决定的。
故障二:引导内核能启动,但找不到安装源
现象:PXE 引导进入安装内核,但提示找不到安装介质/安装源(NFS/HTTP 源挂载失败)。
定位方法:
# 安装内核的引导参数中核对 inst.repo / ks 参数
# NFS 源:服务端导出与权限检查
showmount -e <nfs-server>
# HTTP 源:确认可达与目录索引
curl -I http://<http-server>/<repo-path>/根因与解法:
- 安装源与引导内核版本不匹配:安装内核比源仓库版本新/旧,导致仓库元数据解析失败。解法:源与引导介质使用同一发行版小版本。
- NFS 挂载参数问题:PXE 引导阶段内核网络栈默认能力有限,确认
ip=dhcp已配、NFS 服务端fsid=0或导出路径正确、防火墙放行。 - ks 文件(kickstart)路径不可达:ks 放 HTTP/NFS 上时路径写错或服务端未导出。解法:把 ks 文件放在与引导文件同一可达路径下,先用
curl验证再进装机。
故障三:磁盘识别不全或装错盘
现象:安装界面只看到部分磁盘,或系统装到了错误的磁盘上。
定位方法:
# 安装前(或 rescue 模式)确认磁盘清单
lsblk -o NAME,SIZE,MODEL,SERIAL
lspci | grep -iE "nvme|sata|raid"根因与解法:
- RAID 卡/直通模式未对齐:交付基线(01 章 BIOS 配置)中 HBA/RAID 卡模式(IT 直通 vs IR RAID)未按方案设置,导致磁盘由控制器接管后容量/数量变化。解法:与 01 章基线核对,统一 IT 直通或统一 RAID 模式。
- NVMe 盘在 UEFI 下未识别:老 UEFI 固件 + NVMe 驱动缺失。解法:升级主板固件(01 章流程),或安装时注入 NVMe 驱动。
- 多盘场景装机目标盘写错:ks 文件中
ignoredisk/clearpart指定盘符在 UEFI 与 BIOS 模式下标号规则不同。解法:ks 中用磁盘唯一标识(如disk/by-id或 WWN)而非/dev/sda这类不稳定命名。
工程观察:装机"装错盘"一旦发生,返工成本极高(数据风险 + 重装)。交付方案里必须写清每类机型的目标盘判定规则(按序列号/型号匹配),并在 ks 中硬编码,杜绝依赖盘符顺序。
故障四:UEFI / Secure Boot 相关装机失败
现象:UEFI 模式装机正常,但重启后无法引导;或开启 Secure Boot 后系统起不来/驱动加载失败。
定位方法:
# 确认引导模式与 Secure Boot 状态
efibootmgr -v # UEFI 引导项列表
mokutil --sb-state # Secure Boot 状态
dmesg | grep -i "secure boot"根因与解法:
- 引导项写入失败/顺序错误:安装器写引导项后,BIOS 启动顺序仍是 PXE 优先。解法:装机完成后核对
efibootmgr,必要时调整 BootOrder;交付方案要求"PXE 首项只在装机期间生效,装机后关闭或后移"。 - Secure Boot 与驱动签名:第三方驱动(GPU、网卡、RAID)未签名或未导入 MOK,开机报 "Invalid signature"。解法:与 01 章基线对齐——要么装机方案统一关闭 Secure Boot(并记录风险),要么在装机后导入 MOK 完成签名注册。切忌部分节点开、部分节点关。
- UEFI 与 CSM 模式混用:部分节点 Legacy、部分 UEFI,导致 ks/引导参数行为不一致。解法:全网统一引导模式,并在装机核对清单中逐台确认。
故障五:驱动注入失败(装机后 GPU/网卡不识别)
现象:系统装完,lspci 能看到设备但无驱动,或驱动装不上/报错。
定位方法:
lspci | grep -i nvidia # 设备是否在总线上
lsmod | grep nvidia # 模块是否加载
modinfo nvidia | head -5 # 驱动版本与依赖
dmesg | grep -iE "nvidia|firmware" | tail -20根因与解法:
- 驱动与内核版本不匹配:安装源内核较新,驱动 RPM 为旧内核编译。解法:驱动采用"装机后从匹配仓库安装"或 dkms 方式(内核升级时自动重建模块)。
- 固件/BIOS 层未就绪:与 01 章联动——Above 4G 未开、Secure Boot 未对齐、PCIe 链路降级,都会表现为"驱动装不上"。解法:先过 01 章基线再装驱动。
- 装机时驱动注入流程缺失:pxe 方案里
inst.dd或驱动 RPM 注入位置不对。解法:核对安装内核引导参数与注入源路径,先在单台验证注入链路。
故障六:装机后网络不通
现象:系统装完,IP 没起来,或起来了但管理/业务网不通。
定位方法:
ip addr show
ip route
# 检查网卡命名是否与装机前一致(Predictable Names 策略)
# 核对 ks 中的网络配置(device 匹配规则)根因与解法:
- 网卡命名漂移:UEFI 下网卡名(eno/ens/enp)因插槽/固件变化而改变,ks 里写死的
device=eth0失效。解法:ks 中用 MAC 或ifname=参数绑定;或统一用net.ifnames=0关闭可预测命名(需全网一致)。 - 管理网与业务网配置冲突:双网卡配置在 ks 中顺序错误,默认路由指向错误网卡。解法:ks 中明确
BOOTPROTO与默认网关归属,装机后ip route核对。 - 交换机端口/VLAN 未放行:新装机节点接入的端口未打上正确 VLAN。解法:装机前核对交换机端口配置,装机后从 BMC 侧检查管理网连通性,先排除链路层再查系统层。
排查决策树(速查)
PXE 装机失败
├─ 停在 DHCP/TFTP → 故障一(风暴/吞吐/多 DHCP/交换机)
├─ 内核起来了找不到源 → 故障二(版本/挂载/ks 路径)
├─ 磁盘异常 → 故障三(RAID 模式/驱动/盘符规则)
├─ 重启无法引导 → 故障四(引导项/Secure Boot/模式混用)
├─ 系统起了设备无驱动 → 故障五(内核匹配/固件基线/注入流程)
└─ 系统起了网络不通 → 故障六(命名漂移/路由/VLAN)工程启示
- 排障先分层:PXE 故障按"DHCP/TFTP → 引导内核 → 安装源 → 磁盘 → 重启引导 → 驱动/网络"分层定位,每层有独立的验证命令,不要跨层乱试。
- 单台留档,批次放开:PXE 链路、ks 文件、驱动注入都先单台验证并留档,再按实测并发能力分批装机。
- 与基线联动:装机故障里相当一部分根因在固件/BIOS 基线(01 章)没对齐——装机不是孤立环节,是交付流水线的一环。
下一篇预告:装机与基线就绪后,集群进入运行态。在 Slurm 之外,越来越多的 GPU 负载跑在 Kubernetes 上——下一篇《Kubernetes 推理服务生产化:vLLM 从 Deployment 到高可用》聚焦 K8s 编排侧的落地细节。