十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

NBM 1.0:一站式PXE网络启动与网卡PnP实践指南

NBM 1.0:一站式PXE网络启动与网卡PnP实践指南 在实际的机房里批量装机、系统救援、无盘启动和应用分发都依赖同一种底层能力让一台没有光驱、没有操作系统、甚至没有硬盘的机器通过网络把启动文件拉下来并完成启动。这项能力就是网络启动而 NBM网络启动大师是把散乱的 DHCP、TFTP、HTTP、启动菜单和网卡驱动管理整合成一体化工具的项目。NBM 在 1.0 版本中免费开放使用服务端同时支持 Windows 和 Linux并内置了网卡 PnP 功能专门解决 PXE 启动环境里“换了网卡就启不来”的经典问题。下面的内容按“理解链路、准备环境、部署服务、配置任务、启动验证、排查故障、生产落地”这条主线展开。无论你是第一次接触 PXE 的网络工程师还是已经在用其他网络启动工具、想对比方案的运维人员这篇文章都能提供一个可落地的参考框架。文中所有配置、菜单和命令都基于标准 PXE 工作流程实际使用 NBM 时以你下载版本的界面和文件路径为准。1. 先理解 NBM 所处的网络启动生态PXE 链路与网卡 PnP 的价值NBM 不是孤立的一个软件它是站在一套成熟网络启动协议之上做整合的工具。要真正用好它首先要理解它替你做掉了哪些底层工作。1.1 装机运维场景里为什么偏偏需要网络启动传统装机的痛点集中在三处机器没有光驱U 盘量产又要单独制作批量部署时每台机器都要插一次盘、按一次启动键人力成本高。系统损坏、分区表丢失、引导文件被破坏时机器进不了系统需要外部介质救援。无盘工作站、云桌面终端、批量测试机这类场景整机不需要本地系统盘必须依赖网络引导。网络启动把“引导介质”从物理设备变成了网络服务。服务端维护一份启动镜像、一个驱动库、一套菜单客户端开机时通过网络获取这些内容。几十台机器可以同时启动镜像更新只需要改服务端客户端无感。NBM 这类工具的价值就是把这些服务统一管理而不是让运维自己手工搭建一整套 DHCP、TFTP、HTTP 和驱动注入链路。1.2 PXE 启动的基本链路DHCP、TFTP 和启动文件是怎么配合的PXEPreboot eXecution Environment是 Intel 定义的网络启动标准。客户端在 BIOS/UEFI 阶段启用网络启动后会按下面这条链路走阶段协议承担角色作用获取网络参数DHCPDHCP 服务端给客户端分配 IP同时下发 TFTP 服务器地址和启动文件名下载启动引导器TFTPTFTP 服务端传输第一阶段的启动文件例如 undionly.kpxe、pxelinux.0加载菜单TFTP/HTTP文件服务启动引导器读取菜单配置决定加载哪个系统镜像加载内核或 PETFTP/HTTP文件服务下载 vmlinuz、initrd.img、boot.wim 等实际启动内容进入安装或维护环境本地执行客户端内核启动或 Windows PE 加载进入后续流程关键点在第一阶段和第二阶段是分离的。客户端网卡固件里的 PXE ROM 只负责很小的事发 DHCP 请求、拿 IP、下载一个启动引导器。真正复杂的菜单、驱动、镜像加载逻辑都放在这个引导器里。这就是为什么日常排障时问题往往要先区分“PXE ROM 阶段”还是“引导器阶段”。DHCP 在中间的作用不只是分配 IP它还要携带 PXE 专有选项。常见的三个选项是option 60客户端标识PXE 客户端会携带“PXEClient”字符串服务端据此识别这是网络启动请求。option 66TFTP 服务器地址。option 67要下载的启动文件名。NBM 内置这些服务后相当于把一条原本需要多个软件配合的链路做成了开箱即用的整体。1.3 网卡 PnP 在网络启动中的地位网卡 PnPPlug and Play是整个网络启动流程里最容易翻车、也最容易被忽视的部分。PXE 启动发生在操作系统加载之前此时网络功能完全依赖启动环境内的网卡驱动。问题在于不同厂商网卡设备 ID 不同驱动不能通用。Windows PE 镜像默认只包含基础驱动新网卡、服务器板载网卡、国产网卡经常识别不到。早期 PXE ROM 依赖网卡厂商自带固件兼容性和可维护性都差。NBM 的网卡 PnP 功能本质上是把“驱动匹配”自动化启动时识别客户端网卡的厂商和设备 ID再从驱动库里选择对应驱动注入到 Windows PE 或引导环境中。这样同一个 PE 镜像可以覆盖多种硬件不需要为每种网卡单独做一版镜像。1.4 NBM 1.0 的功能范围与适用场景从发布信息看NBM 1.0 的核心定位是免费、跨平台、自带网卡 PnP。这意味着它适合以下几类场景场景使用方式批量重装 Windows维护一个 WinPE 系统镜像批量机器 PXE 启动后自动进入安装流程Linux 网络安装通过 PXE 加载 vmlinuz 和 initrd结合 Kickstart 或 Preseed 自动安装系统救援客户端从网络启动 WinPE 或 Linux 救援系统进行磁盘修复和数据备份无盘启动实验小范围测试无盘工作站验证启动链路硬件兼容性测试利用网卡 PnP 功能快速验证不同网卡能否统一启动需要说明的是1.0 版本的功能边界、内置菜单语法和驱动库覆盖范围要以官方发布说明为准。但 PXE 的工作机制是标准的下面的部署和配置思路可以直接迁移。2. 部署前环境准备服务端、客户端和网络这三个维度很多网络启动项目装不起来不是因为工具本身难而是环境里存在 DHCP 冲突、防火墙拦截或客户端启动项没开。部署 NBM 之前先把环境检查做完整。2.1 服务端要求Windows 与 Linux 两侧分别确认NBM 1.0 的服务端同时支持 Windows 和 Linux但两种平台的资源要求和部署方式不同。项目Windows 服务端Linux 服务端操作系统Windows 10/11、Windows Server 2016 及以上CentOS 7/8、Rocky Linux、Ubuntu 20.04/22.04、Debian 等内存建议 4 GB 以上建议 4 GB 以上磁盘根据镜像数量准备建议 50 GB 以上根据镜像数量准备建议 50 GB 以上网络一块用于启动服务的网卡必须配置静态 IP一块用于启动服务的网卡必须配置静态 IP权限管理员权限运行root 或 sudo 权限服务管理可以注册为 Windows 服务运行建议使用 systemd 管理注意一个常见误区服务端不要使用 DHCP 自动获取的地址。因为 NBM 如果启用了内置 DHCP服务端自身 IP 必须稳定否则客户端拿到的是错误的 TFTP 服务器地址。2.2 客户端要求BIOS 与 UEFI 的差异不能忽视客户端机器需要支持网络启动并且在 BIOS/UEFI 中开启对应选项。固件类型需要开启的选项常见启动文件名备注BIOS/LegacyNetwork Boot、PXE Bootundionly.kpxe、pxelinux.0兼容性好配置简单UEFI x64IPv4 PXE Network Bootipxe.efi、bootx64.efi、grubx64.efi需要处理 Secure Boot 签名问题UEFI ARM64IPv4 PXE Network Bootsnp.efi 等 ARM 版引导器资源较少先确认 NBM 是否支持Secure Boot 是 UEFI 机器上最容易踩的坑。未签名的 iPXE 引导文件默认会被拒绝加载。如果客户端报“Security Violation”要么在 BIOS 中临时关闭 Secure Boot要么使用经过签名的引导文件要么配合 shim 方案。学习环境直接关闭 Secure Boot 最省事生产环境要评估合规和策略要求。2.3 网络环境要求先排除 DHCP 冲突这个最大隐患网络启动对网络环境有两个硬要求客户端能收到 DHCP 响应客户端能访问 TFTP/HTTP 服务。第一优先级是检查同网段内是否已有 DHCP 服务。NBM 如果启用内置 DHCP而网络里已经存在路由器 DHCP 或 Windows DHCP 服务就会出现地址分配混乱客户端可能拿到错误的网关和 DNS甚至拿不到 option 66/67。生产环境建议把网络启动服务放在独立 VLAN或者在已经存在的 DHCP 服务上做 proxyDHCP 配置。第二优先级是防火墙。服务端要放行以下端口端口协议用途67/68UDPDHCP 服务69UDPTFTP 服务80TCPHTTP 文件服务可选4011UDPproxyDHCP 服务如果启用客户端侧一般不需要放行出方向端口PXE ROM 会自动发起请求。2.4 环境检查清单部署前逐项确认下面这些内容能省掉后续一半的排障工作检查项确认方式通过标准服务端 IP 固定ipconfig或ip addrIP、网关、DNS 手动配置且稳定无 DHCP 冲突检查同网段内 DHCP 服务情况网络内只有一个 DHCP 源或已做 proxyDHCP防火墙端口Windows 防火墙、Linux firewalld/iptables67/68/69/80 已放行客户端网络启动开启进入 BIOS/UEFI 确认Network Boot 或 PXE Boot 处于 Enabled客户端 Secure Boot 状态UEFI 设置确认学习环境可临时关闭生产环境评估签名方案交换机配置检查 DHCP Snooping、IP Helper跨网段时配置了 ip helper-address镜像文件准备确认 boot.wim、vmlinuz、initrd 等文件存在文件完整路径无中文或空格3. NBM 服务端部署Windows 与 Linux 两套流程环境确认完成后开始部署服务端。这里给出 Windows 和 Linux 两种路径二选一即可。所有命令都按通用示例给出具体路径和包名以实际下载的 NBM 版本为准。3.1 Windows 服务端部署步骤在 Windows 上部署 NBM关键点是“用管理员权限运行”和“注册为服务后注意日志位置”。REM 以管理员身份打开命令行 cd C:\NBM NBM.exe install NBM.exe start如果操作成功会看到 NBM 服务注册并启动的提示。然后放行防火墙端口# PowerShell 管理员方式执行 New-NetFirewallRule -DisplayName NBM DHCP -Direction Inbound -Protocol UDP -LocalPort 67,68 -Action Allow New-NetFirewallRule -DisplayName NBM TFTP -Direction Inbound -Protocol UDP -LocalPort 69 -Action Allow New-NetFirewallRule -DisplayName NBM HTTP -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow部署完成后用浏览器打开 NBM 提供的管理入口通常是http://127.0.0.1:端口确认控制台能正常加载。3.2 Linux 服务端部署步骤Linux 端的部署逻辑是创建专用用户、解压程序、配置 systemd 服务避免直接使用 root 运行常驻服务。# 创建运行用户和目录 sudo useradd -r -s /sbin/nologin nbm sudo mkdir -p /opt/nbm sudo tar -xzf nbm-1.0-linux-x64.tar.gz -C /opt/nbm sudo chown -R nbm:nbm /opt/nbm # 安装 systemd 服务假设压缩包附带 nbm.service 模板 sudo cp /opt/nbm/nbm.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now nbm sudo systemctl status nbm如果需要在调试模式下前台运行并观察输出可以停掉服务后直接执行sudo -u nbm /opt/nbm/bin/nbm run这种方式适合排查启动失败问题日志会直接打印到终端。3.3 服务端目录结构与关键文件NBM 服务端解压后典型目录结构如下/opt/nbm/ ├── bin/ # 可执行文件 ├── conf/ # 配置文件 │ ├── nbm.ini # 主配置包含 DHCP、TFTP、HTTP 参数 │ └── menu.ipxe # 启动菜单脚本 ├── tftp/ # TFTP 根目录存放引导文件 │ ├── undionly.kpxe │ ├── ipxe.efi │ ├── wimboot │ └── pxelinux.0 ├── images/ # 镜像文件目录 │ ├── winpe/ │ └── linux/ ├── drivers/ │ └── nic/ # 网卡驱动库 ├── www/ # HTTP 根目录 └── logs/ # 日志目录理解这个结构对排障很重要。PXE 报“文件找不到”时第一反应应该是去tftp/目录确认文件是否存在、文件名是否和 DHCP option 67 完全一致。文件名的多一个字符或少一个字符都会导致 TFTP 下载失败。3.4 主配置参数说明以nbm.ini为例核心配置项通常是下面这类结构[dhcp] enabled true interface eth0 range_start 192.168.10.100 range_end 192.168.10.200 subnet_mask 255.255.255.0 gateway 192.168.10.1 dns 192.168.10.1 boot_file_bios undionly.kpxe boot_file_uefi ipxe.efi tftp_server 192.168.10.1 [tftp] enabled true root /opt/nbm/tftp [http] enabled true root /opt/nbm/www listen 0.0.0.0:80这些参数的含义需要理解清楚参数含义调大/调小的影响range_start/range_endDHCP 地址池范围范围过小会导致并发启动时地址不够boot_file_biosBIOS 客户端启动文件名指错文件会直接导致 PXE 引导失败boot_file_uefiUEFI 客户端启动文件名32 位和 64 位 UEFI 文件不能混用tftp_server下发给客户端的 TFTP 地址写成服务端实际 IP不能写 127.0.0.1listenHTTP 监听地址生产环境按需绑内网 IP不要盲目绑 0.0.0.04. 配置启动任务DHCP 选项、启动菜单、PE 镜像与网卡驱动服务端起来之后真正进入核心配置阶段。这个阶段决定客户端启动后看到什么、能启动什么。4.1 DHCP 选项配置option 60/66/67 的作用PXE 能否走到启动文件下载这一步完全取决于 DHCP 返回的选项。标准 PXE 客户端会在 DHCP Discover 中附带 option 60 值为PXEClient服务端识别到这个标识后应该在响应中返回选项值示例作用60PXEClient告诉客户端这是一次 PXE 响应54192.168.10.1DHCP 服务器标识66192.168.10.1TFTP 服务器地址67undionly.kpxe启动文件名如果 NBM 使用内置 DHCP配置界面里一般直接填这几个值。如果网络里已有 DHCP 服务可以采用 proxyDHCP 模式。proxyDHCP 不分配 IP只负责在已有 DHCP 响应之后追加 PXE 选项。NBM 内部通常使用 4011 端口接收 proxyDHCP 请求。参考等价配置可以这样理解# 这是标准 dnsmasq 的 proxyDHCP 写法NBM 的 proxyDHCP 模式逻辑相同 port0 dhcp-range192.168.10.0,proxy dhcp-option60,PXEClient dhcp-option66,192.168.10.1 dhcp-option67,undionly.kpxe enable-tftp tftp-root/opt/nbm/tftp4.2 配置启动菜单用 iPXE 脚本控制启动流程NBM 的菜单通常基于 iPXE 脚本。iPXE 是 PXE 的增强实现支持 HTTP 下载、脚本控制、简单的交互菜单。下面是一个最小菜单示例#!ipxe dhcp set menu-timeout 5000 menu NBM 启动菜单 item --key 1 winpe 启动 Windows PE item --key 2 ubuntu 安装 Ubuntu 22.04 item --key 3 shell 进入 iPXE Shell choose --default winpe --timeout ${menu-timeout} target goto ${target} :winpe kernel http://192.168.10.1/boot/wimboot initrd http://192.168.10.1/boot/boot.wim boot.wim boot :ubuntu kernel http://192.168.10.1/boot/vmlinuz initrd http://192.168.10.1/boot/initrd.img imgargs vmlinuz initrdinitrd.img ipdhcp urlhttp://192.168.10.1/iso/ubuntu-22.04.iso boot :shell shell这个脚本的要点是dhcp先让客户端获取网络参数之后才能访问 HTTP。menu定义菜单项choose实现选择和超时逻辑默认进入 Windows PE。使用 HTTP 而不是 TFTP 传输大文件速度和稳定性都更好。TFTP 只有 512 字节窗口确认机制大文件下载容易超时。每个LABEL对应的kernel、initrd路径都要以服务端 HTTP 根目录为基准核对。4.3 配置 Windows PE 启动Windows PE 是网络启动 Windows 批量安装的核心载体。客户端通过wimboot引导器加载boot.wim然后进入 PE 环境。实现路径如下准备好boot.wim文件通常从 Windows 安装介质或 ADK 中提取。将wimboot和boot.wim放到 HTTP 根目录。在菜单中按上面示例增加一个 Windows PE 入口。PE 里后续要做的事情比如分区、释放镜像、映射网络共享盘都是在boot.wim内的脚本或外部作业文件里控制的。NBM 的网卡 PnP 功能会在这个环节起作用PE 加载时自动匹配网卡驱动让 PE 能看到网络才能继续访问网络共享。4.4 配置 Linux 网络安装Linux 网络安装的组件是 vmlinuz 内核文件、initrd.img 初始化镜像和自动安装配置。菜单入口示例:ubuntu-install kernel http://192.168.10.1/boot/vmlinuz initrd http://192.168.10.1/boot/initrd.img imgargs vmlinuz initrdinitrd.img ipdhcp urlhttp://192.168.10.1/iso/ubuntu-22.04.iso autoinstall dsnocloud-net;shttp://192.168.10.1/ks/ boot其中autoinstall和dsnocloud-net是 Ubuntu 的自动安装参数url指向 ISO 镜像位置。对于 CentOS/Rocky对应的是kshttp://192.168.10.1/ks/ks.cfgKickstart 文件。不同发行版参数不同但整体模式一致网络启动内核内核通过网络获取安装源和应答文件。4.5 网卡 PnP 驱动配置从驱动库到自动注入网卡 PnP 是 NBM 1.0 的宣传亮点落地时主要做两件事维护驱动库。把各厂商网卡驱动按“厂商 ID 设备 ID”分类放入drivers/nic/目录。设备 ID 可以在 Windows 设备管理器的“硬件 ID”中看到形式类似PCI\VEN_10ECDEV_8168也可以从 Linux 的lspci -nn输出中确认。# Linux 下查看网卡设备 ID lspci -nn | grep -i ethernet自动注入。NBM 在生成 PE 启动文件或引导参数时根据客户端上报的硬件信息把匹配的驱动加入启动环境。这样不需要手工为每种网卡维护一个 PE 镜像。如果脱离 NBM手动向 boot.wim 注入网卡驱动的命令是dism /Mount-Wim /WimFile:C:\boot.wim /index:1 /MountDir:C:\mount dism /Image:C:\mount /Add-Driver /Driver:C:\drivers\nic dism /Unmount-Wim /MountDir:C:\mount /CommitNBM 的 PnP 功能正是把这个过程自动化了。需要强调的是PnP 能覆盖的网卡范围取决于驱动库的完整程度。拿到生产环境前建议先整理一份公司内部机型网卡的硬件 ID 清单逐项验证。5. 客户端 PXE 启动验证正常现象与日志对照配置完成不是结束必须从客户端角度完整走一遍启动流程。这一步最能暴露问题。5.1 客户端网络启动设置在客户端 BIOS 或 UEFI 中将 Network Boot 或 PXE Boot 设为 Enabled。把 Network Boot 的启动顺序放在硬盘和 U 盘之前或者临时按启动快捷键常见为 F12进入网络启动。UEFI 机器确认 IPv4 PXE 已开启IPv6 PXE 如果不使用可以关闭减少干扰。5.2 正常启动应该看到的日志序列一次成功的 iPXE 启动屏幕上大致会出现以下关键信息Press F12 for network boot... - PXE ROM 开始 iPXE initialising devices... - 网卡被引导器识别 Configuring (net0 ...)................ OK net0: 192.168.10.101/255.255.255.0 gw 192.168.10.1 - DHCP 分配成功 Loading http://192.168.10.1/boot/boot.wim... http://192.168.10.1/boot/boot.wim... ok - 镜像加载成功 Booting...如果使用 pxelinux.0则会出现 syslinux 的菜单界面选择菜单项后加载内核和 initrd。按顺序验证以下节点验证节点看到的现象说明DHCP 获取客户端显示 IP、网关说明 DHCP 服务正常引导器加载iPXE/pxelinux 版本信息说明 option 66/67 正确菜单出现菜单项可选可跳转说明菜单脚本无语法错误镜像下载进度条或 ok 提示说明 HTTP/TFTP 路径正确内核启动内核日志滚动说明 vmlinuz/initrd 匹配PE 环境WinPE 桌面或命令行出现说明 boot.wim 完整网络可用PE 内ipconfig能看到地址说明网卡 PnP 驱动生效5.3 在 WinPE 里验证网卡 PnP 是否真正生效进入 WinPE 后第一步不是直接跑部署脚本而是确认网络状态。ipconfig /all如果ipconfig显示以太网适配器没有有效 IP说明网卡驱动没有加载。进一步用命令确认pnputil /enum-devices /class Net这条命令会列出 PE 环境中已识别的网卡设备。如果列表为空或设备带感叹号说明驱动注入失败需要回到驱动库检查。WinPE 里也可以临时手动加载驱动drvload X:\drivers\nic\rtl8168.infdrvload是 WinPE 内置的驱动加载命令用它验证成功后再回到 NBM 的 PnP 配置里把驱动路径修正。5.4 服务端日志怎么看客户端启动的同时服务端会记录每次请求。Linux 下通常直接查看日志文件tail -f /var/log/nbm/nbm.log正常时应该能看到类似下面的记录DHCP Discover from 00:1e:06:xx:xx:xx DHCP Offer to 00:1e:06:xx:xx:xx TFTP Read Request: undionly.kpxe HTTP GET /boot/boot.wim HTTP GET /menu.ipxe日志里出现大量 TFTP 超时或 HTTP 404就说明请求到了服务端但文件或路径有问题。如果日志里完全没有客户端请求问题就在更早的阶段比如 DHCP 未到达、防火墙拦截、客户端根本没发起 PXE。6. 常见问题排查五个高频故障的定位路径网络启动排障有固定套路先判断问题发生在 DHCP 阶段、TFTP 阶段、引导器阶段还是内核/PE 阶段。阶段判断对了问题基本解决一半。6.1 客户端拿不到 IP现象PXE ROM 提示PXE-E51: No DHCP or proxyDHCP offers were received客户端一直停留在一个 IP 都没有的状态。常见原因和检查方式可能原因检查方式处理建议同网段存在其他 DHCP检查路由器和现有 DHCP 服务停用冲突服务或把 NBM 切到独立 VLAN服务端 67/68 端口未放行服务端执行端口监听检查放行防火墙端口交换机 DHCP Snooping 拦截查看交换机 DHCP Snooping 日志在信任端口放行 NBM 服务端客户端与服务端跨网段确认是否配置 IP Helper在交换机配置ip helper-addressNBM 的 DHCP 未启用检查配置里dhcp.enabled true确认启用状态并重启服务关于 DHCP Snooping 需要多说一句很多企业交换机默认开启 DHCP Snooping 后非信任端口的 DHCP Offer 会被丢弃。NBM 服务端连接的端口需要配置为信任端口否则客户端永远收不到响应。6.2 TFTP 下载启动文件失败现象客户端已经拿到 IP但提示PXE-E32: TFTP open timeout或报找不到文件。TFTP 阶段的问题十有八九出在文件名或路径上。可能原因检查方式处理建议option 67 文件名写错对比配置值和tftp/目录实际文件名文件名必须完全一致注意大小写TFTP 服务未监听服务端ss -lunp | grep :69确认 TFTP 服务启动防火墙拦截 69 端口检查防火墙规则放行 UDP 69TFTP 根目录指向错误确认配置文件里的 root 路径将根目录改为实际存放引导文件的目录引导文件过大导致超时观察 TFTP 下载是否中断大文件改用 HTTP 加载减小 TFTP 文件体积TFTP 协议每次只确认 512 字节数据块传输大文件效率低且容易超时。生产环境建议只让 TFTP 传输引导器小文件boot.wim 这类大文件走 HTTP。6.3 引导器加载后黑屏或没有菜单现象客户端已经进入了 iPXE 或 pxelinux但屏幕无菜单或者选择菜单后黑屏。这个阶段的问题集中在架构不匹配和文件缺失BIOS 客户端拿到了 UEFI 引导文件或者反过来。菜单脚本引用的 wimboot、vmlinuz、initrd 路径不存在。Secure Boot 拦截了未签名引导文件画面停在黑屏或安全提示。内核与 initrd 版本不匹配内核启动到一半崩溃。处理建议是按架构拆分引导文件DHCP 下发时根据客户端固件类型返回不同的 option 67。NBM 在配置里通常区分boot_file_bios和boot_file_uefi分别指向undionly.kpxe和ipxe.efi。6.4 进入 PE 后网卡识别不到现象WinPE 能启动桌面和命令行都正常但ipconfig没有地址设备管理器里网卡带黄色感叹号。这是网卡 PnP 功能要解决的核心问题排查顺序如下确认 PE 里网卡设备 ID 是多少在 Windows 设备管理器“详细信息 - 硬件 ID”中查看。回到 NBM 驱动库确认存在该设备 ID 对应的驱动。用drvload手动加载对应驱动验证驱动文件本身是否能工作。确认驱动架构匹配64 位 PE 必须使用 64 位驱动不能混用。确认驱动是 PE 可用的 WinPE 驱动而不是普通安装版驱动。部分 OEM 驱动在 PE 下无法直接使用需要提取其 INF 和 sys 文件。这一步最容易被忽略的是架构匹配。一个 32 位的网卡驱动注入到 64 位 PE 中驱动列表里能看到但永远无法生效。6.5 排查顺序清单遇到任何网络启动故障按这个顺序检查不要跳步顺序检查内容确认方法1客户端是否发起 PXE观察 PXE ROM 提示和网口灯2客户端是否拿到 IP看客户端 IP 显示或抓包 DHCP 交互3服务端是否收到请求查看 NBM 日志4option 66/67 是否正确抓包或查看 DHCP 响应5引导文件是否存在核对 TFTP 根目录文件名6引导器能否加载菜单观察菜单显示情况7菜单引用的镜像路径是否正确核对 HTTP 请求日志8内核/PE 是否加载成功观察启动日志和 PE 命令行9网卡驱动是否生效ipconfig、pnputil验证7. 生产环境使用 NBM 的落地建议与扩展方向测试环境跑通之后进入生产环境还要补很多工作。网络启动服务是基础设施一旦出现问题影响的是整个机房的批量操作。7.1 学习环境与生产环境的差异维度学习环境生产环境DHCP 模式NBM 内置 DHCP 直接分配推荐 proxyDHCP 或独立 VLAN 内置 DHCP网络范围单网段、直连交换机多网段、配置 DHCP Relay、划分广播域文件传输TFTP 即可大镜像走 HTTPTFTP 只传引导器安全控制不配置方便实验MAC 白名单、VLAN 隔离、端口受限镜像管理一份 boot.wim 测试按硬件型号和系统版本分类管理版本化命名日志与监控手动看日志集中收集日志配置告警变更流程直接改配置先备份配置文件测试机验证后再批量7.2 服务部署上的三条建议第一尽量使用 proxyDHCP 模式接管 PXE 选项而不是替换现有 DHCP。生产网络的 IP 分配通常由核心设备统一管理直接替换 DHCP 风险太大。proxyDHCP 只增加 PXE 相关选项对 IP 分配无影响。第二将镜像服务从 TFTP 迁移到 HTTP。boot.wim 动辄数 GBTFTP 传输慢且容易断。让 TFTP 只承担引导器下载镜像文件统一放 HTTP可以显著提升批量启动的稳定性和速度。第三服务端绑定专用网卡和静态地址。不要把 NBM 和办公网混在同一张网
返回列表