通过ipxe引导安装windows

老刘

通过 iPXE 引导安装 Windows:详细教程、步骤与常见问题

一、先搞清楚什么是 iPXE 安装 Windows

很多人听到“网络装系统”会先想到 U 盘,其实还有一种更高效的方式,就是 通过 iPXE 引导安装 Windows。简单理解,iPXE 就像一个能从网络启动电脑的“引导工具”,电脑开机后不需要插 U 盘,就能直接从局域网或者服务器拉取系统安装文件,开始安装 Windows。

这种方式特别适合以下场景:

  • 机房批量装机
  • 公司内网统一部署 Windows
  • 没有 U 盘,或者不想频繁制作启动盘
  • 想做无人值守安装
  • 需要维护多台电脑、反复重装系统

相比传统 U 盘安装,iPXE 的优势很明显:

  • 不依赖实体启动盘
  • 安装文件集中管理,更新方便
  • 适合批量部署
  • 可结合自动应答文件实现全自动装机

不过,iPXE 安装 Windows 也不是“开机直接点几下”那么简单,它需要一套完整的网络启动环境,包括:

  • DHCP 服务
  • TFTP 或 HTTP 服务
  • iPXE 启动文件
  • Windows PE 或安装镜像文件
  • 必要时还要准备无人值守应答文件

下面就按“新手能看懂”的方式,一步一步讲清楚。


二、iPXE 安装 Windows 的整体思路

1. 启动流程是什么样的

大致流程如下:

  1. 电脑开机,从网卡启动
  2. 网卡向局域网里的 DHCP 服务器申请地址
  3. DHCP 服务器告诉电脑去加载 iPXE 启动文件
  4. iPXE 加载后,再从 HTTP/TFTP 服务器下载 Windows PE 或安装引导文件
  5. 进入 Windows 安装界面
  6. 选择磁盘,开始安装 Windows

如果做了无人值守配置,连手动点“下一步”都可以省掉。

2. 为什么推荐 HTTP 而不是纯 TFTP

很多老教程会用 TFTP 传输文件,但实际装 Windows 时,TFTP 的速度和稳定性都一般,尤其是文件大一点就比较慢。

更推荐这样组合:

  • DHCP:分配 IP,告知启动文件
  • TFTP:只负责最初的 iPXE 引导文件
  • HTTP:负责传输大型安装文件

这样速度更快,也更稳。


三、准备工作:先搭好环境

方案一:适合新手的最小可用环境

如果你是第一次搭,建议先用一台 Windows 或 Linux 主机作为部署服务器,局域网里临时测试

你需要准备:

  • 一台作为服务器的电脑
  • 一台要安装 Windows 的目标电脑
  • 网线,最好接同一个交换机
  • 一个可用的 DHCP 服务
  • iPXE 启动文件
  • Windows 安装 ISO
  • 一个可选的 WinPE 环境

推荐网络结构:

  • 服务器 IP:192.168.1.10
  • 目标电脑通过 PXE 启动获取地址
  • 安装文件放在 http://192.168.1.10/

四、iPXE 引导文件怎么准备

1. 下载 iPXE

去 iPXE 官方仓库或发行版获取常用启动文件,常见文件有:

  • undionly.kpxe:用于传统 BIOS 启动
  • ipxe.efi:用于 UEFI 启动
  • snponly.efi:兼容性更强,适合部分 UEFI 网卡

如果你要兼容新旧机器,建议两个都准备:

  • BIOS 机器:undionly.kpxe
  • UEFI 机器:snponly.efiipxe.efi

2. 放到 TFTP 目录

例如放在:

  • Linux:/var/lib/tftpboot/
  • Windows TFTP 服务目录:按软件要求设置

五、DHCP 服务器怎么配置

DHCP 的作用是告诉目标电脑:

  1. 你可以拿到什么 IP
  2. 你的启动文件在哪里
  3. 你应该去哪里继续下载启动脚本

方案一:Linux 下用 DNSmasq 快速搭建

这是最省事的方式,适合测试环境。

安装 dnsmasq

sudo apt update
sudo apt install dnsmasq -y

配置示例

编辑配置文件:

sudo nano /etc/dnsmasq.conf

加入下面内容:

interface=eth0
bind-interfaces
dhcp-range=192.168.1.100,192.168.1.200,12h

enable-tftp
tftp-root=/var/lib/tftpboot

dhcp-boot=undionly.kpxe

如果是 UEFI 设备,可以按设备类型下发不同启动文件:

dhcp-match=set:efi64,option:client-arch,7
dhcp-boot=tag:efi64,snponly.efi
dhcp-boot=undionly.kpxe

重启服务

sudo systemctl restart dnsmasq

方案二:Windows 下配置 DHCP

如果你的网络里已经有路由器在发 DHCP,谨慎操作,避免冲突。通常建议单独做一个测试网段,或者在企业环境中由专业管理员统一配置。

Windows 环境下常见做法是:

  • 使用 Windows Server DHCP
  • 配合 TFTP 服务软件
  • 配合 IIS 搭 HTTP 服务

这种方案适合正式环境,配置更规范,但步骤比 Linux 稍复杂。


六、搭建 HTTP 文件服务

因为 Windows 安装文件比较大,建议把安装资源放在 HTTP 目录里。

Linux 下用 Nginx 或 Apache

安装 Nginx

sudo apt install nginx -y

把安装文件放到网站目录

例如:

/var/www/html/win/

然后把以下内容放进去:

  • Windows ISO 解压后的安装文件
  • WinPE 文件
  • 启动脚本

访问测试

浏览器打开:

http://192.168.1.10/win/

如果能看到文件列表或下载内容,说明 HTTP 服务正常。


七、如何让 iPXE 自动加载安装脚本

iPXE 真正好用的地方,不只是“能启动”,而是可以自动执行脚本。

1. 创建 iPXE 脚本

例如创建 boot.ipxe

#!ipxe
dhcp
set base-url http://192.168.1.10/win
chain ${base-url}/boot.ipxe

更完整一点的写法可以直接加载 WinPE 或安装引导:

#!ipxe
dhcp
set base-url http://192.168.1.10/win

kernel ${base-url}/wimboot
initrd ${base-url}/bootmgr bootmgr
initrd ${base-url}/BCD BCD
initrd ${base-url}/boot.sdi boot.sdi
initrd ${base-url}/boot.wim boot.wim
boot

这里用到的是 wimboot,这是 iPXE 里很常见的 Windows 启动方案。


八、wimboot 方式安装 Windows 的核心思路

1. 什么是 wimboot

wimboot 是一个可以帮助 iPXE 加载 Windows PE / Windows 安装环境的引导组件。它的作用不是直接安装 Windows,而是把 Windows 的启动文件“拼”起来,让电脑先进到 WinPE 或安装程序中。

通常需要这些文件:

  • wimboot
  • bootmgr 或 UEFI 下的对应启动文件
  • BCD
  • boot.sdi
  • boot.wim

这些文件大多可以从 Windows 安装镜像或者 WinPE 镜像中提取。


2. 从 Windows ISO 提取文件

把 Windows ISO 挂载后,找到以下文件:

  • sources\boot.wim
  • boot\BCD
  • boot\boot.sdi
  • bootmgr

然后复制到 HTTP 目录中。

目录结构可以这样设计:

/var/www/html/win/
├── wimboot
├── bootmgr
├── BCD
├── boot.sdi
├── boot.wim
├── install.wim
└── boot.ipxe

如果你是 UEFI 安装,还需要考虑 EFI 启动相关文件,比如:

  • bootx64.efi
  • EFI 分区里的启动文件

九、真正开始安装 Windows 的流程

方法一:直接进 Windows 安装界面

当 iPXE 成功加载 boot.wim 后,电脑会进入 Windows 安装环境。

你会看到类似下面的界面:

  • 选择语言
  • 选择键盘布局
  • 点击“现在安装”
  • 输入密钥或跳过
  • 选择版本
  • 接受许可条款
  • 选择“自定义:仅安装 Windows”
  • 选择磁盘分区
  • 开始安装

磁盘分区建议

如果是全新装机,最简单的方法是:

  1. 删除目标磁盘上旧分区
  2. 让 Windows 自动创建分区
  3. 直接安装

如果你是双系统用户,千万别随便删错盘,特别是多个硬盘同时连接时,要仔细看容量和盘符。


方法二:做无人值守安装

如果你要批量装机,建议加入 unattend.xml 应答文件。

这个文件能帮你自动完成:

  • 语言选择
  • 分区
  • 用户设置
  • 网络设置
  • 激活配置
  • 首次登录配置

应答文件的好处:

  • 不用人工一直点下一步
  • 适合批量部署
  • 可减少人为失误

常见做法:

unattend.xml 放进安装介质中,或者在 WinPE 阶段由脚本加载。


十、UEFI 和 BIOS 的区别要注意

很多人装不起来,不是文件错了,而是 启动模式不匹配

1. BIOS 模式

适合老机器,常用:

  • undionly.kpxe
  • bootmgr
  • 传统 MBR 分区方式

2. UEFI 模式

适合新机器,常用:

  • snponly.efi
  • ipxe.efi
  • GPT 分区方式

3. 常见问题

如果目标电脑是 UEFI 启动,但你下发的是 BIOS 启动文件,就会出现:

  • 黑屏
  • 找不到启动项
  • 启动失败
  • 提示 network boot aborted

所以配置 DHCP 时最好根据架构判断并下发不同文件。


十一、常见故障排查

1. 电脑根本没从网络启动

可能原因:

  • BIOS 里没开 PXE 启动
  • 网卡启动顺序不对
  • 网线没插好
  • 交换机端口有问题
  • 网卡不支持当前启动模式

解决办法:

  • 进入 BIOS/UEFI
  • 找到 Boot 或 Network Stack
  • 开启 Network Boot / PXE Boot
  • 把 Network 设为第一启动项
  • 保存后重启

2. 获取不到 IP

可能原因:

  • DHCP 服务没开
  • 网络里已有冲突的 DHCP
  • 服务器和目标电脑不在同一网段
  • 防火墙拦截了 DHCP 请求

解决办法:

  • 检查 DHCP 服务状态
  • 临时关闭防火墙测试
  • 确认网卡和交换机连通
  • 确保测试环境只有一个 DHCP

3. iPXE 能启动,但加载脚本失败

可能原因:

  • HTTP 地址写错
  • 文件权限不足
  • Nginx/Apache 没启动
  • 文件名大小写错误
  • 路径中有中文或空格

解决办法:

  • 用浏览器直接访问文件地址
  • 确认脚本里 URL 正确
  • 路径尽量用英文和数字
  • 检查服务器日志

4. 进了 WinPE,但看不到硬盘

可能原因:

  • 缺少存储控制器驱动
  • Intel RST / VMD 模式开启
  • NVMe 驱动没带
  • RAID 模式不兼容

解决办法:

  • 在 BIOS 里关闭 VMD 或切换为 AHCI
  • 在 WinPE 中手动加载驱动
  • 提前把硬盘驱动集成进 boot.wim
  • 新款笔记本尤其要注意 Intel VMD

5. 安装到一半报错

可能原因:

  • 镜像文件损坏
  • 内存不稳定
  • 硬盘坏道
  • 网络中断
  • 写入权限不足

解决办法:

  • 重新校验 ISO
  • 检查内存和硬盘健康
  • 换网线或交换机端口
  • 尽量使用稳定的 HTTP 服务

十二、提高成功率的实用技巧

1. 先用一台旧电脑测试

不要一上来就拿主力机或服务器测试,先用旧电脑验证:

  • PXE 是否能启动
  • DHCP 是否正常
  • iPXE 脚本是否能加载
  • WinPE 能否正常进入

2. 尽量使用有线网络

iPXE 依赖网络启动,无线网卡基本不适合做 PXE,所以一定用有线。

3. 文件路径保持简单

例如:

http://192.168.1.10/win/

不要用复杂中文路径,避免兼容性问题。

4. 分清 BIOS 和 UEFI

这是最常见的坑之一。装不起来时,第一时间确认目标机器的启动模式。

5. 用 HTTP 替代大文件 TFTP

大文件一定走 HTTP,不然速度慢、失败率高。


十三、适合进阶用户的实战方案

如果你要做一套更稳定的 Windows 网络部署系统,可以按这个组合:

  • DHCP:dnsmasq 或 Windows Server DHCP
  • TFTP:仅用于 iPXE 初始引导
  • HTTP:Nginx 提供安装文件
  • iPXE:负责链式加载
  • wimboot:进入 WinPE
  • unattend.xml:无人值守安装
  • SCCM / MDT:企业级批量部署方案

如果是公司环境,MDT + WDS 是非常经典的 Windows 部署组合;如果追求灵活和轻量,iPXE + HTTP + wimboot 更容易上手。


十四、一个简化版落地示例

下面给一个便于理解的最小方案。

1. 服务器上安装服务

  • DHCP:dnsmasq
  • HTTP:Nginx
  • TFTP:dnsmasq 自带

2. 目录结构

/var/lib/tftpboot/
├── undionly.kpxe
├── snponly.efi

/var/www/html/win/
├── wimboot
├── bootmgr
├── BCD
├── boot.sdi
├── boot.wim
└── boot.ipxe

3. boot.ipxe 内容

#!ipxe
dhcp
set server 192.168.1.10
chain http://${server}/win/boot.ipxe

或者直接加载 WinPE:

#!ipxe
dhcp
set base http://192.168.1.10/win
kernel ${base}/wimboot
initrd ${base}/bootmgr bootmgr
initrd ${base}/BCD BCD
initrd ${base}/boot.sdi boot.sdi
initrd ${base}/boot.wim boot.wim
boot

4. 目标机设置

进入 BIOS:

  • 开启 PXE Boot
  • 开启 Network Stack
  • 关闭安全启动测试,避免兼容问题
  • 选择正确的 UEFI 或 Legacy 模式

然后重启,电脑就会自动进入网络启动流程。


十五、注意事项

1. 生产环境不要随便和现有 DHCP 混用

如果公司或家里路由器已经在发 DHCP,你再开一个 DHCP,很容易冲突,导致全网设备断网或 IP 混乱。

2. UEFI 安装要注意 Secure Boot

有些 iPXE 文件在开启 Secure Boot 时无法直接使用,测试阶段建议先关闭,部署成熟后再考虑签名链路。

3. 不要忽略驱动问题

尤其是新款笔记本和带 Intel VMD 的机器,WinPE 看不到盘,很多时候不是硬盘坏了,而是驱动没带。

4. 文件版本要匹配

Windows 10、Windows 11、Server 版本的启动文件和安装文件尽量对应,不要混搭太杂。

5. 先小范围验证,再批量推广

一台机成功,不代表所有机器都没问题。不同网卡、不同主板、不同启动模式都可能带来差异。


十六、总结:iPXE 安装 Windows 的核心要点

想通过 iPXE 顺利安装 Windows,最关键的不是“会不会点安装按钮”,而是把整条链路搭通:

  • 电脑能正常 PXE 启动
  • DHCP 能正确分配地址
  • iPXE 能加载启动脚本
  • HTTP 能稳定提供安装文件
  • WinPE 能识别硬盘
  • BIOS/UEFI 模式匹配
  • 必要时集成驱动和应答文件

只要这几个环节都通了,iPXE 安装 Windows 就会非常顺手,尤其适合批量装机、远程部署和无人值守场景。它的本质是把传统“插 U 盘装系统”升级成“从网络直接拉取系统安装环境”,效率更高,也更专业。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,3人围观)

还没有评论,来说两句吧...

目录[+]