作为日常维护工具,Super WinPE已足够强大,但它也存在不少缺憾,如声卡驱动的问题尚未解决等,所以它只能算是嵌入式操作系统的一个“体验版”而已。微软现在主推的嵌入式操作系统是Windows XP Embedded(以下简称XP Embedded),类似于声卡驱动的问题,在XP Embedded中只不过是一个加入组件的简单操作。尽管XP Embedded不是为台式机设计的,但它的可定制性很强,且在容量、便携性、存储介质等方面的优势都是桌面操作系统无法企及的。下文将具体介绍如何制作一张属于你自己的XP Embedded光盘。

 首先下载带SP1的XP Embedded评估版,试用期120天。下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=257343f0-a931-4a5e-aaef-08f1cd4b0a80&DisplayLang=en,在这里下载的是一个网络安装的客户端,所以只有119kB。执行该程序(XPEFFI.exe),出现提示注册的对话框,选“是”进入下载界面,同时程序会打开一个注册网页,在其中填好带“*”的内容,注意E-mail地址必须是真实可用的,因为XP Embedded的注册码将被发送到这里。通常你很快就能收到带有注册码的E-mail,最多不会超过24小时。再来看看下载界面(图1),在这里可以选择保存位置,设置好后选择“Start Download”即可,一共需下载7个压缩包,总容量603MB,该客户端支持断点续传,所以无论下载出错还是断线都没关系。下载完毕后压缩包将被自动解压至“C:\Program Files\Windows Embedded\Installer”中,容量为627MB。开始安装前,确保“D”区内有3GB可用空间(数据库默认安装在D区中),然后进入“disk1”目录,执行“Setup”开始安装(图2)。

 依次安装“工具”(Tools)、“数据库引擎”(Database Engine)和“数据库”(Database),在某些电脑中安装数据库引擎时可能会报错,提示缺少“强密码”(Strong Password),没关系,只要加参数执行安装程序即可。选择“开始”→“运行”,输入如下内容:"C:\Program Files\Windows Embedded\Installer \disk1\SQLMSDE\setup.exe" SAPWD="1"。“SAPWD”参数用于指定强密码,强密码可随便定义,用“1”即可。

 安装完毕后开始菜单中会增加一个名为“Microsoft Windows Embedded Studio”的菜单项(下文中在开始菜单里所做的选择都在此菜单项中进行的),下面我们就可以开始制作光盘了,请严格按照下面的步骤进行,任何一点疏忽都可能前功尽弃。

 1.准备工作

 首先做一些硬件方面的准备:至少需要一台刻录机和两块硬盘。第一块硬盘就是操作系统所在的硬盘,对分区没有什么特殊要求,但操作系统必须是Windows 2000/XP/Server 2003。第二块硬盘是制作光盘的关键,此盘中的分区数量不得大于4个,并且要保留至少8MB未分区空间,第一个分区为主分区,分区格式为FAT16,容量必须小于一张光盘的容量(650MB或700MB),根据我们这次讲解的内容计算,分成300MB即可。所有分区工作都可在Windows中完成,这里不再赘述,分完区千万不要忘记激活第二块硬盘的主分区(下文中称该主分区为“目标区”,第二块硬盘为“目标盘”,第一块硬盘为“系统盘”)。

 分好区后,将“C:\Program Files\Windows Embedded\utilities\”中的“BOOTPREP.exe”拷贝至目标区,由于这是一个16位程序,所以必须在DOS下运行。重启电脑,进入BIOS(一般是按“Del”键或“Ctrl+Alt+Esc”组合键),将系统盘设为“None”(当然,也可以关闭电脑,拆下系统盘),再设置首先从软盘或光盘启动(视你想用哪种方法启动而定),保存退出。使用Win98光盘或启动软盘引导至DOS界面下,输入“C:”,然后回车进入C盘,也就是目标区,再输入“BOOTPREP”并回车,按两次“Y”确认后,目标盘设置完成。

 2.创建“EnableAutoLayout”组件并导入

 ①打开开始菜单中的“Component Designer”,在打开的程序界面中选择菜单“File”→“New”创建一个新的“sld”文件。

 ②展开窗口左侧的“Windows XP Embedded Client (x86)”目录,并在“Components”目录上单击右键,选择“Add Component”。

 ③在右侧新建窗口的“Name”区内输入一个名称,例如“EnableAutoLayout_Settings”(图3)。

 ④右键单击左侧窗口中的“Registry Data”,选择“Add”→“Registry Data”,在弹出的“Add Component Registry Resources”对话框中分别填写以下值(图4):

Root: HKEY_LOCAL_MACHINE 
 Key name: SOFTWARE\Microsoft\ Windows\CurrentVersion\OptimalLayout 
 Value name: EnableAutoLayout 
 Type: REG_DWORD 
 Value: 0



 ⑤选择“Default”单选框,按“OK”回到主窗口,选择“Flie”→“Save”保存为“EnableAutoLayout.sld”,下面将该文件导入数据库。

 ⑥在开始菜单中选择“Component Database Manager”,在“Database”标签窗口中选择“Import”(图5)。在弹出对话框的“SLD file”一栏中找到刚刚保存的“EnableAutoLayout.sld”文件。

 ⑦最后选择“Import”开始导入组件(图6),导完后关闭所有对话框。

 3.创建“Target hardware device drivers”组件并导入

 ①进入目录:C:\Program Files\Windows Embedded\utilities\,执行“tap.exe”,很快便在同一目录中生成一个“devices.pmq”文件。

 ②在开始菜单中选择“Component Designer”,在弹出窗口中选择“Flie”→“Import”,导入“devices.pmq”文件(导入时间较长,图7)。

 ③导入完毕,选择窗口左侧的“Components”→“devices”,在右侧窗口的“Name”文本框中填写“My devices-hardware”(图8)。

 ④单击右侧窗口中“Prototype”栏旁的“Browse”按钮,在弹出窗口中选中“Software”→“Test&Development”→“Selector Prototype Component”(图9)。按“OK”回到主窗口,选择“Flie”→“Save”保存文件为“Mydevices.sld”。

 ⑤按第2步中的“⑥”和“⑦”两个步骤将“Mydevices.sld”导入到数据库。

 4.创建El Torito实时运行镜像(El Torito run-time image)

 ①在开始菜单中选择“Target Designer”,在弹出窗口中选择“File”→“New”,命名为“My XP Embedded”后按“OK”(图10)。

 ②“Target Designer”的窗口共分为4部分,上面左侧窗口中显示所有组件的列表,先前导入的“Enable AutoLayout_Settings”
和“My devices-hardware”组件就放在根目录下。中间窗口中显示新建的“My XP Embedded”系统的组件列表,此时还没有任何组件。
右侧窗口则用于显示“My XP Embedded”系统组件的属性和设置窗口。下面的大窗口显示制作信息,有“Tasks”、“Messages”和
“Debug”3个标签(图11)。

 ③双击左侧窗口中的“EnableAutoLayout”和“My devices-hardware”组件,将它们添加到中间的“My XP Embedded”窗口中。

 ④展开左侧窗口中的“Design Templates”,双击添加“Windows-based Terminal Professinal”组件,这个组件中包含了一个
最小化XP Embedded所必需的基本组件。

 ⑤展开左侧窗口中的“Software”→“System”→“Storage & Flie System”→“Infrastructure”→“Flie Systems”,
双击添加“FAT”组件。再展开左侧窗口中的“Software”→“System”→“Storage & Flie System”→“Applications”,
双击添加“FAT Format”组件。这一步是为实时运行镜像设置文件系统。

 ⑥展开左侧窗口中的“Software”→“System”→“System Services”→“Base”,双击添加“El Torito CD”、“EWF NTLDR”和
“Enhanced Write Filter”组件。然后展开中间窗口中的“Enhanced Write Filter”组件,选择“Settings”,在右侧窗口中将
“Start EWF Enabled”复选框中的对勾清除(图12)。

 ⑦展开左侧窗口中的“Software”→“System”→“User Interface”→“Shells”,双击添加“Explorer shell”组件。再展开
“Windows Shells”子目录,双击添加“User Interface Core”组件,并在其“Settings”窗口中选中“Show Run on Start Menu”
一项(图13)。

 ⑧展开左侧窗口中的“Software”→“System”→“Management”→“Applications”,双击添加“EWF Manager Console Application”
组件。再展开“Software”→“System”→“International”→“Infrastructure”,双击添加“Chinese - Simplified Language Support”。

 ⑨至此添加组件工作完成,下面检验工作成果,选择菜单“Configuration”→“Check Dependencies”开始从属性检查(时间比较长),
没有问题的话会报告“No errors or warnings”(图14)。下面就可以建立实时运行镜像了:选择“Configuration”→
“Build Target Image”,在弹出窗口中设置镜像存放位置,然后按
“Build”开始建立镜像(镜像大约需占用135MB硬盘空间,图15)。

 ⑩打开存放镜像的文件夹(默认为:D:\Windows Embedded Images\),将其下所有文件及目录拷贝至目标区。

 5.建立pre-FBA CD

 现在就可以用目标区中的文件创建光盘镜像了,用这个镜像刻录的CD被称作pre-FBA CD,它并不是我们最终需要的光盘,
所以建议用CD-RW盘片刻录。

 ①进入目录:C:\Program Files\Windows Embedded\utilities\,执行“Hd2iso.exe”,这是一个32位的命令行程序,有类似“Fdisk”的文字菜单(图16)。

 ②按“1”键选择“Create an ISO-9660/ELTORITO bootable image file.”进入ISO镜像创建菜单(图17)。

 ③按“2”键选择“Set physical drive.”,界面中会显示出电脑中所有的硬盘,编号从“0”开始。目标区位于第二块硬盘,所以该硬盘的编号应该是“1”,按“1”键选择“\\.\physicaldrive1”后退回至上一级菜单(图18)。

 ④按“3”键选择“Select partition(s)”进入选择分区菜单 。按“1”键选择“BOOTABLE, BIGDOS, 322MB [Not Selected]”,选择后中括号内的“Not Selected”变为“Selected”(图19),然后按“P”键返回上一级菜单。

 ⑤按“4”键选择“Set image file path”。即存放光盘镜像的位置,存放该镜像的分区至少要有700MB剩余空间,输入路径及文件名,如“G:\xpos.iso”(图20),按回车返回上一级菜单。

 ⑥按“5”键选择“Advanced Options”。进入高级设置界面(图21),其中必须要设置的项目只有一个:“Specify disk signature”。按“2”键进入该项设置,在这里需要输入一串数字,启动“Target Designeras”,展开“El Torito CD”组件,在其设置项中就有我们需要的那串数字(图22)。输入数字后回车退至上一级菜单,该值自动转化为16进制数字。按“P”键退出高级设置菜单。

 ⑦按“6”键选择“Create Image to package the ISO image”开始创建光盘镜像,此过程需要较长时间,创建完毕后按“Q”键退出。

 ⑧用Nero Burning ROM或其他刻录软件将制作好的镜像刻到CD-RW盘片上,至此“pre-FBA CD”制作完毕。由于Windows无法识别这个镜像中的文件格式,所以查看光盘时内容空空如也,但322MB的容量可以显示出来。

 6.引导硬盘上的El Torito Run-Time镜像

 当pre-FBA CD制作完毕后,就可通过它引导目标硬盘上的El Torito Run-Time镜像了。关机卸下系统硬盘(在BIOS中关闭系统硬盘亦可),在BIOS中将启动方式设置为从光盘启动,并将pre-FBA CD放入CD-ROM驱动器中。系统首先从pre-FBA CD启动,加载相关信息之后,便把“权力”转让给硬盘中的镜像继续完成引导,这个引导过程中系统会不断从pre-FBA CD中读取信息,完成XP Embedded的配置,这个过程被称为First Boot Agent(FBA),要经过两次重启才能完成。另外,Enhanced Write Filter(EWF)也在这个阶段开始工作并创建一个临时配置分区(图23)。

 进入XP Embedded界面后,需要确定EWF的状态,下面的操作均在XP Embedded系统内完成。

 ①确认所有EWF Volume的配置情况,在“开始”→“运行”中输入CMD并回车,调出命令提示符界面。然后键入“Ewfmgr.exe”,如果EWF Volume配置正确,则会显示EWF Volume的情况。

 ②确认C分区是否为受EWF保护的分区,在“命令提示符”界面中输入“Ewfmgr C:”,如果配置正确,则会显示Protected Volume的信息。

 ④选择“开始”→“程序”→“Windows 资源管理器”。查看你的系统中是否包括磁盘“El Torito CD”(实际上就是光驱中的pre-FBA CD,不过它在XP Embedded中被当作卷名为“El Torito CD”的磁盘)和目标区。

 ⑤如果上述检查都正常,那么你就可以对这个El Torito Run-Time镜像进行更多的定制了,如增加应用程序等,增加软件的方法和在WinXP中安装软件的方法一样,很简单吧?

 7.运行“Etprep.exe”

 制作最终的系统光盘前还需要执行程序“Etprep.exe”,这个工具执行如下任务:删除目标盘上在FBA过程中建立的EWF配置分区;交换“El Torito CD”磁盘和目标区的驱动器符号,这一步过后,就无法通过目标区中的“El Torito Run-Time”镜像启动了。

 ①调出“命令提示符”界面,进入“\Windows\system32 ”目录并运行如下命令:etprep /all。

 ②如果操作成功会显示如下文字:

Deleted EWFpartitions = 1. 
 Swapped ElTorito volume drive E: with Boot volume C: .


 ③在执行“Etprep.exe”后,系统会自动重启,由于目标区已经无法引导系统,所以重启后手动关闭计算机。如果没有自动重启,手动关闭机器即可。

 8.制作最终的XP Embedded Bootable CD

 现在可以制作最终的系统光盘了。这个过程与制作pre-FBA CD的过程一模一样,请按“5.”中所述步骤制作最终的光盘镜像。在刻录成CD前,最好使用虚拟PC软件测试一下这个镜像,但要注意只有VMware的虚拟PC软件能正确使用此镜像,微软的“Virtual PC”反而不行,是不是有点讽刺(图24)?进入系统后,查看系统属性,有“嵌入式”的字样,版本为“2002”(图25)。