使用ImageX获取WES7镜像完成定制及部署
扫描二维码
随时随地手机看文章
ImageX可以用来捕获WES7系统的镜像并将其创建为镜像文件(.wim格式),从而可以在离线状态下对WES7系统进行提取、部署、修改等操作。
可能之前您使用某些磁盘工具来做嵌入式产品的系统镜像备份、还原等。但事实证明,Windows Embedded开发工具包中的ImageX才是部署WES7系统的最佳工具,本文重点通过动手实例来演示ImageX在Windows Embedded产品开发过程中的用法。
实验环境:
建议您准备目标机和开发机两台实验设备,目标机上安装有定制的WES7系统,开发机上安装有Win7操作系统和WES开发环境。
实验步骤:
1. 首先确认一下目标机上的磁盘分区情况,本例中磁盘0是目标机的主硬盘,两个分区,C盘卷标为SYS,是主分区,约10GB;D盘卷标为DATA,约6.4GB,用于存放实验数据;磁盘1是从硬盘,只有一个分区即E盘,卷标为ImgTarget,约6GB,用于存放镜像文件。光驱为F盘,插入了IBW光盘。
2. 通过DiskPart查看当前磁盘分配情况。从IBW光盘启动目标机,在Install Windows界面点击Launch WinPE Command Prompt以进入WinPE环境,输入diskpart,在DISKPART>提示下输入list vol来查看当前设备上的磁盘分区情况。请注意,此时盘符分配情况发生了变化。一定要注意这点,通过对比卷标和磁盘大小,确定原来的D盘和E盘盘符互换了,而WinPE占用的盘符是X。
图1
3. 捕获WES7操作系统镜像。本例中,我们的目标机系统安装在C盘,现在要把它捕获为镜像文件(.wim格式),然后存放在D盘,即卷标为ImgTarget的分区上。使用命令exit退出diskpart,然后键入以下命令来捕获镜像:
Imagex /capture c: d:\ImgOfWES7_0216.wim “capture WES7 by ImageX” /verify
/capture表示捕获卷镜像到一个wim文件中,接着是目标卷的路径,然后是镜像名称的全路径,双引号里面是该镜像的名字,最后是启用文件资源确认。
4. 看到如下界面时,表示命令正确,ImageX开始为您的WES7工作了,百分比显示进度,还有估算的剩余时间。
图2
当看到”Successfully imaged …”时表示捕获成功。
备注:还有一个参数/compress,它表示可以将镜像文件压缩,以减小其体积,一共有maximun,fast,none三个值,分别表示最大压缩、最快压缩、不压缩。
5. /append参数可以将已有的镜像文件扩展,例如,您的WES7刚刚安装完毕,需要做一下备份,而在安装一些软件并进行更改后又需要做一个镜像,这种情况下可以将一类镜像文件集成到同一个镜像文件中。或者如果您的目标设备上有两个分区,也可以分别将两个分区捕获到同一个镜像文件中。我们在WinPE中键入以下命令:
Imagex /append e: d:\ImgOfWES7_0216.wim “capture DATA by ImageX” /verify
这表示将E盘捕获至之前创建的镜像文件中。
6. 使用/apply参数可以将WES7镜像应用到目标设备中。在保证捕获镜像时的设备和目标设备基本一致的前提下(这包括硬件配置和磁盘分区的一致),可以将捕获到的镜像部署到目标设备上,在WinPE中键入以下命令:
Imagex /apply d:\ImgOfWES7_0216.wim 1 c:
/apply参数后面是镜像文件的全路径,接着要跟上wim文件中的镜像序号,然后是目标卷的路径。
与/capture参数类似,如果命令正确解析,会显示百分比进度和估算的剩余时间,当出现”Successfully applied image.”时表示恢复镜像成功。
7. WIM文件中可以存放多个镜像文件,如果不确定要恢复哪个镜像,可以通过/info参数来查看一下其中的镜像信息。在WinPE中键入:
Imagex /info d:\ImgOfWES7_0216.wim
返回镜像文件的XML格式描述。
图3
Image Count处显示该文件中有两个镜像,找到镜像索引是1的区块,
8. 查看一下提取到的ImgOfWES7_0216.wim文件大小大约是877MB,假设要将它刻录在CD光盘上,那么可以用/split参数将其分成600MB大小的若干文件(.swm格式),以利于刻录。在WinPE中键入:
Imagex /split d:\ImgOfWES7_0216.wim d:\ImgOfWES7_0216.swm 600
/split参数后面跟原镜像全路径,接着是要目标全路径,注意用了swm格式,最后是期望的镜像大小,默认单位为MB。
命令提示成功完成后,我们可以看到原镜像文件已被分成了两个swm文件,且第二个往后的名字自动加了数字2。
9. 使用/dir参数可以列出镜像包含的所有文件和文件夹清单,如果要显示刚才镜像文件中的镜像1,因为内容太多屏幕会滚动很长时间,这时可以使用>d:\list.txt来将结果导入到目标文件中,方便用文本编辑器查看。
10. 参数/mount参数以只读方式将WIM文件加载到指定的文件夹,方便查看镜像内容。参数/moutrw是有了写的权限。下面尝试一下对其中一个镜像进行更改,在命令提示符中键入:
Imagex /mountrw e:\ImgOfWES7_0216.wim 2 e:\mount
将镜像文件中的第二个镜像,也就是我们对DATA盘做的镜像加载到E盘mount目录下,打开该目录,看到原来该盘中的数据。可以在该目录下新建一个记事本文档,输入一些字符并保存。然后在命令提示符中键入:
Imagex /unmount /commit e:\mount
/unmount表示将加载到mount文件夹的镜像卸载,/commit表示将所做的更改提交。然后结合/dir参数就可以看到效果,在命令提示符中键入:
Imagex /dir e:\ImgOfWES7_0216.wim 2
可以看到刚才新建的记事本文档已经进去了。应用/apply参数就可以把修改后的镜像提交到目标分区,很方便。
上面是一系列使用ImageX时的镜像操作方法,下面再扩展一下其用法:
1. 参数/export用于将镜像文件中一个标记的镜像导出到另一个WIM文件中。具体用法如:
Imagex /export d:\ImgOfWES7_0216.wim 2 d:\ImgNew.wim
指定好原镜像路径,其中对应的镜像编号和目标镜像路径,待命令成功执行后,就可以看到D盘出现了新的WIM文件,里面有刚才导出的镜像。[!--empirenews.page--]
2. 参数/delete用来移除包含多个卷镜像的WIM格式镜像文件中指定的卷镜像。可以尝试移除上例中的数据盘镜像。在WinPE中键入:
Imagex /delete d:\ImgOfWES7_0216.wim 2
命令成功执行后通过/info参数来观察,看到该镜像文件中只有一个镜像了。
3. Wimscript.ini是为了防止ImageX在获取镜像时遇到锁定文件或文件夹造成失败而设计的,通过它可以列出一些排除在ImageX捕获之外的文件和文件夹,它应当位于与ImageX同一目录中,ImageX的/capture参数可以自动加载它。以下是它的示例:
[ExclusionList] //被排除的文件和文件名字
"System Volume Information"
RECYCLER
[CompressionExclusionList] //不被压缩的文件或文件夹名称或者文件类型,可以使用通配符
*.mp3
*.zip