XImage 和 WIM 映像格式

基于文件的映像格式
在 讲述 XImage 之前,我要先介绍一下它所使用的映像格式:Microsoft Windows Imaging Format (WIM) 映像格式。WIM 映像格式并非现在相当常见的基于扇区的映像格式,它是基于文件的。与其他格式相比,通过使用基于文件的映像格式,WIM 具有以下益处:
WIM 映像格式是硬件不可知的,这意味着您只需要一个映像来寻址许多不同的硬件配置。
WIM 映像格式还允许您在一个实际文件中存储多个映像。例如,Microsoft 可在一个 WIM 映像文件中附带多个 SKU。您可以在单个映像文件中存储具有或不具有核心应用程序的映像。而且,您可以将其中一个映像标记为可引导映像,从而允许您从包含在 WIM 文件中的磁盘映像来启动计算机。
WIM 映像格式还启用了压缩和单一实例,从而可大大减小映像文件的大小。单一实例是一种允许您用一个文件副本的空间来存储多个文件副本的技术。例如,如果映像 1、2 和 3 均包含文件 A,则单一实例将存储文件 A 的单个副本,并将映像 1、2 和 3 指向该副本。
WIM 映像格式允许您离线维护映像。您可以添加或删除某些操作系统组件、补丁以及驱动程序,而无需创建一个新的映像。例如,现在对于 Microsoft Windows XP 来说,您要花费几个小时来更新一个映像,而 Windows Vista 只需要几分钟的时间即可。例如,要将某个补丁添加到 Windows XP 映像,您必须引导主映像,添加该补丁,然后再次准备映像。对于 Windows Vista,您可离线维护映像。
与要求您将磁盘映像部署到其容量大于或等于源磁盘容量的分区的、基于扇区的映像格式不同,WIM 映像格式允许您在任意大小的分区上安装磁盘映像。
Windows Vista 提供一个用于名为 WIMGAPI 的 WIM 映像格式的 API,开发人员可以使用它来处理 WIM 映像文件。
WIM 映像格式允许非破坏性的部署。这意味着您可以将数据保留在您应用映像的卷上,因为该映像的应用程序并不清除磁盘的现有内容。

XImage 功能

XImage 本身是一个相当简单的程序,这是我非常喜欢它的原因之一。它是一个简单的命令行驱动器实用程序,可以从命令行提示符或 Microsoft Windows Preinstallation Environment (Windows PE) 运行。换句话说,您与 XImage 交互的方式和与 Xcopy 进行交互的方式是相同的。我希望它是命令行实用程序这一事实不会令您失望。我更愿意我的磁盘映像工具拥有命令行接口,因为它们可以大大简化对工具使用的脚 本编写。而 Windows Vista 的批处理脚本编写功能是如此强大,以至于没有利用 XImage 脚本编写不能完成的任务。
XImage 的核心功能允许您将卷捕获到 WIM 文件中,以及将 WIM 文件应用于卷。例如,用于捕获映像的命令正是 xp_w_picpath /capture C: p_w_picpath.wim "Name"。将映像应用于卷的命令是 xp_w_picpath /apply p_w_picpath.wim 1,其中 1 告诉 XImage 应用文件 p_w_picpath.wim 中索引号为 1 的映像。
当然,XImage 包括很多命令,用于维护映像并以创造性的方式使用映像。表 1 提供了这些命令的概述。
表 1. XImage 命令行选项概述


/append
将卷映像附加到现有 WIM 文件
/apply
将卷映像应用于特定驱动器
/capture
将卷映像捕获到新的 WIM 文件中
/commit
提交对已安装 WIM 进行的更改
/compress
将压缩类型设置为 none、fast 或 maximum
/config
使用指定文件设置高级选项
/delete
从具有多个映像的 WIM 文件中删除映像
/dir
显示卷映像内的文件和文件夹的列表
/export
将映像从一个 WIM 文件传输到另一个 WIM 文件
/info
返回存储的指定 WIM 的 XML 说明
/ref
设置应用操作的 WIM 引用
/scroll
滚动输出以重定向
/split
将一个现有 WIM 文件拆分成多个只读的 WIM 部分
/verify
验证重复的和提取的文件
/mount
将具有只读访问权限的映像安装到指定目录
/mountrw
将具有读写访问权限的映像安装到指定目录
/unmount
卸载安装到指定目录的映像
/?
返回 XImage 的有效命令行参数
有一个功能值得进一步讨论,就是因为我认为将映像安装到一个目录这个功能非常酷。您可以安装映像,像处理文件系统上的任何文件一样修改映像,然后卸载映像。例如,您可以安装一个操作系统映像,添加设备驱动程序,然后将其卸载。这当然比从头重新生成磁盘映像要好。

该工具的使用参数以及简单的作用介绍如下:
xp_w_picpath [/append directory p_w_picpath_file "description" [/verify]] //将新的镜像文件内容附加到现有的映像文件中

xp_w_picpath [/apply p_w_picpath_file directory index_number [/verify]] //应用映像文件,也就是使用备份安装或者恢复操作系统

xp_w_picpath [/boot p_w_picpath_file index_number {/capture directory p_w_picpath_file "description"} | {/append directory p_w_picpath_file "description"} | {/export destination.wim_file source.wim_file index_number}] //设置引导映像

xp_w_picpath [/capture directory p_w_picpath_file "description" [/verify]]  //创建映像

xp_w_picpath [/compress {maximum | fast | none} /capture directory p_w_picpath_file "description"] //压缩映像

xp_w_picpath [/config configuration_file.ini {/capture directory p_w_picpath_file "description"} | {/append directory p_w_picpath_file "description"}] //指定配置文件

xp_w_picpath [/delete p_w_picpath_file index_number] //从现有映像文件中删除某个特定镜像

xp_w_picpath [/dir[p_w_picpath_file] index_number] //列出映像文件内容

xp_w_picpath [/export destination.wim_file source.wim_file index_number] //将映像文件中的特定镜像导出

xp_w_picpath [/info p_w_picpath_file] //查看映像文件信息

xp_w_picpath [/mount [directory] p_w_picpath_file index_number [/verify]] //将映像文件内容应设为只读文件夹

xp_w_picpath [/mountrw [directory] p_w_picpath_file index_number [/verify]] //将映像文件内容应设为可读写文件夹

xp_w_picpath [/ref splitwim2.swm /apply splitwim.swm drive index_number] //不知道是干吗的:$

xp_w_picpath [/split p_w_picpath_file destination.wim_size] //拆分映像文件

xp_w_picpath [/unmount [/commit][directory]] //卸载映射的映像文件