豆豆 一个不起眼的经验分享博客。

认识wim格式文件,学习使用Dism工具捕获系统映像的相关命令

2013/07/10 07:00
54,460
21

最后修改于 2013年12月29日 17:17

本文仍然是为新手准备的入门文章,有此基础的可以略过哈。

什么是Wim文件?

wim是微软自Vista开始采用的一种全新的Windows映像格式(Windows Imaging Format)。如果你现在手里有一个微软原版ISO镜像的话,打开镜像中的sources目录你会发现有两个wim格式的文件:install.wim和boot.wim。在镜像中最重要的也就是这两个文件,看看他们的大小就知道。

其中的install.wim文件包含我们要安装的操作系统的所有文件,也就是说我们只需要install.wim这个文件,再配合相关的工具就可以完成系统的安装。那么另外一个boot.wim是干什么的呢?我们从U盘或光盘启动安装系统时会首先进入一个叫做Windows预安装环境的微型操作系统(就是WinPE,微软官方的PE),然后这个环境中启动安装程序完成系统安装。与WinPE相关的系统文件就包含在boot.wim中。

用什么工具来处理Wim文件?

早期,主要使用imagex工具来处理wim映像文件,我们需要安装Windows AIK来获取imagex。当然,我们也可以从网络上下载到imagex。到了Win8时代,最新版的Dism工具经过改进已经具备了imagex原有的功能,并且已经包含在了win8/8.1以及Win8/8.1 PE中。

当然,还有其他工具可以用来查看Wim中的文件,比如7z等。这里不作介绍。

使用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

1307dism1

命令中各路径的含义我想就不需要介绍了吧,结合前面我们要达到的目的相信你能明白。这里的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

1307dism2

请比较一下上面两条命令的不同之处,因为我们第二次捕获文件是在运行第一条命令后生成的songs.wim文件的基础上操作的,所以用了/Append-Image 命令,即在原有的基础上增加格子(映像)。另外我们使用了不同的格子名,而实际上DISM是允许不同映像同名的。我们用不同的名字是为了容易区分它们。

4、最后我们再来查看一下songs.wim中包含的内容。操作方法:

在命令提示符中输入下面的命令,回车运行:
Dism /get-wiminfo /wimfile:D:\songs.wim

1307diam3

上图详细显示了songs.wim文件中包含的格子数量(即映像数量),可以看到第二个映像比第一个映像稍微大一点。但是我们再查看一下songs.wim文件的大小,发现和第一次刚生成时相比大小变化并不大。这是因为这两个格子中的文件大部分都是相同的,而wim中存储文件的机制可以很好的处理这些相同的文件,不让重复文件占用多余的空间。这也是为什么那些包含多个版本系统的镜像其体积并没有相应成倍增长的原因。

关于Wim和DISM暂时就介绍这么多,上面的例子只是把普通的文件装进Wim文件中,如果我们要备份系统则不能直接在系统中操作,而是需要在PE或者恢复环境或者另外一个系统中(如果安装了多个系统的话)来操作。关于DISM的更多用法以后有机会的话再补充。

如果文章有查看密码,那就是ithome.com

评论 (共21条)

  1. 博主,请问dism /capture-image下的bootable命令(可将Windows PE卷映像标记为能够引导)是干什么的?括号里是dism自带的注释,不过看不懂,我不标记为可引导一样可以用来还原系统,那么标记为可引导有什么用?

          1. 我在WIN7系统上安装了ADK工具包,怎么还是错误:87,我是在WIN7的系统上以管理员身份运行的DISM,

          2. DISM是命令行工具,要在CMD中带上参数运行。仔细看一下 https://www.iruanmi.com/dism-imagex-oscdimg/,运行对应版本的DISM。amd64是64位,x86是32位。

发表评论

您的电子邮箱地址不会被公开。