wimboot¶
wimboot 是一个用于 Windows 镜像格式(.wim)文件的引导加载器。它让你能够引导进入 Windows PE(WinPE)部署或恢复环境。
你可以把 wimboot 与 iPXE 配合使用,通过 HTTP 引导 Windows PE。在千兆以太网环境下,一个典型的 WinPE 镜像只需几秒钟就能下载完成。
优势¶

速度¶
wimboot 可以使用 HTTP 而不是 TFTP,因此能以你的网络所支持的全速下载镜像。
效率¶
wimboot 允许 Windows 重用原本用于存放 RAM 磁盘镜像的内存;没有任何内存被浪费。
易用性¶
wimboot 直接处理 .wim 镜像文件;无需把你的 .wim 包装进 ISO 或 FAT 文件系统镜像。
BIOS/UEFI 兼容性¶
wimboot 让你可以用同一套配置和文件,同时在 BIOS 和 UEFI 环境下引导。
下载¶
你可以从 https://github.com/ipxe/wimboot/releases/latest/download/wimboot 下载最新版本的 wimboot 二进制文件。这是一个混合型二进制文件,在 BIOS 和 64 位 UEFI 系统(包括启用了 Secure Boot 的 UEFI 系统)上都能工作。
你也可以从 https://github.com/ipxe/wimboot/releases/latest 下载其他二进制文件(例如用于 32 位 UEFI 系统的版本)。
旧版本可从 https://github.com/ipxe/wimboot/releases 获取。
源代码维护在 https://github.com/ipxe/wimboot 的 git 仓库中。
快速上手¶
如果你有一张 Windows 安装 DVD-ROM(Vista、Server 2008 或更新版本),以及一台 Web 服务器(例如 Apache 或 IIS),那么你就具备了开始使用 wimboot 所需的一切。
提取 Windows 引导文件¶

把 Windows 安装 DVD-ROM 的内容复制到 Web 服务器上的某个目录(例如 Apache 用 /var/www/win7,IIS 用 C:\inetpub\wwwroot\win7)。
如果磁盘空间不足以复制 DVD-ROM 的全部内容,可以只复制以下文件:
/sources/boot.wim
下载 wimboot¶
下载最新版本的 wimboot,并保存到 Web 服务器上的同一目录。
创建 iPXE 脚本¶
在 Web 服务器上的同一目录中创建文本文件 boot.ipxe,内容如下:
#!ipxe
kernel wimboot
initrd sources/boot.wim boot.wim
boot
引导¶
使用 iPXE 从你的 iPXE 脚本的 URL 引导,例如 http://my.web.server/win7/boot.ipxe。你应该会看到 iPXE 通过 HTTP 下载你的 Windows 引导文件,并引导进入 Windows 安装程序:


后续步骤¶
你可以用 wimboot 引导任何可引导的 .wim 镜像。关于如何创建和定制自己的 .wim 镜像,请参见 Windows PE 教程。
许可证¶
wimboot 是采用 GNU GPL 许可的自由开源软件。
赞助方¶
wimboot 的部分开发工作由以下机构赞助:
高级主题¶

多镜像 WIM 文件¶
一个 WIM 文件可以包含多个可引导镜像。你可以使用 index=<N> 命令行选项选择要引导的镜像。例如:
kernel wimboot index=2
注入文件¶
你可以向 wimboot 提供额外的文件。这些文件会出现在 X:\Windows\System32 目录中。例如:
kernel wimboot
initrd winpeshl.ini winpeshl.ini
initrd startup.bat startup.bat
initrd sources/boot.wim boot.wim
boot
你可以利用这一点来控制 Windows PE 启动后的引导过程。例如,可以使用启动批处理文件从网络共享自动启动 Windows 安装程序。
你可以使用 rawwim 命令行选项禁用这一行为。例如:
kernel wimboot rawwim
自定义引导管理器¶
wimboot 会尝试从 WIM 文件中提取合适的引导管理器(例如 bootmgr、bootmgr.exe 或 bootmgfw.efi),以及引导配置数据(BCD)。
你可以通过显式提供一组合适的引导管理器文件来禁用这一行为。例如:
kernel wimboot
initrd bootmgr bootmgr
initrd bcd bcd
initrd efi/boot/bootx64.efi bootx64.efi
禁用自动 BCD 修改¶
wimboot 会自动修补标准的 BIOS 兼容引导配置数据(BCD)文件,把所有出现的 ".exe" 字符串替换为 ".efi",使其能在 UEFI 系统上使用。
你可以使用 rawbcd 命令行选项禁用这一行为。例如:
kernel wimboot rawbcd
禁用调试消息¶
wimboot 默认会显示一些调试消息,以帮助诊断引导过程中可能出现的问题。
你可以使用 quiet 命令行选项禁用这些调试消息。例如:
kernel wimboot quiet
显示图形化引导消息¶
wimboot 会强制 Windows 引导管理器以文本模式显示错误消息。这样做是为了绕过某些版本 Windows 引导管理器的一个 bug——否则除非提供合适的字体文件,否则无法显示错误消息。
你可以使用 gui 命令行选项禁用这一行为。例如:
kernel wimboot gui
禁用分页¶
wimboot 会尽可能自动使用分页机制把数据文件重定位到 4GB 以上,以便在 BIOS 系统上使用较大的 .wim 文件。
你可以使用 linear 命令行选项禁用这一行为。例如:
kernel wimboot linear
内部原理¶
关于 wimboot 内部工作原理的更多详细信息,请参见 wimboot 架构指南。
故障排除¶
可以尝试在 iPXE 脚本中加入 imgstat 和 prompt 命令,以便检查所有文件是否都已正确加载。例如:
#!ipxe
kernel wimboot
initrd sources/boot.wim boot.wim
imgstat
prompt
boot
检查列表中是否只有预期的文件。你可能需要使用 imgfree 命令丢弃不需要的文件。
你也可以尝试给 wimboot 加上 pause 命令行选项。例如:
kernel wimboot pause
这会让 wimboot 在引导 Windows 之前等待一次按键,让你有更多机会观察可能显示的任何消息。
如果无法解决你的问题,可以联系 iPXE 开发者和其他 iPXE 用户。


