ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Serva PXE网络引导批量安装Windows系统实战

Serva PXE网络引导批量安装Windows系统实战 1. 从一间教室的重装说起我为什么放弃 U 盘改用 Serva 做 PXE上个月接了个活某培训中心六十多台同型号台式机要统一换系统机器分散在三个教室机箱前置 USB 有五六台是坏的还有一排老机器 BIOS 里 USB 启动项被锁过。要是一台一台插 U 盘点下一步光等人值守就得耗掉大半天装完还得逐台配 IP、改计算机名、录屏软件环境。我当场就决定走Windows 系统部署 Serva PXE 网络引导安装操作系统这条路——在一台 Windows 主机上把 Serva 跑起来客户端开机按 F12 从网卡引导整间教室的机器从同一条网线里把系统拉过去装。这套方案的实质是把一台普通的 Windows 机器临时变成一个 PXE 引导服务器它提供 DHCP 引导信息、TFTP 小文件传输和 HTTP 大文件传输三件事客户端网卡固件里的 PXE 模块先去拿一个几百 KB 的引导程序再顺着引导程序去拉几百 MB 的 WinPE 镜像最后进到大家熟悉的 Windows 安装界面。整个过程不需要 U 盘、不需要光驱、不需要拆机客户端硬件只要网卡支持 PXE近十五年的机器基本都支持就能用。适合看这篇的人有三类一类是像我这样要给小批量到中等批量机器做统一部署的运维或技术员一类是家里攒了几台二手主机、想省掉反复刻盘麻烦的折腾党还有一类是教学场景里需要给学员演示网络引导原理的人。Serva 的门槛不高但坑不少——尤其是 DHCP 冲突和 UEFI 引导文件不匹配这两块能把人卡到怀疑人生。后面我会把选型逻辑、参数含义、镜像改造、引导时序、故障速查全部摊开讲参数能算的我都把算式写出来。2. 动手之前环境盘点与网络规划2.1 硬件与系统的最低门槛Serva 本体非常轻安装包只有几 MB跑起来常驻内存也就几十 MB对主机的要求几乎可以忽略。但要让它稳定扛住几十台客户端同时拉镜像瓶颈全在网卡、磁盘和内存缓冲上这里得算一笔账。假设你要带 30 台客户端每台同时从服务端读取 WinPE 引导镜像约 400 MB加后续的系统镜像假设 5 GB如果全部并发峰值流量是非常可观的。千兆网卡的理论上限是 1000 Mbps换算成字节是 125 MB/s实际能跑满 110 MB/s 就算不错了。30 台同时开拉平均每台只剩 3.6 MB/s5 GB 的镜像要拉二十多分钟而且机械硬盘的随机读能力根本撑不住这个并发。所以我的做法是分批次引导一次放 8 到 10 台剩下的等第一批进入安装阶段再开机。具体门槛我列成表项目最低可用推荐配置说明服务端系统Windows 10 / Server 2016Windows 10 22H2 或 Server 201964 位需管理员权限CPU双核四核以上主要消耗在 TFTP/HTTP 线程调度内存4 GB8 GB 以上Serva 自身占用低系统缓存给足更稳磁盘机械盘可跑SSD 或 NVMe大镜并发读取时差距极其明显网卡千兆千兆 独立网卡别用无线PXE 服务端必须走有线交换机千兆非管理型可用千兆且支持流控百兆交换机会把整个流程拖到崩溃有一点必须提前说清楚服务端主机自己不要接入生产网络的核心交换机。我见过有人在公司主干网里跑 Serva结果代理 DHCP 的广播包飘得到处都是虽然代理模式不会真的分配 IP但部分老设备的网卡固件会短暂困惑产生莫名的网络抖动。正确做法是拿一台独立小交换机或者用一台支持 VLAN 的交换机划一个隔离的部署 VLAN把服务端和待装客户端圈在一起。2.2 IP 地址规划别让两个 DHCP 打起来这是新手翻车率最高的一环没有之一。很多人的第一反应是我把 Serva 的 DHCP 功能打开让它直接给客户端分 IP然后就发现客户端拿到地址了但引导就是不走或者引导走一半断掉——因为你的路由器还在同时发 DHCP客户端可能从路由器拿到 IP却从 Serva 拿到引导信息两边租约对不上。Serva 的高明之处在于它默认走的是ProxyDHCP代理 DHCP模式。这个模式下它不负责分配 IP只在客户端广播 DHCP 请求、且带有 PXE 客户端标识Vendor Class 为 PXEClient时额外回一个引导文件在哪、TFTP 服务器是谁的应答。IP 还是由原来的路由器或 DHCP 服务器分配Serva 只补充 PXE 那一部分信息。所以正确的网络规划是保持你现有网络的 DHCP 服务器继续工作负责发 IPServa 服务端设一个固定 IP不要用自动获取否则重启后地址一变引导就全废客户端和服务端必须在同一个二层广播域里跨网段是收不到代理应答的如果现场确实没有其他 DHCP比如完全隔离的部署环境再考虑让 Serva 兼职分配 IP这时候要把它自己的 IP 段规划好。假设我规划的隔离网段是 192.168.60.0/24我会这么定服务端 IP192.168.60.10 子网掩码255.255.255.0 网关192.168.60.1可不填 可用地址池192.168.60.100 - 192.168.60.200把服务端放在地址池之外是硬性习惯因为如果 Serva 后续开启了完整 DHCP 服务它自己不会把已经占用的地址再分出去但很多第三方 DHCP 不会做这个判断容易撞车。注意做这类部署前先用arp -a或者交换机管理界面确认目标网段里没有其他设备正在提供 DHCP 服务。真不确定最省事的办法就是物理隔离一台小交换机加两根网线谁也别来抢。2.3 引导模式确认Legacy BIOS 还是 UEFI第二个高频翻车点。客户端固件是 Legacy BIOS 还是 UEFI决定了服务端要下发哪个引导程序两者不通用。Legacy BIOS 的 PXE 客户端会去要一个叫NBPNetwork Bootstrap Program的文件通常就是pxeboot.0或者undionly.kpxe这类东西UEFI 的 PXE 客户端则会去要一个bootx64.efi之类的 EFI 可执行文件。Serva 会自动为两种模式都准备好对应的引导资产但前提是你在客户端上选对了启动模式或者服务端配置里两者都启用了。我一般的做法是先在服务端把两种模式的引导文件都生成好然后到客户端逐台确认固件模式。确认方法很简单开机按 Del 或 F2 进 BIOS 设置看有没有 Boot Mode 之类的选项写着 UEFI 就是 UEFI写着 Legacy 或 CSM 就是传统 BIOS。还有一个隐藏变量是Secure Boot安全启动。开启 Secure Boot 的 UEFI 机器只接受经过签名的引导程序。Serva 生成的标准引导链在某些版本和某些主板固件下可能被拒绝表现为引导文件下载成功但加载失败。稳妥的办法是在部署期间临时关闭 Secure Boot装完系统再按需开启或者使用支持 Secure Boot 的引导组件。这一步别偷懒很多人卡在文件明明传过去了就是不起这一步九成是安全启动在拦。3. Serva 安装与核心配置逐项拆解3.1 目录结构与文件职责Serva 是绿色软件路子下载下来解压到一个固定目录就能跑但这个目录的路径本身很有讲究。我建议放在磁盘根目录下比如C:\Serva不要放在带中文、空格或者层级特别深的路径里。TFTP 和 HTTP 服务对路径里的特殊字符处理不完全一致带着中文路径跑客户端请求某个文件时可能返回 404 或者直接超时。解压后的典型目录长这样C:\Serva\ serva.exe 主程序 serva.ini 配置文件 WIAFiles\ 引导资产与镜像存放目录TFTP/HTTP 根 pxeboot.0 Legacy BIOS 引导程序 bootx64.efi UEFI 引导程序 default.pxe 默认引导菜单配置 ... Logs\ 运行日志这里的WIAFiles 是关键目录它同时是 TFTP 服务的根目录和 HTTP 服务器的根目录。所谓 WIA 是 Windows Imaging Architecture 的缩写Serva 用这个词汇来统称它管理的那一堆 Windows 引导相关资产。你在 Serva 界面里添加一个 Windows 安装源它其实就是在这个目录下派生出一套引导链把客户端指向你放进去的boot.wim和install.wim。注意不要手动去改 WIAFiles 里面 Serva 自动生成的那些引导文件尤其是default.pxe和.0结尾的二进制文件。这些是 Serva 根据配置动态生成的你改了它下次启动就会被覆盖白忙活。要定制引导菜单走配置文件或者图形界面。3.2 serva.ini 关键参数逐条说明serva.ini是这套东西的大脑第一次跑起来它会用一堆默认值但默认值不一定贴合你的网络。我用注释的方式把常改的几个段落列出来注意具体键名在不同大版本之间可能有细微差别以你下载的版本里自带的注释为准[DHCP] ; 服务端自身 IP必须填且和网卡实际地址一致 IP192.168.60.10 ; 子网掩码 SUBNET255.255.255.0 ; 1 代理模式只应答 PXE 请求不分配 IP强烈建议保持 1 PROXY1 ; 1 仿真 BINL 服务让 PXE 客户端能顺利拿到引导链 BINL1 ; 只在没有其他 DHCP 的隔离环境里才考虑开完整模式 ; IPPOOL_START192.168.60.100 ; IPPOOL_END192.168.60.200 [TFTP] ; TFTP 根目录指向 WIAFiles 的绝对路径 ROOTC:\Serva\WIAFiles ; 允许传输的最大块大小调大能提速但老网卡可能不兼容 BLKSIZE1456 [HTTP] ; HTTP 服务端口用来传大镜像比 TFTP 快得多 PORT80 ROOTC:\Serva\WIAFiles [BINL] ; 引导超时时间单位秒网络慢的时候适当加大 TIMEOUT30几个参数背后的道理值得说清楚。PROXY1是为了跟你现有网络和平共处这是 Serva 相比自己手搓 TFTP DHCP 最大的优势省了配 Option 66/67 的麻烦。BLKSIZE1456这个值不是随便写的它要考虑到以太网 MTU 1500 减去 IP 头 20 字节、UDP 头 8 字节、TFTP 头 4 字节再留一点余量1456 是个比较保险的数字调到 8192 虽然快但一部分老网卡的固件 PXE 栈处理不了分片会直接丢包。BINL1这个开关容易被忽略。BINL 原本是微软 WDS 里的一个服务它的作用是让 PXE 客户端在下载完引导程序之后知道下一步该去哪里找真正的启动镜像。Serva 仿真了这一层很多客户端固件对 BINL 的应答格式有依赖不开的话可能表现为引导程序下载完成但停住不动。改完配置文件一定要重启 Serva 服务它是启动时读取配置的热改不生效。3.3 GUI 与命令行两种操作方式Serva 提供了图形界面和一个控制台程序日常我推荐用图形界面来管资产用命令行来做自动化。图形界面里几个关键按钮的位置和用途Settings 区域显示当前监听的 IP、DHCP 模式、TFTP 根目录先在这里确认服务端 IP 识别正确。如果这里显示的 IP 是0.0.0.0或者某个虚拟网卡的地址说明它绑错网卡了得去配置里指定。Assets 区域分 WIA、RIS、TFTP、HTTP 几块。添加 Windows 安装源就是在 WIA 这一块操作点添加之后选你解压好的镜像目录Serva 会自动扫描里面的sources\boot.wim并生成引导链。Logs 区域这是排查问题的命根子。客户端每一次 DHCP 请求、每一次 TFTP 下载、每一个 404 都会打在这里。引导失败的时候这里几乎能直接告诉你答案。命令行方面Serva 支持通过参数启动并把日志输出到控制台做批处理脚本的时候很有用serva.exe -v -log c:\serva\logs\boot.log实测下来图形界面在频繁添加镜像的时候效率更高而全命令行适合放在计划任务里让它随机器启动自动拉起。两种方式不冲突可以混着用。4. 把 Windows 安装镜像改造成可网络引导的资产4.1 镜像解包的坑install.wim 的 4GB 门槛拿到一个 Windows 的 ISO 之后不能直接把 ISO 丢给 Serva 就完事。你得先把 ISO 里的内容完整解压到一个目录然后确认里面的关键文件是否齐全。整条引导链依赖的是两个镜像文件sources\boot.wim这是 WinPE 环境也就是你从网络引导之后看到的那个正在启动 Windows的蓝色界面体积通常在 300 到 600 MB。sources\install.wim新版可能是install.esd这是真正的系统映像体积从 3 GB 到 5 GB 不等。这里有个经典大坑如果你中途用 FAT32 分区做中转install.wim超过 4 GB 就会拷不进去。FAT32 的单文件上限就是 4 GB这是个文件系统层面的硬限制跟软件没关系。解决办法要么是把镜像解压到 NTFS 分区要么用 DISM 把 wim 拆成几个小于 4 GB 的分卷。拆分命令是这样逻辑是把大 wim 切成若干块dism /Split-Image /ImageFile:C:\ISOTemp\sources\install.wim ^ /SWMFile:C:\ISOTemp\sources\install.swm /FileSize:3800/FileSize单位是 MB我习惯设成 3800留一点安全余量。拆完之后目录里会多出install.swm、install2.swm这样的文件Serva 和 Windows 安装程序都能识别这种分卷格式不影响使用。另一个常见情况是镜像里只有install.esd没有install.wim这是微软在新版 ISO 里为了压缩体积做的改动。ESD 格式同样能被识别不用强行转换成 wim除非你需要往里面注入驱动。顺带提一句如果想给镜像注入网卡驱动动的是 boot.wim 而不是 install.wim因为安装阶段用的网卡驱动来自 WinPE 环境。注入驱动的落点就在C:\Windows\System32\DriverStore\FileRepository这套挂载体系里通过 DISM 挂载 boot.wim 之后把驱动加进去再卸载提交。4.2 引导文件的生成逻辑把解压好的镜像目录添加到 Serva 的 WIA 资产里之后它会自动做几件事理解这几件事能帮你在出问题时快速定位第一步Serva 读取你指定目录下的sources\boot.wim确认它可读第二步它在 WIAFiles 根目录生成或更新一个指向该镜像的引导描述文件里面记录了客户端的 HTTP/TFTP 地址、要加载的 wim 路径第三步它把 Legacy 和 UEFI 两套引导程序都准备好让不同固件的客户端都能找到对应入口。引导描述文件的地址是用服务端 IP 拼出来的这也是为什么服务端 IP 必须固定。假设你的服务端 IP 是 192.168.60.10引导链里写的就是http://192.168.60.10/Boot/...这样的路径。要是服务端后来 IP 变成了 192.168.60.11客户端拿到的地址就指向了一个不存在的主机表现就是引导程序下载完了、转圈、然后报错。提示如果你是在笔记本上测试注意它可能在有线网卡之外还挂着无线网卡、虚拟网卡、蓝牙网卡。Serva 默认可能绑到那些网卡上生成出来的引导地址就是错的。一定要在设置里显式指定正确的有线网卡 IP。4.3 多版本镜像共存的菜单配置实际环境里往往不止一个系统版本比如老机器装 Windows 10 LTSC新机器装 Windows 11。Serva 支持同时挂载多个安装源并在引导阶段让用户选择。配置思路是每个版本单独解压到一个子目录比如C:\Serva\WIAFiles\Win10LTSC和C:\Serva\WIAFiles\Win11分别添加到资产列表。然后编辑引导菜单配置让客户端在 PXE 阶段看到一个可选列表。菜单项的写法大致是这样的结构具体语法以你的版本为准; 每个条目对应一个安装源 LABEL Win10_LTSC MENU LABEL Windows 10 LTSC 2021 网络安装 KERNEL http://192.168.60.10/Boot/Win10LTSC/boot.wim这样做的好处是现场只需要按方向键选一下不用改任何服务端配置。我在教室里部署的时候就是这么干的讲台上放一块屏幕显示服务端日志学员自己选系统版本我盯着日志看谁卡住了。多镜像还有一个容量问题要提醒每个版本都要占用一份完整的解压空间一个 Win10 加一个 Win11轻轻松松吃掉 15 GB。服务端磁盘最好预留 60 GB 以上方便后期再加版本。5. 客户端引导实操从按 F12 到进入安装界面5.1 BIOS 端设置要点传统 BIOS 机器的设置相对简单但有几个细节容易漏。开机进 BIOS 之后我要调的是这几项Boot Mode 改成 Legacy 或 CSM或者把 Network Boot 提到启动顺序的前面Network Stack / PXE ROM 设为 Enabled有些品牌机默认是关闭的表现就是开机明明按了 F12 但根本没有网络启动选项快速启动Fast Boot关掉它会让开机自检太快来不及触发 F12Boot Order 里把 Network 排第一或者手动按 F12 在临时启动菜单里选 Network Boot。有一类情况比较讨厌Dell 和联想的商用机在 PXE 阶段会显示一个 Press F12 for network boot 的提示但这个提示只闪一两秒手慢一点就过去了机器直接进了硬盘里的旧系统。我的经验是先把硬盘从启动顺序里摘掉逼着它只能走网络等系统装完了再把它加回来。5.2 UEFI 端设置要点UEFI 机器多了一个维度IPv4 和 IPv6 是分开的。你会经常在启动菜单里看到 UEFI: IPv4 Intel Network 和 UEFI: IPv6 Intel Network 两个选项。绝大多数内网环境只用 IPv4选 IPv6 那一条基本必然是失败的因为服务端根本没监听 IPv6。同样要确认的项Secure Boot 临时关闭前面已经强调过Network Stack 开启PXE IPv4 开启如果机器有多个网卡确认引导的是接在部署交换机上的那一个。有些工作站主板上带两个网口PXE 固件可能默认只用第一块你插错了口就永远引导不起来。关于引导模式选择这里有个容易被当成灵异事件的点。有些主板固件在 PXE 失败之后会打印一行形如EFI PXE 0 for IPv4 (88-A4-C2-22-B5-97) boot failed的提示后面跟着 MAC 地址。这行字本身不是错误原因而是失败结果的陈述MAC 地址是它用来标识使用哪块网卡的。真正的失败原因在服务端日志里或者在网络层。这个具体怎么排查我放到第七章详细讲。5.3 整个引导链路的时序与观察方法理解了时序排查故障就是顺藤摸瓜。一次成功的 PXE 引导大致经历这么几个阶段我在脑子里会给每个阶段配上该看什么现象阶段客户端现象服务端日志出问题时的表象1 物理链路网卡灯亮、指示灯闪烁无灯都不亮先查网线和交换机口2 DHCP 请求屏幕显示 DHCP... 或 PXE...收到 67 端口广播停在这一步多半是网络隔离或 DHCP 没响应3 代理应答短暂闪过 IP 信息发出 ProxyDHCP 应答拿到 IP 但不下文BINL 或 PROXY 配置有问题4 TFTP 下载 NBP显示 TFTP... 进度条收到 69 端口请求超时或进度卡住TFTP 路径或防火墙问题5 加载 WinPE出现 Windows 徽标和转圈收到 HTTP 大文件请求徽标闪一下就重启boot.wim 有问题6 进入安装界面熟悉的语言选择界面45 端口等结果到这里基本就成了后面是常规安装我自己判断问题所在的习惯是看第七列现象停在哪一步就往对应的那一行去找原因比漫无目的地试快得多。整个流程里第 2 到第 4 步是最容易卡的因为它们横跨了网络层、UDP 应用层和文件服务三块。6. 批量部署进阶无人值守与网刻思路6.1 应答文件的挂载位置一台一台点下一步毕竟还是累尤其是要装几十台的时候。这时候就轮到unattend.xml 应答文件出场了。它的作用是替你回答安装程序的所有提问语言、时区、键盘、磁盘分区、账户名、产品密钥、要不要跳过 OOBE 联网检查。应答文件在 PXE 场景下的放置方式是准备一个autounattend.xml把它放在安装介质的根目录Serva 通过 HTTP 分发给客户端。客户端进入安装程序时会优先到根目录找这个文件找到就自动执行整套流程全程不需要人干预。我的习惯是给不同用途的机器准备不同的应答文件比如教室机、办公机、测试机各一份然后通过不同的引导菜单项切换。这样一批机器同时开机我可以去泡杯咖啡回来基本都到登录界面了。应答文件里最关键的几个节点通常是这些windowsPE阶段的磁盘配置决定是否全盘清空、怎么分区写错会误删数据改这里务必先在虚拟机里验证specialize阶段的计算机名规则可以写成按序列号或随机后缀生成避免几十台机器同名打架oobeSystem阶段的跳过联网检查能省掉不少这台机器没网就装不下去的尴尬。6.2 多机并发与带宽控制并发这件事前面提过这里补充具体做法。我的经验参数是这样的千兆交换机 SSD 服务端一次放 10 台左右比较舒服千兆交换机 机械盘服务端一次放 5 台以内多了会出现读取排队每多一台并发服务端网卡的中断处理压力就涨一截Windows 的默认网络栈在小包高频场景下表现一般可以通过调整网卡的高级属性RSS 队列数、中断节流来优化。如果你的场景是克隆——也就是一台机器装好之后把整块盘的内容复制到其他机器那 Serva 的思路是先做一台母机用系统自带的镜像工具把盘封装成 wim然后把这份 wim 挂到服务端做网络分发。这条路比逐台走安装程序快得多但有个前提硬件型号必须一致否则封装出来的镜像在新硬件上会因为驱动不匹配蓝屏。不管走哪条路我都强烈建议先在虚拟机上把整套流程跑通一遍。用虚拟机测的好处是你可以在几秒钟之内反复重启客户端把引导失败的各种情况都撞一遍比在真机上折腾高效得多。7. 常见故障速查与排查实录7.1 EFI PXE 0 for IPv4 ... boot failed 这类报错怎么破这是被问得最多的一类。客户端的原话通常是屏幕出现EFI PXE 0 for IPv4 (88-A4-C2-22-B5-97) boot failed, would you like to retry前面还可能有PXE-E16、PXE-E18、PXE-E51之类的短码。先把这句话翻译一下EFI PXE 表示客户端走的是 UEFI 的 PXE 通道IPv4 表示走的是 IPv4 协议括号里那串是网卡 MAC 地址boot failed 表示这次尝试失败了下面问你要不要重试。它等于说我用这块网卡通过 IPv4 发起了一次 PXE 引导没成功仅此而已不含任何原因信息。真正的原因要从几个方向查第一看服务端日志里有没有收到这个 MAC 的请求。如果压根没收到说明广播包根本没到服务端问题在二层网络——可能是客户端和服务端不在同一个 VLAN或者交换机做了广播抑制如果收到了请求但应答发出去客户端没反应那就是应答内容客户端不认回头检查 PROXY 和 BINL 开关。第二看客户端和服务端的引导模式是否匹配。如果服务端只准备了 Legacy 的引导程序UEFI 客户端来要bootx64.efi自然给不出来只能失败。反过来也一样。第三看安全启动。UEFI 模式下开了 Secure Boot 的机器对引导程序的签名有要求签名验不过就是加载失败表现跟拿不到文件很像但日志里能看到文件其实已经传出去了。第四看客户端的网卡 PXE 固件版本。个别老网卡的 PXE 固件对 Option 66/67 的处理有 bug遇到代理 DHCP 的应答格式会解析失败。这种只能靠更新网卡固件或者换引导模式来绕。我自己遇到这个报错的时候排查顺序固定是先翻服务端日志确认包到了没再确认引导模式对不对最后才怀疑安全启动和固件。7.2 TFTP timeout / 传输到一半断掉如果客户端能走到 TFTP 阶段但进度条卡住不动或者传到一半直接报超时问题集中在这几个地方。防火墙是头号嫌疑犯。Windows 自带的防火墙默认会拦截 TFTP 的 UDP 69 端口和后续的动态端口。Serva 首次运行时通常会尝试添加入站规则但如果当时你点了拒绝或者系统策略比较严规则就没建上。手动确认一下在防火墙的高级设置里找跟 Serva 相关的入站规则确保 UDP 69 和 TCP 80 都是放行的。BLKSIZE设置过大也会导致大文件传输中断。前面说过原理老网卡处理不了分片。遇到传输中途断掉先把BLKSIZE降回 512 试试稳了之后再往上加。交换机的 IGMP Snooping 或者风暴抑制偶尔也会误伤 TFTP 的广播。这类问题最难查因为它在服务端和客户端两边都没报错就是传着传着没了。临时关掉交换机上的相关功能验证一下。还有一个比较隐蔽的服务端的磁盘休眠。如果部署中间隔了几分钟没人操作系统把硬盘挂起了客户端再来读文件就会超时。部署前把电源计划改成高性能禁止硬盘和网卡休眠这个坑我踩过一次当时排查了两个小时才想到。7.3 安装阶段的其他坑引导成功进入安装界面之后还有几类问题。磁盘识别不到。进到分区界面发现看不到硬盘通常两个原因一是机器用的是 NVMe 或者 RAID 模式WinPE 里缺对应的存储驱动二是 BIOS 里的 SATA 模式设成了 RAID 而引导镜像里没有对应的驱动。解法是把存储驱动注入到boot.wim里注入点就是Windows\System32\DriverStore那一套。注入之前要确认驱动的架构版本和 PE 的架构一致32 位驱动往 64 位 PE 里塞是无效的。设备驱动签名报错。有时候机器上某些外设驱动会提示无法验证数字签名导致装不下去。这类问题多见于年代久远的定制驱动处理方式是在 PE 或者系统里调整驱动签名策略或者干脆换成带签名的官方驱动。装完之后网络不通。这个跟 PXE 部署本身关系不大八成是新系统里的网卡驱动和你注入的版本不对或者 IP 配置被应答文件写死了。7.4 故障速查表把上面这些整理成一张表方便你现场对着查现象高概率原因快速验证方法开机没有网络启动选项PXE ROM 未启用 / 快速启动开启进 BIOS 看 Network Stack 项卡在 DHCP...不在同一广播域 / 服务端没启动服务端日志有无该 MAC 请求拿到 IP 但不继续PROXY 或 BINL 未开启检查 serva.ini 两个开关TFTP 下载超时防火墙 / BLKSIZE 过大关防火墙试降 BLKSIZE引导程序下载完就重启安全启动 / 引导文件不匹配关 Secure Boot确认模式传输中途断掉磁盘休眠 / 交换机限制改高性能电源计划进安装界面找不到硬盘缺存储驱动 / RAID 模式注入驱动或改 SATA 模式多台机器重名应答文件计算机名写死改成带随机后缀的规则8. 几个我踩过的坑和调优建议先说一个最容易被忽略的服务端主机的杀毒软件。Windows 平台上很多安全软件会对非标准端口的数据流做深度检测TFTP 的 UDP 传输经常被当成可疑行为拦下来而且是静默拦截日志里什么都看不到。我现在的固定做法是部署期间把 WIAFiles 目录和服务端程序都加入白名单或者临时关掉实时防护装完再打开。这个坑让我在一次现场部署里白白浪费了四十分钟。第二个是网卡的节能特性。不只是硬盘会休眠很多有线网卡也带节能以太网功能闲下来的时候会把链路降速甚至断掉。在服务端网卡的属性里把节能以太网、环保节能模式这类选项全部关掉让链路全程保持满速。这个改动对引导稳定性的提升立竿见影尤其是部署过程中有一段长时间只传输小文件的阶段特别容易触发降速。第三个是关于日志。Serva 的日志默认会一直往文件里写跑一次大批量部署能攒出几百 MB。如果你要长期跑这个东西记得定期清理或者把日志目录挪到单独的盘上别让它把系统盘塞满。日志满了之后服务本身可能出各种奇怪问题排查半天结果发现是磁盘没空间了。最后分享一个我在多次部署之后固定下来的小习惯准备一份自己的检查清单开机前逐项打勾。清单不长就六条——服务端 IP 是否固定、防火墙是否放行、BLKSIZE是否合适、Secure Boot 是否关闭、客户端是否在同一网段、电源计划是否调成高性能。这六条里任意一条出问题都足以让整场部署卡壳而它们加起来确认一遍不超过三分钟。省这三分钟往往要多花三个小时。
返回列表