前些日子做了基于PXE的网络克隆DOS版。今天实验成功基于PXE启动的WINPE,具体过程如下:
1.启动TFTP和DHCP服务器:
和PXE的DOS版一样,要从网络启动WINPE,必须要有TFTP和DHCP服务器用于分配IP和设置启动文件。PXE原理请看 基于PXE的网络克隆(DOS版) 。
2.在DHCP服务器中指定启动文件为:startrom.n12。
这个文件可以从WINDOWS XP/2003光盘中获取。具体路径为:CDROM\I386\startrom.n1_。用WINRAR解压缩后即得startrom.n12文件。
3.将WINDOWS XP/2003光盘中的SETUPLDR.EX_文件解压缩后得到setupldr.exe。然后将其重命名为ntldr,放到TFTP服务器根目录下。
4.创建winnt.sif文件,用于指定WINPE的系统目录和要加载的WINPE镜像文件。winnt.sif文件内容为:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\I386\SYSTEM32\"
OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=WINPE.IMG"
其中,BootPath用来指明WINPE的系统目录。OsLoadOptions用来指明WINPE镜像文件。镜像文件通常有两种类型:ISO/IMG和SDI。当镜像文件为ISO/IMG格式时,需要给OsLoadOptions添加 /rdexportascd 参数;当镜像文件为SDI格式时,需要给OsLoadOptions添加 /rdoffset参数。
winnt.sif文件也必须放到TFTP服务器的根目录下。
经过上述这四个步骤即可创建一个基于PXE启动的WINPE。
补充说明:
1.由于镜像文件是通过网络加载到内存中,所以当内存小时,一定要精减WINPE镜像文件的大小。
2.WINPE的系统目录有可能不是I386,如深山红叶、老毛桃等制作的WINPE镜像就不是I386,而分别是WINS和WXPE。
当WINPE的系统目录不是I386时,我们需要修改ntldr和WINNT.SIF文件。ntldr文件需要用二进制编辑器修改,我用的是VS2008(我电脑中安装有这个,没有的可以用别的二进制编辑器修改),总共有六处I386要被替换。WINNT.SIF文件同样也是需要替换I386。