WinPE光盘镜像制作教程
要搞清楚WinPE的启动机制,首先得弄明白它的两种常见部署方式,这对后续制作镜像至关重要。 第一种是A类:把WinPE的系统文件直接放在光盘镜像里。系统启动后,系统盘(一般是X:)就是光盘本身。这么做的弊端很明显——一旦光盘被取出,系统虽然可能还能运行,但所有依赖光盘的软件和工具都会失效,就像现在某
要搞清楚WinPE的启动机制,首先得弄明白它的两种常见部署方式,这对后续制作镜像至关重要。
第一种是A类:把WinPE的系统文件直接放在光盘镜像里。系统启动后,系统盘(一般是X:)就是光盘本身。这么做的弊端很明显——一旦光盘被取出,系统虽然可能还能运行,但所有依赖光盘的软件和工具都会失效,就像现在某些系统光盘里自带的PE,光盘一拿走,功能就废了。
第二种是B类:把WinPE系统文件打包成一个SDI镜像。启动时,PE以RamDisk方式在内存中展开,系统盘是内存里的虚拟盘。这样一来,光盘取出后,系统完全不受影响,所有功能照常运转。这才是目前主流PE采用的方式——核心全在内存里,跟光盘无关。
准备工作:你需要哪些资源
想要动手制作,得先准备好以下材料:
- 一张Windows产品CD(比如Windows 2003 Server盘;如果是XP,换成XP安装盘,注意是安装版,不是Ghost版)
- 一张Windows OPK CD 或 Windows PE CD(OPK全称是原始设备生产商工具包,仅供OEM厂商使用;非OEM客户则需购买Windows PE许可证,但两者附带的核心工具是一样的。)
注意:下面所有操作,建议在虚拟光驱环境下进行,免得反复烧盘浪费时间。
镜像制作步骤(以x86架构为例)
首先,在硬盘上创建一个目录,用来存放Windows PE的创建工具。比如:
md c:\build_x86
如果对命令行不熟,直接在C盘下新建一个名为“build_x86”的文件夹也一样。
接着,把Windows OPK CD或PE CD放入光驱(假设盘符是E:),将其中Winpe文件夹及其所有子目录复制到刚才创建的位置:
xcopy e:\winpe c:\build_x86 /s
复制完成后取出光盘,换上Windows产品CD,然后进入build_x86目录:
cd c:\build_x86
现在运行Mkimg命令,它是生成PE镜像的核心脚本。基本语法是:
mkimg.cmd source_directory winpe_image
举个例子,如果产品CD在E:盘,想把镜像输出为c:\winpe,则执行:
mkimg.cmd e:\ c:\winpe
注意,这里的source_directory是产品光盘的根目录,别指定错了。
Mkimg还支持几个实用参数,可以根据需要添加:
/NOVER:禁用版本检查(创建非标准映像时有用)/WMI:从WMI知识库添加WMI提供程序/PNP:添加即插即用设备驱动检测功能/NOWF:禁用Windows防火墙(默认是启用的)
另一个常用的定制脚本是BuildOptionalComponents.vbs,用于添加可选组件。它的参数包括:
/ADO:构建ADO支持(用于SQL Server连接)/D:location:指定可选组件文件的目标位置(默认桌面)/E:完成后自动打开目标文件夹/HTA:构建HTML应用程序支持/Q:静默运行(仅失败时提示)/S:location:指定备选的源文件位置/WSH:构建Windows脚本宿主支持/X:提供验证组件安装的示例脚本
例如,要同时添加HTA和WSH支持并指定目标位置,可以这样写:
BuildOptionalComponents.vbs /D:winpe_img /S:cd_drive /HTA /WSH /X /E
完成上述步骤后,PE的所有文件就已经构建完毕了。接下来是制作可启动光盘镜像的环节,而A类和B类镜像的制作方法从这里开始分岔。
A类镜像:简单直接
A类镜像的制造非常简单——只需要把winpe_img目录下的所有文件打包成一张可启动光盘镜像即可。仍然在build_location目录下执行:
oscdimg -h -n -betfsboot.com winpe_img C:\WinPE.iso
这样,一份基础的PE启动ISO就完成了。
B类镜像:内存启动的RamDisk版
B类镜像需要借助Windows Embedded Studio中的SDI Loader工具。过程稍多,但思路清晰:
- 新建一个工作目录,比如
workdir。 - 打开SDI Loader,点击Add Disk,定位到
workdir,输入新文件名pe.sdi,点击打开。弹出对话框时确认创建新磁盘映像。然后填写磁盘大小——注意不要超过或太接近目标机器的物理内存,最好小于内存的一半。 - 使用DiskPart工具对新建的磁盘进行分区。推荐的命令序列:
Clean
List disk
Select disk=X (X是上一步看到的硬盘号)
Create partition primary
分区后,格式化为NTFS文件系统,最好开启文件压缩支持。
- 假设新分区的盘符是K:,回到
build_location目录,用Robocopy将PE文件复制到K:盘:
robocopy.exe /MIR winpe_img K:\ /R:3 /W:4
使用Robocopy的好处是,如果NTFS分区启用了压缩,可以在空间不足时自动压缩并重试拷贝,确保数据完整。
- 复制完成后,在SDI Loader中将
pe.sdi卸载。 - 在
workdir中新建一个i386文件夹,将winpe_img\i386文件夹下的NTDETECT.COM和SETUPLDR.BIN两个文件复制进去。 - 在
workdir中创建一个文本文件,命名为winnt.sif,内容如下:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\System32\"
OsLoadOptions ="/noguiboot /fastdetect /minint /rdimageoffset=36352 /rdpath=PE.SDI"
- 最后,用
oscdimg命令制作可启动ISO镜像:
oscdimg -h -n -betfsboot.com winpe_img C:\WinPE.iso
至此,两种风格的PE镜像就都完成了。A类适合快速启动、对光盘依赖不敏感的场景;B类则更能应对无盘或光盘被取出的情况,是多数PE工具的首选。根据你的实际需求,挑一个合适的方案上手试试吧。
