通过ICE轻松部署WES7镜像

作者:雷志刚

转自:http://lzg-ad.blog.sohu.com/156323256.html

注:该文转自Happymy,感谢他的技术提供和分享。

本文适合的软件版本:CTP,RC

 

如果大家看过前面一篇文章:通过IBW构建你的第一个WES7镜像,应该对Windows Embedded Standard 7有个初步的了解。如果我们要给1000台设备安装WES 7 可就不能用那篇IBW的文章方法进行安装了,因为你不想重复1000次同样的操作吧。通过这篇文章,大家能掌握ICE的使用(不是冰块……)和使用ICE编写一个无人应答文件来进行无人值守安装、集成驱动、定制一个WES 7镜像。
ICE的全称是Image Configuration Editor,一个类似AIK的工具。
ICE的界面和AIK的Windows System Image Manager(SIM)很像,但是操作上有很大的不同(包的名称和位置都不同。)先用一张截图来看一下ICE的界面:

好了,让我们开始ICE之旅。


先准备一下:
WES7 Toolkit 和 WES7 32Bit 或者 64Bit Runtime
准备好要集成的驱动程序(INF文件)
使用tap.exe生成pmq文件


一、安装Windows Embedded Standard 7 Toolkit
插入 WES7 Toolkit 的安装盘,执行光盘根目录的setup.exe,这里只是简要说明一下安装过程。
1. 选择自定义安装。
2. 选择不安装DistributionShares下的所有组件。如果我们选择安装DistributionShares,那么将意味着把WES7所有的功能包都安装到本地,这样我们可以通过ICE生成一张IBW的光盘。但是,通常我们构建出来的镜像只是一个XML文件格式的Anwser File,所以,为了节省空间,我们可以选择不安装DistributionShares。
如下图:

注意:
1. 建议在Vista和Win7中安装
2. 不会和AIK发生冲突。
3. 可以不安装DistributionShares这样可以节省磁盘空间,但是您必须要有runtime的光盘。
如果安装“AMDX64 Distribution Shares” 请准备好X64的runtime光盘,安装过程中会要求您插入X64的runtime光盘。


等安装完成之后。将WES7 Toolkit 和 32Bit\64Bit Runtime光盘中的"DS”文件夹拷贝本地的硬盘上。
如果你已经安装了Distribution Share,请跳过这一步。

 

二、初始化ICE
1. 从“开始”菜单->“所有程序”->“Windows Embedded Standard 7”->“Image Configuration Editor”启动ICE
2. 选择"File"->"select Distribution Share..."
3. 选择刚才拷贝过去的"DS”文件夹。
4. 如果你已经安装了Distribution Share,您可以在“Windows Embedded Standard Quebec”的安装目录中找到DS文件夹。默认是“C:\Program Files\Windows Embedded Standard Quebec\DS”。X64的Distribution Share的文件夹名称是“DS64”。

现在开始导入 PMQ文件:

导入之前要先建立应答文件"File"->"New Answer File"
1. 选择菜单“File”->“Import”->“Import PMQ”
导入过程可能需要一些时间,但是我们会发现,由于WES7采用了文件管理功能包的方式,而不是数据库的方式,所以导入PMQ的速度要比XPE下快很多。

2. log 部分带有警告标志的信息,表明该驱动没有在开发工具的包中,需要自己提取驱动然后集成。

小建议:
删除不用的驱动,可以减少镜像的体积,例如:如果不用声卡,删除声卡驱动的同时,同时删除支持声卡工作的系统组件。

 

三、开始集成驱动

注意:

1. 您可以仅仅集成需要的驱动,但是如果系统的包中没有一个或多个系统启动需要的驱动,那么您必须集成这些驱动,否则系统启动时蓝屏(大多数停机码是0X7B)。
2. 如果集成一个错误的驱动,则有可能造成一个硬件加载了错误的驱动,严重的话会造成系统蓝屏(大多数是停机码是0X7E),如下图:

“MyDriver”是我存放要集成驱动的文件夹(已经将驱动文件提取出来)。里面有很多子文件夹,每个子文件夹都存在一个INF文件(一个设备的驱动)。
注意:这里介绍集成驱动的方法,只适合这种INF文件形式的驱动(必须存在INF文件),如果您的驱动程序是exe程序来进行安装(一个安装程序),请不要用这种方法集成驱动。

1. 选择菜单Tool->Explore Distribution Share,会打开一个文件夹。将“MyDriver”文件夹复制到“Out-of-Box Drivers”内。关闭刚才打开的文件夹。

2. 选择“MyDriver”右键选择菜单的第一项(其他子项目不用再选)。
提示:
第一项:安装程序在“WinPE”阶段(第一次启动的时候,加载setup的软件界面之前)”加载集成的驱动。
第二项:“在offiine serviceing”(已经加载了setup的软件界面,并且进行第一次重启后)阶段加载集成的驱动。
第三项:在“audit system”(使用sysprep封装镜像)阶段加载集成的驱动。

注意:
如果您的驱动包括系统必须加载能完成安装的驱动,则在该驱动的项目上必须选择第一项。(例如:硬盘控制器的驱动,必须选择“WinPE阶段”加载驱动,否则会因为找不到硬盘导致安装失败。)如果你不确定集成的驱动是否有系统必须加载能完成安装的驱动,则选择第一项。如果您的使用sysprep部署系统镜像,请选择第三项。

引用:
如何提取驱动的INF文件和相关的文件?
如果你的驱动是exe或者msi这类的安装程序,你就需要提取驱动文件。(当然你也可以部署系统镜像时执行这些驱动的安装程序进行安装。)
在这里简单写一下:
一共有2类方法。
1. 在嵌入式设备上安装一个Windows7或者Vista(当然你也可以安装一个WES 2010,不过你要确保已经存在系统启动必须的驱动),之后使用驱动精灵一类的程序进行备份驱动。这样可以达到提取驱动文件的目的。
2. 把驱动的安装程序解包(exe、msi等)
使用Universal Extractor 这类的软件对驱动的安装程序进行解包,得到驱动文件。
注意:我推荐使用第一种方法,虽然他比较“麻烦”,但是不容易出错。适合没有经验的人使用。
无论你是用哪种方法,一定要确认提取的INF文件是可以使用的,相关的文件都提取全了(尤其是第二种方法),您可能要修改INF文件才能使驱动正常安装。(例如:一个驱动的INF文件省略了Install节的copyfile,它使用安装程序来完成拷贝文件的操作,对于这样的INF,您就需要手动修改inf文件。)

四、添加系统组件
还记得Target Designer么?Target Designer在WES 7中已经消失了,哈哈。ICE可以被看成Target Designer。现在我们要开始构建一个系统镜像了。
选择菜单“Validate”->“Validate Only”(进行关联性检查)。你会看到一条错误信息:

双击这个错误信息。出现下面这个窗口:
exactly表示只能选择一个,least one表示至少选一个(可选多个)。
上面粗体的内容表示那个组件提出的请求。
粗体显示的组件表明,该组件已经被添加。
按照图进行选择。
正确完成后错误信息会出现一条删除线,表示错误已经解决了。

引用:

这里解释一下:

  • Windows Boot Environment(标准的bootmgr)
  • Embedded Windows Boot Environment(一个embedded定制的引导环境)
  • Unbaranded Startup Screens(选择后系统的登录界面没有Windows Embedded Standard的标志)
  • Windows Embedded  Startup Screens(选择后系统的登录界面Windows Embedded Standard的标志)
  • Command Prompt Shell with Custom Shell Support(登录后CMD作为shell启动,CMD的界面关闭后系统不会关机)
  • Windows Explorer Shell(登陆后启动标准的shell,就是大家平常看到的桌面)
  • 剩下的是语言包,这里我们使用简体中文。

选择菜单“Validate”->“Add Required Packages”(自动添加需要的组件,这样可以获得最小的镜像)
如果选择菜单“Validate”->“Add Required And Optional Packages”会添加一些额外的组件,会提高软件兼容性,但是会增大体积。
建议用“Add Required Packages”然后根据自己需要添加组件。

进行关联性检查有可能还会出现下图的情况,all代表必须都选择,下面的Optional dependencies,表示可选的组件。

另外还有一类错误信息:

这类错误信息是要求你修改包(组建的)属性。
双击,错误信息会自动定位到要修改的属性上,如果您发现无法修改,请修改“Fliter view ”选择适合的阶段(与Pass对应。)

下面介绍一下ICE的界面。

①DS目录
  $OEM$ Folder :OEM 文件夹,该文件夹的内容会被拷贝到系统system32中(具体参见帮助文档)。

  • Out-of Box Drivers:用户集成驱动的文件夹
  • Packages\Drives:系统自带的驱动
  • Packages\FeaturesPack: 系统组件包
  • Packages\languagePack: 语言包

②配置windows 安装部分的应答设置(可以进行一些自定义的配置,如:OEM信息、运行程序(能实现安装驱动))

 

③应答文件的信息(里面的组件名同①、②,自己添加的驱动不会增加组件,只会自动设置好驱动文件的位置)

④属性的设置窗口
一共分两页:settings和properties。

  • Settings是一个包的私有属性。
  • Properties是一个包的共有属性。例如:是否启动或禁用这个包。

注意画红框的部分,windows的安装有7个阶段,一个包(组件)的属性可能在不同阶段分别有设置,pass:P1代表第一阶段……一直到pass:P7(这些阶段随着部署的方式不同不会都被执行)。 
Fliter view 设置成by setting 可以显示(只能看,不能改。如果修改请设置Fliter view 到对应的阶段)这个包(组件)的全部设置。
但是如果其中一个属性在不同阶段都有,只显示一个,设置后会变成粗体,另外PASS后面会有*号标明。
您可以显示一组包(组件)的全部属性,这样方便查找。


⑤日志信息(如果存在错误信息保存应答文件的时候会提示警告)

下面讲一下基础操作:
1 添加一个或一组包(组件)
选中要添加的包(组件),鼠标右键“Add to Answer File”。
2 删除一个或一组包(组件)
选中要删除的包(组件),鼠标右键“Delete”键,之后确认删除。
3 禁用和启用一个包(组件)
将Properties页中的setting项中的Disabled设置成Ture(禁用)或Fales(启用)
禁用后包(组件)的图标会变成灰色。

 

五、配置无人值守安装
如果您要部署大量的镜像,您不想每次都选择接受许可协议、选择安装到那个分区中……
好了,开始配置无人值守安装。

1 设置接受许可协议
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Setup_X86”中的“UserData”展开,把“AceptEULA”设置成ture。(P1)

2 默认语言设置(简体中文)
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\International-Core_X86”展开,把“UILanguage”设置成zh-CN。(P4、P7)
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\International-Core-WinPE_X86”展开,把“UILanguage”设置成zh-CN。(P1)
注意:语言的设置要和使用的语言包相符。值与LanguagePackage分支下的语言包缩写名称相符,注意大小写。

3 设置产品密钥
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Setup_X86”中的“UserData\ProductKEY”展开,把“Key”设置成您购买的产品密钥。(P1)

注意:CTP版本已经内置了产品密钥,本项设置请跳过。
4 安装分区设置
4.1配置自动对磁盘进行分区
4.1.1
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Setup_X86\DiskConfiguration”设置WillShowUI为OnError (表示如果出错则显示UI界面,进行手动分区)
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Setup_X86”展开,选中“DiskConfiguration”,按鼠标右键弹出的菜单选“Insert New Disk”
展开新建的“Disk”,设置Disk ID为0 (表示第一个硬盘)

设置WillWipeDisk为true (表示删除该硬盘的所有分区)

4.2.2
选中“CreatePartitions”,按鼠标右键弹出的菜单选“Insert New Partition”。
展开新建的“CreatePartition”,将“Order”设置成1(表示第一个分区)。
将“Trpe”设置成Primary(表示主分区) 。
将“Size”空着。
将“Extend”设置成Ture(表示用所有空间)。
如果要建立多个分区请重复操作4.2.2
如果指定分区容量请设置“Size”单位是MB,并将“Extend”设置成False

4.2设置将镜像安装到那个分区
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Setup_X86”中的“ImageInstall”展开,把“InstallToAvailablePartition”设置成False。(P1)

(如果设置成True表示安装到第一个可用的分区!,请跳过下面InstallTo的设置!)
将InstallTo展开。将Partition设置成1,DiskID设置成0(表示安装到第一个硬盘的第一个分区。)

5 设置跳过OOBE中的相关设置(欢迎、建立账户……)和进行自动登录。
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Shell-Setup_X86”中的“OOBE”展开,把“NetworkLocation”设置成Home。(P7)
把“SkipUserOOBE”设置成True。(P7)
把“SkipMachineOOBE”设置成True。(P7)
把“HideWirelessSetupInOOBE”设置成True。(P7)
把“ProtectYourPC”设置成1。(P7)
把“HideEULAPage”设置成True。(P7)
将“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Shell-Setup_X86”中的“AutoLogin”展开,把“Username”设置成Administrator。(P4、P5、P7)

说明一下:
如果您没有建立用户账户,那么必须设置AutoLogin,这样会启用Administrator账户。(默认该账户是禁用的,密码是空。)要建立账户可以在“Pruduct\Opearating System\Foundation Core\EmbeddedEdition\Shell-Setup_X86”中的“UserAccounts”中设置。

展开UserAccounts(用户帐户),右击LocalAccounts(本地帐户)并且选择Insert NewLocalAccount(插入新的帐户)。

   展开LocalAccount(本地账户)进行以下属性设置:

      1.Name = MyUser

      2.DisplayName =MyUser

      3.Description =User

      4.Password ->Value = password

      5.Group = Users

        展开AdministratorPassword(管理员密码)进行以下属性设置:

      1.Value = password

 

六、生成IBW Disk
1. 先保存一下应答文件

  • 选择菜单“Tools”->“Media Creation”-> “Create IBW Disk From Answerfile”,弹出的窗口中,“Choose Answerfile”会自动选择当前的应答文件。
  • “Select the target folder for the image”选择一个空的文件夹。
  • 点OK开始生成。
  • 选择好要生成的目录即可, 这里假设目标路径为e:\test\

    4.2 打包生成的目录文件成iso格式的镜像文件

    打开「开始」菜单\程序\Windows Embedded Standard 7\Windows PE Tools Command Prompt输入命令:
    cd ..\AMD64
    oscdimg.exe -m -o -n  -lwes7_X64  -be:\test\BOOT\ETFSBOOT.COM e:\test e:\test.iso

注意:这个生成镜像和WES 2009用目标设计器 build出来的镜像有很大差别。IBW相当于一个Windows的安装源,没有FBA的过程。不能像原来那样部署。你可以通过光盘、U盘、PXE部署这个镜像,但是请记住这是个“windows”的安装源。

2. 简单写一下这个镜像的部署方式
A 光盘部署
将runtime的镜像备份,删除ISO文件里面的所有文件,再将镜像拷贝进去,保存ISO。从光盘启动即可。
B  USB磁盘部署(移动硬盘、U盘)
格式化USB磁盘,拷贝生成的镜像的所有文件到USB磁盘中,使用UltraISO写入MBR和Vista的引导记录。之后从USB磁盘启动
C 网络部署
这里就不写了,建议参考AIK的帮助文档的PE、PXE、网络部署等部分。

建议:启动生成镜像后完成安装操作(第一次重启前,也就是从硬盘启动之前(也就是安装程序完成了拷贝和释放文件的操作))使用ImageX抓取硬盘的镜像。之后克隆到其他机器上。这样可以节省大量时间。

posted @ 2018-06-13 09:58  傻蛋儿  阅读(1067)  评论(0编辑  收藏  举报