软件开发

Dism/Dism++注入驱动

前言

在为电脑安装系统的时候,我们可能会遇到驱动程序缺失的问题,从而带来许多不便。比如,安装媒介可能缺少了NVMe固态硬盘的驱动,导致我们在安装系统时无法找到目标硬盘。
no_disk.jpg
缺少USB3.0驱动则可能会让安装系统所花费的时间增加。对于部分笔记本而言,还可能遇到触控板或键盘无法驱动的情况。在没有外接键鼠的情况下,我们将甚至无法操作电脑完成安装。如果在装机时遇到了这些问题,解决方案之一就是向安装媒介中注入所需的驱动程序。

本教程将介绍如何通过Windows自带的镜像管理工具Dism(或是第三方图形化工具Dism++)为WinPE或系统安装镜像注入驱动。Dism++软件的下载地址如下[官方网站|直接下载]

视频教程

为Windows PE启动盘注入驱动

本教程中用作演示的是一枚优启通3.5版PE。但驱动注入的方式对于其他版本的PE也是适用的。为了方便演示注入驱动的效果,我特意选择了一台默认情况下SSD无法被识别到的笔记本——一台2019款15寸MacBook pro。首次进入PE后,如图中所示,无论是系统自带的磁盘管理器还是第三方磁盘工具,都无法识别到内置硬盘,仅能看到PE启动U盘本身。
cant_find_ssd.jpg
接下来我们先退出PE,并利用另外一台Windows电脑,为这枚优启通PE盘注入驱动。

第一步,我们需要结合自己的产品,从官网取得对应的驱动。这里要用到的驱动格式如下
driver.jpg
可以看到,是由一个.sys文件和一些对应的信息文件组成的。请大家自行整理下载的文件,并将驱动统一放置在一个文件夹下,之后我们会用Dism/Dism++一键搜索并注入该文件夹下的所有驱动。

第二步,我们需要新建一个临时文件夹来挂载目标镜像。准备好后,我们前往PE的EFI分区(部分PE启动盘可能会默认隐藏该分区,请手动利用DiskGenius等软件取消隐藏),找到一个大小500MB左右的.wim文件(名称可能是10PEx64或WinPE等),该文件就是PE盘启动时会加载的系统镜像,也就是我们需要注入驱动的对象。
10PEx64.jpg
建议大家在实际操作前备份好该文件。随后,我们打开命令提示符,并使用Dism的指令对镜像进行操作。Dism++的话,由于时图形化应用,建议大家直接查看我的视频教程。Dism查看镜像指令如下,不区分大小写

dism /get-ImageInfo /ImageFile:<填写.wim文件路径>

这条指令能列出镜像的索引目录。如图所示,这个镜像只有一个索引值,但其他镜像可能有多个。比如Windows 10的安装镜像一般就包含2-4个索引值,分别对应家庭版、专业版等等。请大家务必认清自己需要修改的索引位置(只有一个索引的请无视),并记下该索引值。
index.jpg
此后,请通过这条命令挂载镜像,以便编辑镜像内容

dism /mount-image /ImageFile:<.wim文件路径> /MountDir:<创建的临时文件夹> /index:<索引值>

挂载后,双击打开临时文件夹,理应能看到镜像内容。

第三步,我们需要批量注入之前下载好的驱动文件,其指令如下

dism /image:<创建的临时文件夹> /add-driver /driver:<存放驱动的文件夹> /recurse

注入成功后就可以保存更改并卸载镜像了,命令为

dism /unmount-image /MountDir:<创建的临时文件夹> /commit

操作无误的话,我们会发现.wim文件的体积略有增加,毕竟添加了新的驱动程序。有一点需要注意的是,启动U盘一般使用FAT32文件系统,不支持单个文件大小超过4GB,请务必留意修改后.wim的大小(超过上限的话会写入失败)。在下一个版块中我会介绍.wim文件大小超过上限时的解决方法。

至此,PE启动盘的驱动注入就完成了。我们再次到MacBook上启动该PE。由于注入了AppleSSD的相关驱动,我们看到内置的硬盘已经被成功识别了。
ssd_found.jpg

为Windows 10安装媒介注入驱动

与PE启动盘类似,利用微软官方制作工具制作好Windows 10安装盘后,我们将其打开并找到两个关键文件。第一个叫做boot.wim,其大小约为300-500MB,位于sources文件夹下。另一个叫做install.wim(在较新的镜像中叫做install.esd),大小约为几个G,也位于sources文件夹中。
wim_files.jpg
其中,boot.wim的作用与PE启动盘类似,是安装过程中用到的临时系统;install.wim/install.esd则是会被写入到电脑硬盘中的Windows 10本体。随着版本更新和内容的增加,后者的体积也在不断加大,最近几个版本中其体积已无法被控制在4GB以内,故微软采用了压缩率更高的.esd格式来替换原本的.wim格式。

我们需要为上面提到的两个文件都注入驱动,才能保证在系统安装过程中、以及安装完成后硬件都能正常工作。拿MacBook做例子,如果我们只对boot.wim进行了驱动注入却没有编辑install.wim,那么虽然在安装时能够识别到内置SSD,但在安装完成后,系统系统启动时会找不到硬盘,导致无限蓝屏。

对boot.wim的驱动注入过程与操作PE启动盘时完全一致,就不再赘述了。install.wim/install.esd则很可能会遇到注入驱动后体积过大、超过4GB限制的情况。这时我们就得通过dism将修改过的.wim压缩成.esd的格式,才能顺利的储存到启动U盘内。如果你下载的Windows 10安装媒介中提供的是install.esd,我们还需要先通过dism将.esd转化为.wim才可挂载并编辑。利用dism将.esd转为.wim的命令如下,转换前请务必查看目标分卷索引值
esd_indexes.jpg

dism /export-image /SourceImageFile:<原.esd文件> /SourceIndex:<索引值> /DestinationImageFile:install.esd /Compress:max /CheckIntegrity

该指令会根据我们提供的索引值,把原.esd文件中对应的分卷提取出来,并转化成一个名为install.wim的文件。接下来我们就可以对该.wim文件进行驱动注入了。

注入完成后,如果得到的.wim文件体积大于4GB,我们可以用以下指令将其压缩成.esd文件

dism /export-image /SourceImageFile:<.wim文件> /SourceIndex:<索引值> /DestinationImageFile:install.esd /Compress:recovery /CheckIntegrity

该指令会根据提供的索引值,把.wim文件中对应的分卷转化成名为install.esd的文件。

确保boot.wim和install.wim/install.esd两个文件都处理好后,Windows 10安装U盘的驱动注入就完成了。

下载地址

可以点击第一个链接前往软件开发者网页下载,或是点击第二个链接从我的网站直接下载文件

Dism++[官方网站|直接下载]

回复

This is just a placeholder img.