lzg_ad:使用System Clone封装和克隆操作系统

简介:
在实际生产环境中,我们需要大规模的部署和生产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中克隆过程的概述:
克隆过程由下面的两个阶段组成:
  1. 重新封装阶段:克隆过程在主设备上执行重新封装阶段。通常,重新封装阶段将在克隆阶段之前的重新启动前发生。重新封装阶段完成后,设备必须在随后的重新启动发生前立即关掉。重新封装阶段完成后,在磁盘上的映像就可以克隆了。
  2. 克隆阶段:克隆阶段在重新封装阶段后映像第一次启动时自动开始。克隆的设备从主设备在重新封装阶段后被停止的地方继续。在克隆阶段期间,来自主设备的计算机上所有出现 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
相关文章
|
4月前
|
JavaScript Linux Windows
【应用服务 App Service】NodeJS +Egg 发布到App Service时遇见 [ERR_SYSTEM_ERROR]: A system error occurred:uv_os_get_passwd returned ENOENT(no such file or directory)
【应用服务 App Service】NodeJS +Egg 发布到App Service时遇见 [ERR_SYSTEM_ERROR]: A system error occurred:uv_os_get_passwd returned ENOENT(no such file or directory)
106 0
|
Linux Shell C语言
|
编解码 网络协议 Windows
封装操作系统(保姆教程)(下)
封装操作系统(保姆教程)
171 0
|
安全 数据安全/隐私保护 Windows
封装操作系统(保姆教程)(上)
封装操作系统(保姆教程)
242 0
|
数据管理 大数据 Shell
操作系统(Operator System)简介
操作系统的简单了解,为接下来学习进程管理,内存管理等操作系统方面的知识做铺垫!
操作系统(Operator System)简介
|
缓存 网络协议 Linux
System Performance 读书笔记 - 操作系统(1)
System Performance 读书笔记 - 操作系统(1)
System Performance 读书笔记 - 操作系统(1)
|
Web App开发 安全 Ubuntu
Linux必知词汇:操作系统(Operating system,OS)
Linux必知词汇:操作系统(Operating system,OS)
647 0
|
Windows 数据安全/隐私保护 移动开发
Windows 10 操作系统下利用USB无限网卡创建虚拟WirelessNetwork 类的封装【二】
根据前面的一个内容对功能和合理性上做了扩充和优化。 代码如下: using System; using System.Collections.
821 0
|
数据安全/隐私保护 Windows C#
Windows 10 操作系统下利用USB无限网卡创建虚拟WirelessNetwork 类的封装
最近因为公司的业务要求,在没有网络的情况下,没有路由器支持的情况下,需要组建一个小局域网,可以同时支持多个终端的相互之间的通信,这里的解决方案如下。
804 0