Windows预安装环境(Windows PE)是一种可启动工具,为安装、故障排除和恢复提供了最小的操作系统功能集。它可用于启动无操作系统的计算机(裸机系统)、对硬盘驱动器进行分区和格式化、从网络共享复制磁盘映像或初始化Windows安装程序等。Windows PE 并不是一个常规用途的操作系统。它主要用于三种特定任务:
(1)安装Microsoft Windows 7。每次安装Windows 7时,Windows PE都会运行。在安装阶段收集配置信息的图形工具将在Windows PE中运行。此外,IT部门可以自定义和扩展Windows PE 以满足其独特的部署需求。
(2)故障排除。Windows PE可用于自动和手动故障排除。例如,如果Windows 7由于系统文件损坏而无法启动,则Windows PE可以自动启动并运行Windows恢复环境 (Windows RE)。还可以手动启动Windows PE以使用内置或自定义的故障排除和诊断工具。
(3)恢复。原始设备制造商(OEM)和独立软件供应商(ISV)可以使用Windows PE构建自定义的自动解决方案,以恢复和重建运行Windows 7的计算机。例如,用户可以从 Windows PE恢复CD或恢复分区启动计算机,以便自动重新格式化其硬盘并使用原始驱动程序、设置和应用程序重新安装Windows 7。
最新版本的WinPE是基于Windows 7操作系统的Windows PE 3.0(注意它也支持部署早期版本的Windows),以及基于Windows 8的Windows PE 4.0。过去,OEM和IT专业人员常常使用基于MS-DOS的启动软盘启动计算机。但是,基于MS-DOS的启动软盘具有许多限制,比如不支持NTFS;不支持本地网络;不支持32位或64位Windows设备驱动程序,这样就必须找到16位驱动程序;有限地支持自定义应用程序和脚本。这样就使其很难用于预安装Windows或恢复现有的安装或数据。Windows PE是微软专门开发用于启动未运行操作系统的计算机的主要工具。将计算机启动到Windows PE后,可以为安装Windows而准备计算机,然后从网络或本地源启动Windows安装程序。还可以处理Windows的现有副本或恢复数据。Windows PE版本3.0是具有有限服务、基于Windows 7内核上的以保护模式运行的最小Win32子系统,其体系结构如下图:
图1 Windows PE的体系结构
构建WinPE映像需要用到微软的Windows AIK工具包或Windows ADK工具包,可以到http://www.microsoft.com/zh-cn/download/search.aspx?q=AIK下载合适的版本。
适用于Windows 7的AIK: http://www.microsoft.com/zh-cn/download/details.aspx?id=5753
适用于Windows 8的ADK:http://www.microsoft.com/zh-cn/download/details.aspx?id=30652
Windows PE技术参考:http://technet.microsoft.com/zh-CN/library/hh825110.aspx
WinPE可以利用多种方式进行启动。可以在以下位置创建可启动Windows PE映像:
(1)CD-ROM和DVD-ROM(使用最多的方式)。
(2)USB闪存驱动器(UFD,使用最方便的方式)。
(3)硬盘。
(4)使用PXE引导访问映像(网卡启动,需搭建Windows部署服务(WDS)服务器或受支持的PXE服务器,并把WinPE映像放在这些服务器上)。
Windows PE工具包中包含以下工具:
(1)BCDboot.exe:为引导配置数据(BCD)存储提供初始化,并使您能够在映像部署期间将引导环境文件复制到系统分区。
(2)Bootsect.exe:更新硬盘分区的主启动代码以在BOOTMGR和NTLDR之间进行替换。这样可以从WindowsXP或WindowsServer(R) 2003预安装WindowsVista或Windows 7。还可以从Windows XP预安装Windows 7,或从Windows Vista或Windows 7预安装Windows Server 2003。可以使用Bootsect还原计算机上的引导扇区。此工具会替换FixFAT和FixNTFS。
(3)DiskPart.exe:此工具允许您使用脚本或直接在命令提示符下输入命令来管理对象(磁盘、分区或卷)。
(4)Drvload.exe:用于将全新驱动程序添加到已启动的Windows PE映像。它将一个或多个驱动程序(.inf文件)作为输入项。
(5)Oscdimg.exe:用于创建自定义32位或64位版本Windows PE的映像(.iso)文件。然后可以将此.iso文件刻录到CD-ROM。
(6)Dism.exe:可创建和修改Windows PE 3.0或Windows 7映像的命令行工具。
(7)ImageX.exe:原始设备制造商(OEM)和公司可以使用它来捕获、修改和应用基于文件的磁盘映像以进行快速部署。它还可以与使用了.wim文件的其他技术(如Windows7的安装程序、WindowsVista Windows部署服务和SMS操作系统功能部署包)一起使用。
(8)Winpeshl.ini:Windows PE的默认界面是命令提示符。本文件可以对此进行自定义,以便运行您自己的外壳应用程序。
(9)Wpeinit.exe:一个每次启动时对Windows PE进行初始化的命令行工具。Wpeinit替换了先前Windows XP中Factory.exe -winpe命令支持的初始化功能。
(10)Wpeutil.exe:一个允许您在Windows PE会话中运行各种命令的命令行工具。
默认情况下,Windows PE源文件主要在以下目录中:
C:/Program Files/Windows AIK/Tools/<arch>
C:/Program Files/Windows AIK/Tools/PETools
C:/Program Files/Windows AIK/Tools/Servicing
其中<arch>可以是x86、amd64或ia64。/<arch>目录包含ImageX源文件。/PETools目录包含Window PE源文件。/Servicing目录包含支持源文件。可选组件位于目录C:/ProgramFiles/Windows AIK/Tools/PETools/<arch>中。
1、在CD-ROM上创建Windows PE RAM磁盘
使用Windows PE RAM,可以启动计算机进行部署和恢复。Windows PE RAM直接引导到内存,在计算机启动后,可以取出Windows PE介质。注意默认情况下,Windows PE指定X作为从中引导的任何媒体的驱动器号。可以使用DISM /Set-TargetPath更改驱动器位置。
(1)在装有Windows AIK的计算机上单击“开始”,找到Windows AIK,右键单击“部署工具命令提示符”,然后选择“以管理员身份运行”。
(2)复制核心文件。运行copype.cmd脚本。该脚本需要使用两个参数,硬件体系结构和目标位置。即copype.cmd <architecture> <destination>,其中<architecture>可以是x86、amd64或a64,<destination>是指向本地目录的路径。例如copype.cmd x86c:/winpe_x86。此脚本会创建以下目录结构并复制该体系结构的所有必要文件。例如,
/winpe_x86
/winpe_x86/ISO
/winpe_x86/mount
这里/ISO目录包含使用oscdimg工具构建.iso文件的所有必要文件,WindowsPE映像boot.wim除外。必须使用默认的Windows PE映像winpe.wim创建自定义boot.wim,然后将boot.wim复制到/ISO/sources文件夹。通过ImageX或DISM工具,可以使用/mount目录来装载WindowsPE映像。必须创建每个硬件体系结构的单独构建环境。默认情况下,Windows PE会分配32MB的可写内存(称为暂存空间)。可以使用DISM /Set-Scrtachspace将暂存空间增加到512 MB。
(3)复制基本映像。将基本映像(winpe.wim)复制到/winpe_x86/ISO/sources文件夹,然后将该文件重命名为boot.wim。
copy c:/winpe_x86/winpe.wim c:/winpe_x86/ISO/sources/boot.wim
(4)添加其他自定义。可选,但是建议执行此步骤。在Windows PE中工作时,使用ImageX,可以将应用程序和脚本添加到可能需要的Windows PE映像中。ImageX是一个在实现部署方案期间捕获和应用映像的工具。例如,在命令提示符下键入:
copy "C:/program files/Windows AIK/Tools/x86/imagex.exe"C:/winpe_x86/iso/
如果需要其它工具也同样可以将其拷贝到c:/winpe_x86/iso文件夹即可。
(5)创建ISO映像。使用oscdimg创建.iso文件。在命令提示符下,键入:
oscdimg -n -bC:/winpe_x86/etfsboot.com C:/winpe_x86/ISOC:/winpe_x86/winpe_x86.iso
注意若要在引导期间删除“按任意键从CD启动”提示,请在您装载的映像中的/boot文件夹下删除bootfix.bin文件。对于基于EFI的系统或基于Itanium的体系结构,请使用Efisys.bin替换Etfsboot.com。在运行Windows Server 2003的基于Itanium的计算机上不支持oscdimg工具。若要构建AMD64 EFI .iso文件,可使用以下命令:
Oscdimg.exe -bC:/winpe_x64efi/efisys.bin -u2 -udfver102 C:/winpe_x64efi/ISOC:/winpe_x64efi /winpex64efi.iso
(6)刻录到CD。将映像(.iso)刻录到CD-ROM或DVD-ROM上。可以使用任何刻录软件。
2、在UFD上创建可启动的Windows PE RAM磁盘
前面的1、2、3、4步与上面的一样。
(5)插入UFD,使用diskpart将UFD格式化为跨越整个UFD的FAT32,然后将此分区设置为活动状态。例如(假定Disk 1为UFD):
diskpart select disk 1 clean create partition primary select partition 1 active format quick fs=fat32 assign exit
(6)将/ISO目录中的所有内容复制到UFD中。可以手动创建目录结构或使用xcopy命令自动构建相应的文件并将其从技术人员计算机复制到UFD中。例如(f是UFD的驱动器号):
xcopy c:/winpe_x86/iso/*.* /e f:/
3、在硬盘上创建可启动的Windows PE RAM磁盘
(1)我们必须要使用已有的Windows PE介质(可以用上面的两种方式之一创建一个)引导新计算机,然后格式化硬盘驱动器。当启动后进入X:/windows/system32/表示WinPE启动成功,通过已经启动的WinPE我们可以利用它来完成很多操作。创建Windows PE RAM磁盘需要一个活动分区,其大小至少为Windows PE映像的大小。在命令提示符下,键入:
diskpart select disk 0 clean create partition primary size=1024 select partition 1 active format exit
(2)格式化活动分区后,就可以将Windows PE源文件从可启动的介质复制到硬盘。可以手动创建目录结构,也可以使用 xcopy 命令自动构建并从可启动的介质中复制适当的文件。在命令提示符下,键入:
xcopy d:/*.* /e c:/
其中/e表示复制目录和子目录(包括空目录),d是CD-ROM驱动器或UFD介质的驱动器号,c是硬盘上的主分区的驱动器号。
我们还可以创建直接从媒体启动而非启动到RAM磁盘的WinPE。对于部署或恢复,使用此方法可以启动内存不足512MB的计算机。这需要在第3步之后用DISM /Mount-Wim命令展开boot.wim,把相应文件以及imagex.exe添加到/mount目录,还要在mount目录下配置BCD存储等,具体可参考WinPE的用户手册。