在实际生产环境中,我们需要大规模的部署和生产XPE操作系统映像,对于每一个设备上的XPE镜像,可能要求准备一个具有唯一标识符的最终操作系统映像。要为生产部署配置运行时映像,则需要添加 System Cloning (系统克隆)组件, 如图下图所示:
系统克隆过程保证了部署的每个运行时映像都有唯一的安全 ID (SID) 和计算机名。System Cloning Tool (系统克隆工具)组件重置 FBA 阶段,因而当运行时映像第一次启动时,一个唯一的 SID 和计算机名被分配给该系统。
本文的主要内容:
- 描述重新封装和克隆过程。
- 描述它们的目的。
- 为生产部署包装 OS 映像。
克隆过程
首先我们需要放下我们原来思维中的克隆概念,XPE的克隆过程是从 Target Designer (目标设计器)中为预期设备的硬件生成运行时映像就开始了。不同设备之间较小的硬件差异,比如写入 ROM 的 OEM 保留区的序列号,或不同的 Media Access Control (媒介访问控制)地址,是可以容忍的,因为它们要么被硬编码在固件中,或者这些差异太小而不会影响 FBA 阶段的长度太多。但是主要的硬件变化,比如不同的芯片集或具有不同即插即用标识符的以太网卡,使用System Clone功能就是不可取的了,因为它们会添加多个设备驱动程序。为不同硬件添加多个设备驱动程序是不推荐的。这会延长 FBA 阶段的长度,且增加运行时映像的大小,这与XPE构建最小系统尺寸的目标是反其道而行的。下图显示了XPE中克隆过程的概述:
克隆过程由下面的两个阶段组成:
- 重新封装阶段:克隆过程在主设备上执行重新封装阶段。通常,重新封装阶段将在克隆阶段之前的重新启动前发生。重新封装阶段完成后,设备必须在随后的重新启动发生前立即关掉。重新封装阶段完成后,在磁盘上的映像就可以克隆了。
- 克隆阶段:克隆阶段在重新封装阶段后映像第一次启动时自动开始。克隆的设备从主设备在重新封装阶段后被停止的地方继续。在克隆阶段期间,来自主设备的计算机上所有出现 SID的 位置被替换成一个唯一的计算机 SID。
重新封装
重新封装阶段被用来为克隆重置运行库映像。在您能够部署运行时映像到多个系统之前,您必须在设备上运行 FBA 一次来配置运行时映像。这就成为被克隆的主映像。通过重新封装该运行时映像,FBA 的一个子集在把被克隆的映像部署到多个系统上时运行。该子集标识新的设备并重置计算机 SID。
运行时映像通常只在 FBA 阶段已经完成,并且对运行时映像的任何修改已经执行之后,才被重新封装。明确地说,运行时映像在 FBA 调用 cmiResealPhase 函数时被重新封装。当重新封装发生时,您可以设置阶段;阶段 0 和 12,000 是支持的。下图显示了 FBA 阶段:
如果阶段被设置得太早,它可能干扰其它 FBA 操作且产生不可预期的结果,比如运行时映像不工作。
如果您设置 cmiResealPhase 属性为 0,则只有克隆工具被复制到运行时映像,且克隆阶段在 FBA 的最后不会自动发生。通过延迟重新封装阶段,您可以对您的运行时映像在 FBA 之后做额外的更新 。您可以安装应用程序,或对您的运行时映像做其它改变,例如安装驱动,设置注册表等...如果 cmiResealPhase 属性被设置为 0,您必须手工使用 Fbreseal.exe 工具来开始重新封装阶段。您可以在运行时映像的 %Windir%\System32 目录中找到该工具。当重新封装阶段结束时,将显示一条消息。选择 Shutdown (关机)以关闭系统或 Reboot (重新启动)以重新启动它。
为克隆配置和创建运行时映像
要为克隆配置和创建运行时映像,您必须添加 System Cloning Tool (系统克隆工具)组件到配置中。通过展开 System Cloning Tool (系统克隆工具),点击 Settings (设置),然后在详细信息窗格中点击 Advanced (高级),可以配置高级设置属性。Advanced Component Properties (高级组件属性)窗口 打开。在 cmiResealPhase 框中,键入在哪个阶段期间重新封装发生。如上所述,只有阶段 0 和 12,000 是支持的。检测依赖项并生成映像。映像生成后,把它复制到目标设备上。
为克隆准备一个主运行时映像
您创建主运行时映像后,把主运行时映像复制到您的设备。启动设备并让 FBA 阶段运行。FBA 阶段完成后,目标就可以部署了。
总结
开发 Windows Embedded Standard 2009 操作系统映像的目标最终是要交付一个产品给客户。完成开发过程并校验硬件和软件正确后,就是时候把操作系统推出实验室并提供给客户了。为生产部署准备一个映像要求在同样的机器上安装您新开发的操作系统,并确保当客户收到它们后,它们将是开箱即用的。在联网的环境中,您应当给每个设备提供一个唯一的 SID 给客户。要这样做,您需要添加 System Cloning Tool (系统克隆工具)到配置并经历重新封装和克隆的过程来为大规模部署创建映像.
本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/237886