生成Pre-FBA映像

简介:
在您完成运行时映像的设计任务,包括添加必要的组件到配置映像,以及测试镜像配置后,您可以部署运行镜像到您的目标设备上以继续进行生产。生产的部署需要检查部署环境,准备映像,以及部署映像到最终零售产品的设备上。
    在您配置和构建一个映像后,FBA将第一次引导运行操作系统。通过在目标系统上运行一个任务序列,FBA完成运行时的映像构建过程,如即插即用( PnP )设备检测,安装安全性以及DLL注册。您可以向FBA进程添加命令,并指定它们何时将运行。您还可以通过定义自定义的资源向FBA进程添加任务,自定义的资源被称为FBA命令,如RunOnce请求,应用程序快捷方式,以及用服务数据填充注册表。
本文目标:
  • 包括一个产品识别键(PID
  • 理解FBA进程
  • 创建自定义资源来自定义构建过程

运行时映像授权

    您必须为您的零售映像输入PID。否则,您创建的映像是一个评估映像,而且部署120天后评估期失效映像将停止工作。Windows Embedded Standard 2009产品激活不需要上网,只需在目标设计器中映像配置的Settings设置中的运行时映像授权(Run-time Image Licensing)部分输入一个运行时产品密钥就可以被激活。

FBA阶段和处理顺序

    目标设计器构建进程创建了原始系统映像,创建了必需的目录结构,并为每个组件复制文件到指定的目录。在构建进程中也创建了注册表配置单元并且保存这些单元在“\ Windows \ System32 \ Config”文件夹。这个原始的系统映像不能运行。在原始运行时印象第一次启动时,FBA运行来完成构建进程。FBA执行所有目标设计器脱机无法执行的任务,包括安装安全性,目录注册,即插即用设备检测,网络配置,DLL的注册,以及配置文件初始化。
    FBA流程是预先定义的,每个阶段按顺序执行并且通过有序值来控制各种命令的时间。FBA通用命令, FBA的DLL/COM注册,以及FBA OC管理器请求都有相关的顺序值。FBA从0开始 直到65,535 。阶段0到8,500为系统保留使用并且你不应该设定一个指令,运行在8,500 以下。阶段值是双字节,高字节表明FBA阶段,低字表明了在FBA阶段内一个顺序值。
    您可以在FBA 运行后目标设备上的“Windows\FBA”目录中查看FBA进程的日志文件(Fbalog.txt)。FBA执行时,如果您有一个附加的内核调试器,日志信息被写入到日志文件也转发到调试器。

自定义资源

    当您在组件设计器中创建一个组件时,可以添加自定义资源以增强组件的功能。然而,自定义资源也是FBA命令,因为FBA控制它们的执行。在第一次启动期间, FBA使用这些命令来填充注册表,建立应用程序的快捷方式,为最终组件指定替代,并执行配置构建期间不能被执行的行动,如组件对象模型(COM)注册。您可以使用目标设计器向配置中添加自定义资源。

FBA 动态链接库或COM注册

    任何需要注册一个COM InProc服务器的组件都需要这种资源。FBA使用Win32 ®应用程序编程接口( API )的功能,包括“LoadLibrary”, “DllRegisterServer”, “DllUnregisterServer”, 以及“ DllInstall”来注册和加载包含COM对象的DLLs。

组件分支

    这种资源是用来为最终的组件指定一个替换组件。一个终结组件是一个过期的组件并且被设为终结的组件。当终结组件被多个组件替换时,一个分支资源为每个替换组件被添加到这个终结组件。分支资源只在EOL组件中被使用。然而并非所有EOL组件需要替换,例如没有分支的情况。在其他情况下,只有一个分支,这意味着终结组件被一个新组件替换。

即插即用设备ID 

    该资源被用来向一个设备组件插入即插即用信息,即插即用设备驱动程序需要这种资源。已经在第4章提到的,不应该手动向组件添加即插即用资源,因为当您导入INF文件到组件设计器时,这些是自动创建的。

RunOnce请求

    在第一次启动运行时映像期间,第一次启动后,或在每次登录后,该资源被用来执行应用程序。此功能作为三个注册表项之一被添加到运行时映像:
· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. 
每次登录后Run注册表项将被处理和运行。如果标准的浏览器外壳程序存在,则资源管理器会运行它,否则,自定义外壳程序,命令外壳程序或任务管理器外壳程序将会运行它。如果FBA处理这个注册表项,FBA会在每次登录后运行,而不是在正常的第一次启动期间这样做。一般而言,这个注册表项是用来加载系统托盘应用它程序,启动可执行服务,隐藏自动启动应用程序,或隐藏后台进程。
· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.
FBA在PnP设备枚举和DLL注册处理完成后只处理RunOnce注册表项一次。处理结束后此注册表项的值从注册表中删除,这样下次启动不会再运行。通常情况下,当需要重新启动时使用此标志,如DLL或OCX注册。
· HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx.
第一次登陆后注册表项RunOnceEx只被浏览器外壳程序处理一次。处理结束后此注册表项的值从注册表中删除,这样下次不会再运行。如果浏览器外壳程序不存在,该项被忽略。通常情况下,此标志用于一个进程只运行一次,通常用于在使用FBA不能正常运行而要求该系统完全启动后才能运行的情况下。

服务数据

    定义Windows服务的组件需要该资源。

开始菜单快捷方式

    这种资源用来在开始菜单或桌面上创建快捷方式,如果这些是您映像的一部分。

FBA通用命令

    这是一个自定义的资源,如果有在运行时映像上FBA期间需要程序执行的组件则需要该资源。FBA 从Win32 API调用“CreateProcess”运行程序,并可选择传递命令行参数。

准备克隆

    准备克隆您的映像前,确认配置准确地反映了您目标设备的硬件,并且在您的目标设备上已经验证它的功能。然后,向您的配置添加系统克隆工具(System Cloning Tool)组件,它位于组件浏览器中“Software>System>System Services>Base”文件夹下。添加到配置后,您可以配置设置或保留默认设置。下一节会讲到克隆工具的设置。

小结

    本文介绍了在构建和部署您的生产映像之前您必须执行的任务。为使映像成为生产映像且不会在120天后失效,您需要输入一个PID密钥。您创建FBA所需的所有自定义资源来准备您的原始映像以发挥应有的作用。最后,如果计划大规模部署镜像,则需要添加“System Cloning Tool”到您的配置中。您完成最后的依赖关系检查,构建您的映像并保存您的配置文件。

本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/237652

相关文章
|
7月前
|
存储 Docker 容器
Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像(17G) 报错no space left on device
306 1
|
12月前
|
Linux Docker 容器
docker报 “no space left on device”(磁盘空间不足)问题解决方式
docker等命令报 “no space left on device”(磁盘空间不足)问题解决方式
1263 0
|
Unix
Linux-使用 Find 命令找到那些需要清理的文件
Linux-使用 Find 命令找到那些需要清理的文件
95 0
|
存储 Linux 数据安全/隐私保护
基于Linux服务器出现“No space left on device”错误的解决简单有效方案
基于Linux服务器出现“No space left on device”错误的解决简单有效方案
2689 0
基于Linux服务器出现“No space left on device”错误的解决简单有效方案
marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
83 0
|
Windows 容器
成功解决Windows无法启动服务NVIDIA Dispaly Container LS服务(位于本地计算机上),错误2:系统找不到指定的文件
成功解决Windows无法启动服务NVIDIA Dispaly Container LS服务(位于本地计算机上),错误2:系统找不到指定的文件
成功解决Windows无法启动服务NVIDIA Dispaly Container LS服务(位于本地计算机上),错误2:系统找不到指定的文件
|
数据中心 虚拟化 存储