跳转至

网络引导 Windows PE

Windows PE(WinPE)是 Windows 预安装环境,用于安装和修复 Windows 计算机。

使用 iPXE 和 wimboot,你可以通过 HTTP 引导进入 Windows PE。然后你可以连接到标准的 Windows 文件服务器,把完整版本的 Windows 安装到本地硬盘(或 iSCSI 目标)。

通过 HTTP 引导 Windows PE 比使用 Windows 部署服务(WDS)等传统的基于 TFTP 的方法快得多。在千兆以太网上,下载一个典型的 200MB Windows PE 镜像应不到两秒。

A smile

设置 Windows PE

对于当前版本的 Windows,Windows PE 作为 Windows 评估和部署工具包(ADK)的一部分提供;对于较早版本的 Windows,则作为 Windows 自动安装工具包(AIK)的一部分提供。

Windows 评估和部署工具包(ADK)

Some books

Windows 评估和部署工具包(ADK)兼容 Windows Server 2012、Windows 8、Windows 7、Windows Server 2008 和 Vista。

在一台正常工作的 Windows 系统("技术员计算机")上下载并安装 ADK。

开始菜单中,选择所有程序 -> Windows Kits -> Windows ADK -> 部署和映像工具环境。这会打开一个命令提示符窗口。创建 32 位和 64 位版本的 Windows PE:

  mkdir C:\temp\winpe
  copype x86 C:\temp\winpe\x86
  copype amd64 C:\temp\winpe\amd64

C:\temp\winpe 的内容复制到 Web 服务器上的某个目录(例如 Apache 用 /var/www/winpe,IIS 用 C:\inetpub\wwwroot\winpe)。

下载最新版本的 wimboot,并把它保存到 Web 服务器上的同一目录。

在 Web 服务器上的同一目录中创建文本文件 boot.ipxe,内容如下:

  #!ipxe

  cpuid --ext 29 && set arch amd64 || set arch x86
  kernel wimboot
  initrd ${arch}/media/sources/boot.wim  boot.wim
  boot

Windows 自动安装工具包(AIK)

Some older books

Windows 自动安装工具包(AIK)兼容 Windows 7、Windows Server 2008、Vista 和 Windows Server 2003。

在一台正常工作的 Windows 系统("技术员计算机")上下载并安装 AIK。

开始菜单中,选择所有程序 -> Microsoft Windows AIK -> 部署工具命令提示。这会打开一个命令提示符窗口。创建 32 位和 64 位版本的 Windows PE:

  mkdir C:\temp\winpe
  copype x86 C:\temp\winpe\x86
  copype amd64 C:\temp\winpe\amd64

C:\temp\winpe 的内容复制到 Web 服务器上的某个目录(例如 Apache 用 /var/www/winpe,IIS 用 C:\inetpub\wwwroot\winpe)。

下载最新版本的 wimboot,并把它保存到 Web 服务器上的同一目录。

在 Web 服务器上的同一目录中创建文本文件 boot.ipxe,内容如下:

  #!ipxe

  cpuid --ext 29 && set arch amd64 || set arch x86
  kernel wimboot
  initrd ${arch}/ISO/boot/bcd          BCD
  initrd ${arch}/ISO/boot/boot.sdi     boot.sdi
  initrd -n boot.wim ${arch}/winpe.wim boot.wim
  boot

引导 Windows PE

使用 iPXE 从你的 boot.ipxe 脚本的 URI 启动,例如 http://my.web.server/winpe/boot.ipxe。你应该会看到 iPXE 通过 HTTP 下载并引导 Windows PE:

Windows PE booting

Windows PE booted

安装 Windows

现在你可以连接到 Windows(或 Samba)文件服务器来运行 Windows 安装程序。例如,如果你已经把 Windows 安装 DVD-ROM 的内容复制到了 \\myserver\installers\win8,那么你可以使用如下命令启动安装程序:

  net use \\myserver\installers
  \\myserver\installers\win8\setup.exe

Windows PE running Windows 8 installer

高级主题

添加启动批处理文件

A light bulb

你可以定制你的 Windows PE 镜像,让它自动连接到文件服务器并运行 Windows 安装程序。

创建文本文件 install.bat,包含连接到你的文件服务器并启动安装程序所需的命令:

  wpeinit
  net use \\myserver\installers
  \\myserver\installers\win8\setup.exe

创建文本文件 winpeshl.ini,指示 Windows PE 运行你的 install.bat 文件:

  [LaunchApps]
  "install.bat"

install.batwinpeshl.ini 复制到你的 Web 服务器,并编辑你的 boot.ipxe 脚本以加载这些文件:

  #!ipxe

  cpuid --ext 29 && set arch amd64 || set arch x86
  kernel wimboot
  initrd install.bat                                install.bat
  initrd winpeshl.ini                               winpeshl.ini
  initrd ${arch}/media/Boot/BCD                     BCD
  initrd ${arch}/media/Boot/boot.sdi                boot.sdi
  initrd ${arch}/media/sources/boot.wim             boot.wim
  boot

当你引导进入 Windows PE 时,它现在应该会自动连接到你的文件服务器并运行 Windows 安装程序。

A network card

添加网卡驱动程序

如果你的网卡尚未被 Windows PE 支持,你可以定制 Windows PE 镜像以包含网卡驱动程序。你需要 ImageXDISM 工具,它们是 Windows ADK(或 AIK)的一部分。wimlib 软件包中也提供了 Linux 版本的 imagex

下载网卡驱动程序,并把驱动程序解压到 C:\temp\winpe\drivers。如果你使用的是 ADK,则需要下载与 Windows 8 兼容的驱动程序;如果你使用的是 AIK,则需要与 Windows 7 兼容的驱动程序。

使用 ImageXDISM 把这个驱动程序添加到你的 Windows PE 镜像中:

  imagex /mountrw C:\temp\winpe\amd64\media\sources\boot.wim 1 C:\temp\winpe\amd64\mount
  dism /image:C:\temp\winpe\amd64\mount /add-driver /driver:c:\temp\winpe\drivers /recurse
  imagex /unmount /commit C:\temp\winpe\amd64\mount

安装到 iSCSI 目标

你可以使用 Windows PE 镜像把 Windows 安装到 iSCSI 目标。创建文本文件 install.ipxe,内容如下:

  #!ipxe

  prompt -k 0x197e -t 2000 Press F12 to install Windows... || exit
  chain boot.ipxe

并把它复制到 Web 服务器上存放 boot.ipxe 脚本的目录。

配置你的 DHCP 服务器,把 install.ipxe 脚本的 URI 作为启动文件名提供,并把 iSCSI 目标的 SAN URI 作为 root-path 提供。如果你的 iSCSI 目标使用访问控制列表(ACL),那么你可能还需要提供正确的 initiator-iqn

你应该会看到无盘计算机连接到 iSCSI 目标,然后提示你"Press F12 to install Windows"(按 F12 安装 Windows):

WinPE installation prompt

按 F12 开始安装过程。如果你已经按照上面的说明添加了启动批处理文件,那么 Windows 安装程序会自动启动。如果没有,则手动连接到你的文件服务器并运行 Windows 安装程序。

像往常一样继续安装 Windows。当你到达"你想把 Windows 安装在哪里?"界面时,你应该会看到 iSCSI 磁盘显示为一个可用的安装位置:

WinPE iSCSI installation disk