wim是微软自Vista开始采用的一种全新的Windows映像格式(Windows Imaging Format)。如果你现在手里有一个微软原版ISO镜像的话,打开镜像中的sources目录你会发现有两个wim格式的文件:install.wim和boot.wim。在镜像中最重要的也就是这两个文件,看看他们的大小就知道。
其中的install.wim文件包含我们要安装的操作系统的所有文件,也就是说我们只需要install.wim这个文件,再配合相关的工具就可以完成系统的安装。那么另外一个boot.wim是干什么的呢?不知道你是否意识到,我们从U盘或光盘启动安装操作系统时首先进入的是一个叫做Windows预安装环境的微型操作系统(就是WinPE,微软官方的PE)。而与之相关的系统文件就包含在boot.wim中。
那么wim格式文件怎么打开呢?早期,我们使用imagex工具来处理wim映像文件,我们需要安装Windows AIK来获取imagex。当然,我们也可以从网络上也可以下载到imagex。到了Win8时代,最新版的Dism工具经过改进已经具备了imagex原有的功能,并且已经包含在了win8/Win8PE中。
使用DISM工具将指定目录中的文件装进Wim文件
下面我们通过一个例子来演示使用DISM将指定目录中的文件装进wim文件中的具体过程:
为了更好的说明问题,我们可以做一个形象的比喻。我们把一个wim文件比作一个容器,只要你愿意我们可以把这个容器分割成若干个格子,并且我们可以在每个格子里存放文件。现在我要做的就是:把我的电脑D:\songs文件夹中的所有文件装进wim文件中并占据一个格子,格子的名字叫做NO.1,并把最终生成的wim文件取名为songs.wim放到D:\中。具体操作为:
1.首先我们在D:\中创建一个名为temp的文件夹,在操作过程中用这个文件夹作为缓存目录。注:这一步其实并不是必须的,只不过因为在后面的文章中我们要在恢复环境中备份系统,为了避免因默认缓存空间过小导致出现错误,所以设置了这个缓存文件夹。
2.以管理员身份运行命令提示符,直接输入下面的命令,回车运行:Dism /Capture-Image /ImageFile:D:\songs.wim /ScratchDir:D:\Temp /CaptureDir:D:\songs /Name:NO.1
命令中各路径的含义我想就不需要介绍了吧,结合前面我们要达到的目的相信你能明白。这里的Capture-Image就表示捕获映像的意思。操作完成后在D:\中查找一下,看看是不是生成了一个名为songs.wim的文件呢?顺便再观察一下它的大小吧。
3.现在我们再往D:\songs中任意添加几个文件,然后再把D:\songs中的所有文件放到songs.wim中的另一个格子中,对应的格子名叫做NO.2,为达到这一目的,此时我们只需要在命令提示符中输入下面的命令,回车即可。Dism /Append-Image /ImageFile:D:\songs.wim /ScratchDir:D:\Temp /CaptureDir:D:\songs /Name:NO.2
请比较一下上面两条命令的不同之处,因为我们第二次捕获文件是在运行第一条命令后生成的songs.wim文件的基础上操作的,所以用了/Append-Image 命令,即在原有的基础上增加格子(映像)。另外我们使用了不同的格子名,而实际上DISM是允许不同映像同名的。我们用不同的名字是为了容易区分它们。
4.最后我们再来查看一下songs.wim中包含的内容。操作方法:在命令提示符中输入下面的命令,回车运行:Dism /get-wiminfo /wimfile:D:\songs.wim
上图详细显示了songs.wim文件中包含的映像数量,可以看到第二个映像比第一个映像稍微大一点。但是我们再查看一下songs.wim文件的大小,发现和第一次刚生成时相比大小变化并不大。这是因为这两个格子中的文件大部分都是相同的,而wim中存储文件的机制可以很好的处理这些相同的文件,不让重复文件占用多余的空间。这也是为什么那些包含多个版本系统的镜像其体积并没有相应成倍增长的原因。
关于Wim和DISM暂时就介绍这么多,上面的例子只是把普通的文件装进Wim文件中,如果我们要备份系统则不能直接在系统中操作,而是需要在PE或者恢复环境或者另外一个系统中(如果安装了多个系统的话)来操作。