Windows XP Embedded是微软针对X86体系定制的一款组件化的嵌入式操作系统。目前在工业自动化控制和嵌入式设备中使用相当广泛。
XPE操作系统的整体开发过程可以通过以下流程图清晰的描述出来:
![](http://leizhigang.blog.51cto.com/attachment/200912/200912031259825233453.jpg?x-oss-process=image/resize,w_1400/format,webp)
第一步:目标分析器(tap.exe及ta.exe):通过目标分析器,我们可以轻松的从目标机上提取出符合XPE开发工具有求格式的硬件信息。该信息以device.pmq文件形式存在,通过在目标机的XP Professional或者Win2000操作系统上运行tap.exe即可生成。
第二步:组件设计器(Component Database Manager):通常我们需要的大部分组件在XPE的开发工具中都可以找到,但是针对特定的组件,我们可能需要通过组件设计器来完成。例如,我们需要开发的目标机具有USB接口的PenMount触摸屏,那么这个组件将无法在XPE自带的一万多个组件中找到,这时,我们有两种选择:
- 一是可以通过组件设计器来开发符合XPE要求的Penmount驱动组件,这种方式使用于批量部署与生产;
- 二是先忽略这个驱动,在XPE发布到目标机后手动的安装到目标机上,这种方式实现比较简单;
第三步:组件数据库管理器(Component Database Manager):针对自行开发好的组件,我们要想在XPE中正常的使用,就需要借助组件数据库管理器来将做好的组件导入到组件数据库中。在XPE中,组件的管理是通过SQL Server和组件文件夹来管理的。当然,我们也可以通过组件数据库管理器来对已有的组件进行删除和更改。
第四步:目标设计器(Target Designer):通过目标设计器,我们可以将已生成的设备文件(device.pmq)封装成符合我们功能要求的XPE操作系统镜像,同时可以对操作系统的部署路径、注册表、EWF等进行设置。
第五步:XPE操作系统的发布:通过目标设计器生成的XPE操作系统镜像如何部署到目标机上,这部分内容是本文主要介绍的内容。
1.使用FAT或FAT32格式部署XPE操作系统
(1)在DOS环境下,将CF卡或IDE磁盘分区,格式化并激活主分区;
(2)通过DOS的format c: /s 命令,将存储器的主分区格式化成能够进入DOS的引导盘;
(3)拷贝XPE的bootprep.exe 到 C:\ 下,启动进入DOS,运行该程序创建引导区;
(4)将制作好的Windows XP Embeded镜像拷贝到 C:\ ,以该分区引导重新启动,即可进入FBA阶段;
(5)完成FBA后,系统自动重启,进入到XPE操作系统下;
(2)通过DOS的format c: /s 命令,将存储器的主分区格式化成能够进入DOS的引导盘;
(3)拷贝XPE的bootprep.exe 到 C:\ 下,启动进入DOS,运行该程序创建引导区;
(4)将制作好的Windows XP Embeded镜像拷贝到 C:\ ,以该分区引导重新启动,即可进入FBA阶段;
(5)完成FBA后,系统自动重启,进入到XPE操作系统下;
2.使用NTFS格式部署XPE操作系统
该模式仅限于IDE磁盘,CF卡由于被标示为可以动磁盘,使用NTFS构建可能会导致引导不成功:
(1)如果原磁盘分区是FAT格式,则必须删除磁盘分区,重新创建;
(2)通过Win2000\XP的磁盘管理工具或者PQ,创建磁盘分区,格式化目标分区为NTFS格式
(3)激活磁盘主分区;
(4)拷贝镜像文件到该磁盘分区下,以该分区引导重新启动,即可进入FBA阶段;
(5)完成FBA后,系统自动重启,进入到XPE操作系统下;
(2)通过Win2000\XP的磁盘管理工具或者PQ,创建磁盘分区,格式化目标分区为NTFS格式
(3)激活磁盘主分区;
(4)拷贝镜像文件到该磁盘分区下,以该分区引导重新启动,即可进入FBA阶段;
(5)完成FBA后,系统自动重启,进入到XPE操作系统下;
3.在普通IDE磁盘上部署XPE操作系统
如果我们需要在普通的IDE磁盘(IDE Flash 或者 IDE硬盘)上部署XPE操作系统,那么通过以上两种方式均可进行FAT格式或者NTFS格式的部署。
4.在CF卡或者FLASH存储器上部署XPE操作系统
由于CF卡或者Flash存储器大部分被标示为可移动磁盘,所以在使用NTFS文件格式部署时,可能会出现不能正常引导的情况,在这种情况下,我们通常使用FAT格式来部署XPE操作系统。即使用第1种方式的步骤进行即可成功部署。
如果我们需要在CF卡上部署NTFS格式的XPE操作系统,那么我们可以通过以下步骤来部署:
(1)将CF卡分区,格式化成带DOS命令启动的FAT格式(format c: /s),注意主分区应该是激活的;
(2)将bootprep.exe拷贝到CF卡的C盘,进入DOS运行该命令,提示两次Y后,关闭计算机;
(3)将CF卡放到读卡器中,通过Win2000或Win XP操作系统的convert命令进行转换,将FAT格式转换成NTFS格式;例如:convert c: /FS:NTFS /V
(4)将XPE镜像文件拷贝到CF卡中,引导进入FBA,OK;
(2)将bootprep.exe拷贝到CF卡的C盘,进入DOS运行该命令,提示两次Y后,关闭计算机;
(3)将CF卡放到读卡器中,通过Win2000或Win XP操作系统的convert命令进行转换,将FAT格式转换成NTFS格式;例如:convert c: /FS:NTFS /V
(4)将XPE镜像文件拷贝到CF卡中,引导进入FBA,OK;
或者我们也可以通过IDE磁盘部署NTFS格式的XPE操作系统,然后将发布好的XPE从IDE磁盘上Ghost出来,恢复到CF卡上也可实现。
5.将XPE操作系统部署在主分区磁盘(C盘)
XPE操作系统可以部署在目标机的任一一个磁盘分区上,我们可以通过目标设计器->工程->Settings设置项中的Target Device Settings设置来完成。如果我们需要将XPE部署在C盘上,那么如下图所示:
![](http://leizhigang.blog.51cto.com/attachment/200912/200912031259825245390.jpg?x-oss-process=image/resize,w_1400/format,webp)
按照以上设置编译生成的XPE镜像文件将被部署在目标机的主磁盘分区(C盘)。如果目标磁盘是IDE磁盘或者本地磁盘,则部署的方法可以按照第1或第2种方法中的步骤进行。如果目标磁盘是CF卡或者其他可移动磁盘,则部署的方法可以按照第4种方法中的步骤进行。
6.将XPE操作系统部署在非主分区磁盘(D、E、F....盘)
XPE操作系统可以部署在目标机的任一一个磁盘分区上,我们可以通过目标设计器->工程->Settings设置项中的Target Device Settings设置来完成。如果我们需要将XPE部署在D盘上,那么如下图所示:
![](http://leizhigang.blog.51cto.com/attachment/200912/200912031259825263718.jpg?x-oss-process=image/resize,w_1400/format,webp)
注意:引导分区(Boot drive)的设置仍然应该使用C盘,即C盘中应该具有其他可引导的操作系统,例如XP Professional或者Win2000。如果我们想正常的引导部署在D盘的XPE操作系统,那么我们需要打开C盘上的boot.ini文件,并且在文件的结尾添加以下内容:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /noexecute=optin /fastdetect
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /noexecute=optin /fastdetect
通过以上设置生成的XPE镜像文件将以DriveD目录存在,部署到目标机的步骤如下:
(1)将目标机的D盘格式化成FAT格式或者NTFS格式;
(2)将DriveD目录下的所有文件(注意不是DriveD目录)拷贝到目标机的D盘下;
(3)完成C盘上的boot.ini文件的修改;
(4)重新启动目标机,开始进行FBA,FBA完成后,重新启动,进入到XPE操作系统中;
(1)将目标机的D盘格式化成FAT格式或者NTFS格式;
(2)将DriveD目录下的所有文件(注意不是DriveD目录)拷贝到目标机的D盘下;
(3)完成C盘上的boot.ini文件的修改;
(4)重新启动目标机,开始进行FBA,FBA完成后,重新启动,进入到XPE操作系统中;
由于CF卡及其他可移动磁盘在NT系统下不能够划分多分区,即只能具有一个主磁盘分区(C盘),所以该方法不涉及CF卡及其它可移动磁盘的部署;
其他磁盘分区(E、F....)的部署方式同D盘,不同的是目标设计器->工程->Settings设置项中的Target Device Settings设置相应的进行改变。E盘的设置如下图:
![](http://leizhigang.blog.51cto.com/attachment/200912/200912031259825281046.jpg?x-oss-process=image/resize,w_1400/format,webp)
其他磁盘以此类推。
7.在U盘上部署XPE操作系统
8.在光盘上部署XPE操作系统及制作XPE启动光盘
本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/238249