Windows Embedded Standard的U盘启动

作者:马宁

原文:https://tech.it168.com/a2008/1223/260/000000260962.shtml 

     现在大多数主板都支持USB启动,而U盘便于携带的特点,能够让你打造一个属于你自己的PC环境,使用自己熟悉的界面。现在U盘启动的系统已经非常时髦了,比如Ubuntu Linux。而大家有没有想过将Windows XP放到U盘里?
     Windows XP Home或Pro放在U盘里的确有点难度,但是Windows XP Embedded(也就是现在的Windows Embedded Standard)放在U盘里却不是件太难的事情,我们可以根据自己的需要定制出一个比较小的操作系统镜像(最小可以达到20M左右,一般在300M左右)。
  Windows Embedded Standard开发的文章请参考:
  https://www.cnblogs.com/aawolf/archive/2008/06/25/1229698.html
  准备启动环境
  开发工具自然就是Windows Embedded Studio,具体使用方法请参考《Windows Embedded Standard开发初体验》。除了开发工具外,我们还需要准备存储介质——U盘,从市面上随便买一个就可以,建议容量是1GB,小一点也没关系,最好是USB 2.0的,否则在拷贝文件时会比较慢。
  接下来就是U盘的准备步骤:
  1.使用usboot设置U盘的工作模式
  我们使用的usboot166是第三方工具,可以在雷志刚的博客上找到:
  https://cid-ea7144b242d01ad2.skydrive.live.com/browse.aspx/Public/%e7%ac%ac%e4%b8%89%e6%96%b9%e5%b7%a5%e5%85%b7
  将U盘插到计算机上之后,我们打开USBoot的界面,就可以看到磁盘的列表。

WindowsEmbeddedStandard的U盘启动

  第一个是计算机的硬盘,第二个才是我们要格式化的U盘,所以千万别弄错。
  选择了要格式化的U盘之后,还要选择工作模式,点击界面下方的链接处。

WindowsEmbeddedStandard的U盘启动

  我选择使用的是HDD模式,据说FDD模式也可以,没试过。有一款Thin Client竟然不支持USB-HDD模式启动,抓狂……
  接下来的工作,就是按照提示,等待U盘格式化完成,再写入引导文件。
  其实这一步主要是改变U盘的工作模式,因为我们不使用DOS启动,所以启动文件还要通过下一步来做。
  2.使用ufdprep写入启动信息
  假设Windows Embedded Standard的开发工具安装在C盘,我们可以在下面的目录中找到一个名叫UFDPrep的程序:C:\Program Files\Windows Embedded\utilities

  我们在命令行中执行这个程序:
  如果不知道该怎么使用,可以用ufdprep /?来查询参数。
  如果我们想格式化U盘,则需要使用下面的命令行:
  Ufdprep /size=1000 /ntfs /y g:
  /size,表示使用U盘上多大的空间,不能超过磁盘的最大存储空间;/ntfs,是磁盘格式;/y,表示安全提示时选择y;g:是U盘的盘符。
  可能需要等待一段时间,如果看到格式化成功的提示,则表示该操作完成。
  我们还可以使用下面命令行来验证ufdprep是否成功:
  Ufdprep /verify g:
  制作最小化系统
  接下来我们就需要将操作系统拷贝到U盘上去了。我们要做的不是DOS启动盘,所以刚才将U盘格式化为NTFS格式的了。所以接下来,我们要做一个Windows Embedded Standard的操作系统。因为不知道目标设备的驱动,所以,比较稳妥的方式就是构建一个命令行的Windows Embedded Standard平台,将一些常用工具拷贝进去,个人感觉,比DOS启动盘好用。
  构建步骤,与步骤三类似,所以详情参考“制作XPe镜像”:
  1.  打开Target Designer,创建一个新的Configuration,取名MiniOS。
  2.  在组件列表中,选择Software-> Test&Development 下的MinLogon组件,下图红圈所示位置:

WindowsEmbeddedStandard的U盘启动

  3.选择USB boot 2.0组件(见“制作XPe镜像”一节);
  4. 选择Configuration菜单中的Dependency Check,或者F5,进行依赖检查;
  5. 选择Configuration菜单中的Build Target Image,或者F7,编译操作系统。
  6.编译出来的操作系统大约20M左右,只提供命令行界面。我们将C:\Windows Embedded Images文件夹下的所有文件拷贝到U盘的根目录中。
  7. 我们在U盘的根目录中建一个Tools文件夹,将一些常用工具拷贝进去,比如:
System32目录下的Diskpart、edit等命令
  因为要收集硬件信息,所以要拷贝C:\Program Files\Windows Embedded\utilities下的TAP程序到Tools目录中。大家注意,在这里我们使用的是32位版本的TAP,而不是16位版本的TA,这也说明我们运行的环境是32位操作系统环境。
  8. 将U盘从计算机上安全删除;插到目标设备的USB端口上;
  9. 重新启动目标设备,在BIOS中选择USB-HDD启动;
  10. 进入FBA过程;
  11. FBA过程完成后,会重新启动,然后显示XP的启动画面,进入命令行界面;
  12.运行Tools目录中的TAP命令,该命令会收集硬件信息,在Tools目录下产生device.PMQ文件。

  到这一步,我们的工作就基本完成了,这个命令行的Windows Embedded Standard系统一定要好好保存。自从软盘退出历史舞台后,这是我用过的最适合随身携带的工具盘。宝贝啊。

  制作XPe镜像

  1. 导入PMQ文件
  接下来的工作就比较正常了,将U盘插回到计算机上,将U盘里的device.PMQ文件拷贝到计算机上来。如果之前你没有做完FBA的Mini操作系统,建议你也拷一份出来,毕竟20多M的小东西还是很好用的。
  我们打开Windows Embedded Studio中的Component Designer将PMQ文件转换为组件文件(.sld文件)。Target Designer会根据硬件信息组件(sld文件)判断将哪些驱动程序加入到操作系统镜像中来。
  选择Component Designer的File菜单里的Import选项,会让你打开PMQ文件,然后打开下面的对话框:

WindowsEmbeddedStandard的U盘启动

  点击Start开始导入过程,一般来说,会比较慢,需要几分钟的时间。导入完成后,会生成一个sld文件,将其保存到我们制定的目录下即可。

  2. 导入组件数据库
  接下来,我们要将生成的组件sld文件导入到组件数据库中。在这一步前,请确认所有的Target Designer和Component Designer都已经被关闭。
  然后打开Component Database Manager ,界面如下图所示:

WindowsEmbeddedStandard的U盘启动

  为了导入组件,我们点击Import按钮,打开下面的界面:

WindowsEmbeddedStandard的U盘启动

  点击SLD file文本框后的按钮,上图红圈所示,选择刚才保存的sld文件,然后点击Import按钮。Component Database Manager会提示导入是否成功。

  3.生成WES镜像
  导入sld文件成功之后,我们就可以重新打开Target Designer,来编译我们的操作系统Image文件。
  首先需要新建一个Configuration文件,进入Target Designer主界面。
  我们会看到刚才被导入的组件,会默认出现在组件列表的根目录中,我们双击,将该组件加入我们的操作系统中。
接下来,我们添加功能组件:
  1. Runtime Quick Start Helper Macro,位于Software -> Test & Development目录下

WindowsEmbeddedStandard的U盘启动

  2. USB boot 2.0组件和User Account组件,位于Embedded Enabling Features目录下,其中USB boot 2.0是为了支持USB启动的组件,而User Account组件是默认的登录用户。

WindowsEmbeddedStandard的U盘启动

  3. 设置User Account组件

WindowsEmbeddedStandard的U盘启动

  中间部分是我们已经添加到操作系统中的组件,我们打开User Account组件,选择Settings,在IDE的右侧会显示属性窗口,设置帐号的用户名和密码:

WindowsEmbeddedStandard的U盘启动

  4. 依赖检查;
  5. 编译目标操作系统。
  6. 将编译好的Image文件,拷贝到我们的U盘上。
  7.经过FBA过程后,重启动,我们就可以进入Windows Embedded Standard的界面了。

  参考资料
  https://blogs.msdn.com/ningling/archive/2007/06/20/xpe-usb-2-0.aspx
  https://lzg-ad.blog.sohu.com/77528224.html