Добавление драйверов в дистрибутив Windows.



Начиная с Vindows Vista, дистрибутивы Windows создаются на базе образов формата WIM (Windows IMaging Format), главной особенностью которых является технология единственной копии множества файлов (single instance storage) позволяющей получить компактный дистрибутив, с высокой скоростью развертывания.

Файлы образов формата WIM



В отличие от сектор-ориентированных форматов (таких, как .iso, .tib, .bin ), образ формата WIM является файл-ориентированным, то есть его наименьшим логическим элементом является файл. При чем, файл, входящий в состав дистрибутива хранится в сжатом виде и в единственном экземпляре. Его же копии в дереве файловой системы заменяются ссылками, что обеспечивает компактность образов и высокую скорость их развертывания. Файл формата WIM может содержать несколько образов, отличающихся числовым индексом.

Структура файла WIM, содержащего 2 образа:

Структура файла WIM


Как видно, wim-файл содержит 6 типов содержимого :

WIM Header — заголовок wim-файла, описывающий индексы образов, их содержимое, атрибуты, версию, размер, тип сжатия и т.п.

File Resources — последовательность пакетов, содержащих упакованные данные файлов в составе образа.

Metadata Resource — содержит информацию о файлах в составе образа, включая структуру папок и атрибуты.

Lookup Table — таблица расположений и размеров ресурсных файлов в файле .wim

XML Data — данные в формате XML с дополнительными сведениями об образе. Представляют собой несжатый текст в кодировке Unicode.

Integrity Table — таблица целостности, используемая для контроля работоспособного состояния образа

Попросту говоря, WIM-файл – это хранилище WIM-образов, и каждый из них является образом обычного логического диска. При чем, как и логические диски, WIM-образы могут быть загрузочными. В частности, установка всех современных операционных систем семейства Windows выполняется с использованием двух файлов WIM-образов boot.wim и install.wim. Первый обеспечивает начальную загрузку среды предустановки Windows PE (Windows Preinstall Environment), из которой выполняется процесс установки самой системы с использованием содержимого файла образа с именем install.wim. Кроме того, после завершения стандартной установки Windows, создается среда восстановления Windows RE (Recovery Environment), предназначенная для загрузки из образа WinRE.WIM и восстановления работоспособности при проблемах с загрузкой основной системы.

Обычно образ winre.wim располагается в скрытом разделе, которому не присваивается буква логического диска. В диспетчере дисков отображается как ”Зарезервировано системой”

Образ WIM может быть смонтирован в системе, т.е. распакован и представлен в виде исходного дерева папок и файлов, на основе которого он был создан. В смонтированный образ можно внести изменения, а затем пересоздать образ заново. Именно так и происходит добавление новых драйверов в существующий дистрибутив Windows.

Добавление драйверов в дистрибутив Windows с помощью стандартной утилиты dism.exe



Начиная с Windows 7, утилита dism.exe ( Deployment Image Servicing and Management ) входит в стандартный комплект программного обеспечения установленной ОС Windows. Представляет собой средство командной строки, которое может использоваться для обслуживания образов Windows, и заменяет утилиты Pkgmgr.exe, PEimg.exe и Intlcfg.exe, которые впервые появились в Windows Vista. Функциональные возможности этих средств теперь собраны в одном инструменте dism.exe. Кроме того, в dism.exe были добавлены новые функции, улучшающие возможности автономного обслуживания образов.

Процесс добавления драйверов состоит из нескольких шагов:

- монтирование WIM-образа в какой-либо каталог. Содержимое образа распаковывается и помещается в указанный каталог.

- установка требуемых драйверов в смонтированный образ с помощью утилиты dism.exe.

- применение изменений в образе и демонтирование его командой dism

Для добавления драйверов в дистрибутив Windows потребуется сам дистрибутив и собственно файлы драйверов. Дистрибутив должен обеспечивать запись измененных образов, а файлы для установки драйверов не должны быть в упакованном виде (в формате .cab, .msi, .exe и т.п.). В качестве примера возьмем загрузочную флэшку с Windows 7 и старше, а в качестве драйверов – набор драйверов для материнской платы.

Файлы образов boot.wim и install.wim размешаются в папке sources установочной флэшки, например, имеющей букву F: в текущей системе.

Файлы и папки установочной флэшки Windows


Для добавления драйверов можно использовать каталог на жестком диске, например, D:\Drivers. Если файлы драйвера упакованы, то нужно их распаковать в подкаталоги каталога D:\Drivers например, с помощью архиватора 7-zip.

Распаковка файлов драйвера из файла формата .msu архиватором 7-zip


Естественно, необходимо учитывать разрядность системы. Если имеется 32-разрядные и 64-разрядные версии драйверов, а версия ОС 64-разрядная, то 32-разрядные версии нужно удалить.

Как уже упоминалось, в файле .wim может содержаться несколько образов и для работы с конкретным образом нужно знать его индекс. Делается это командой:

DISM /Get-WimInfo /WimFile:F:\sources\install.wim - отобразить информацию об образах файла install.wim

Пример отображаемой информации для установочной флэшки с Windows 7:

Cистема DISM
Версия: 6.1.7600.16385
Сведения об образе : F:\sources\install.wim

Индекс: 1
Имя : Windows 7 HOMEBASIC
Описание : Windows 7 HOMEBASIC
Размер (байт): 11 531 865 453

Индекс: 2
Имя : Windows 7 HOMEPREMIUM
Описание : Windows 7 HOMEPREMIUM
Размер (байт): 12 045 241 621

Индекс: 3
Имя : Windows 7 PROFESSIONAL Описание : Windows 7 PROFESSIONAL
Размер (байт): 11 947 613 470

Индекс: 4
Имя : Windows 7 ULTIMATE
Описание : Windows 7 ULTIMATE
Размер (байт): 12 110 440 566

Если мы хотим добавить драйверы в образ Windows 7 PROFESSIONAL, то необходимо использовать индекс 3. Монтируем нужный образ, например, в каталог D:\newwim (каталог обязательно должен быть пустым):

Dism /Mount-Wim /index:3 /WimFile:F:\sources\install.wim /MountDir:D:\newwim

После выполнения команды, в каталоге D:\newwim будет содержимое образа, используемого для установки Windows 7 PROFESSIONAL:

Содержимое смонтированного образа, использующегося при установке Windows.


Для добавления драйверов можно использовать разные варианты команды DISM:

DISM.exe /Image:D:\newwim /Add-Driver /Driver:D:\Drivers\Usb\Usb3.inf - добавить в образ драйвер на основе информации из файла D:\Drivers\Usb\Usb3.inf

DISM.exe /Image:C:\newwim /Add-Driver /DriverName:"C:\Drivers\1.inf" /DriverName:"C:\Drivers\2.inf" /DriverName:"C:\Drivers\3.inf" - добавить несколько драйверов одной командой. При добавлении нескольких драйверов, их установка выполняется в том же порядке, в каком они перечисляются в командной строке DISM

DISM.exe /Image:D:\newwim /Add-Driver /Driver:D:\Drivers /recurse - добавить в образ все драйверы из каталога D:\Drivers и его подкаталогов. Обычно такой вариант удобнее, когда в каталог помещено несколько папок с драйверами.

Добавление драйверов сопровождается отображением служебных сообщений:

Сведения о ходе процедуры добавления новых драйверов в дистрибутив Windows


Кроме того, подробная информация записывается в журнал C:\Windows\Logs\DISM\dism.log

При возникновении ошибки установки отображается ее причина:

Ошибка 48 - системе не удается проверить цифровую подпись этого файла - rcraid.sys

Для добавления драйвера, не имеющего цифровой подписи (редко, но бывает) можно воспользоваться ключом /ForceUnsigned

DISM.exe /Image:D:\newwim /Add-Driver /Driver:D:\Drivers /recurse /ForceUnsigned

После успешного завершения процедуры добавления драйверов, необходимо отмонтировать образ с применением сделанных в нем изменений:

Dism /Unmount-Wim /MountDir:D:\newwim /Commit

Если по каким-либо причинам требуется отменить изменения, внесенные в образ, вместо ключа /Commit используется ключ /discard:

Dism /Unmount-Wim /MountDir:D:\newwim /discard - отмонтировать образ без внесения изменений.

При необходимости данная последовательность действий выполняется для других версий ОС с учетом их индекса, полученного командой DISM с ключом /Get-WimInfo ( 1 – Windows 7 Home Basic, 2 – Home Premium и т.д.).

При установке Windows 7 на современном оборудовании, может возникнуть такая ситуация, когда не работает ни мышь, ни клавиатура, поскольку система не имеет поддержки USB 3.0, а порты USB 2.0 отсутствуют или же не поддерживаются средой предустановки. В этом случае можно обойтись подменой файла boot.wim из дистрибутивов Windows 8.1 / Windows 10, как я уже описывал в статье Как избавиться от ошибки "Не найден необходимый драйвер для дисковода оптических дисков” при установке Windows 7, или интегрировать нужные драйверы в образы файла с помощью DISM. Выполняется данная процедура таким же образом, как и для образов в составе install.wim:

DISM /Get-WimInfo /WimFile:F:\sources\boot.wim - получить сведения об образах.

Dism /Mount-Wim /index:2 /WimFile:F:\sources\boot.wim /MountDir:D:\newwim - смонтировать образ с индексом 2.

Dism /image:D:\newwim /Add-Driver /driver:"D:\Drivers" /recurse /ForceUnsigned - добавить нужные драйверы.

Dism /Unmount-Wim /MountDir:D:\newwim /Commit - отключить образ с применением изменений.

Нужно учесть, что в файле boot.wim присутствуют 2 образа:

Сведения об образе : F:\Sources\boot.wim

Индекс: 1
Имя : Microsoft Windows PE (x64)
Описание : Microsoft Windows PE (x64)
Размер (байт): 1 447 345 496

Индекс: 2
Имя : Microsoft Windows Setup (x64)
Описание : Microsoft Windows Setup (x64)
Размер (байт): 1 629 402 470

В большинстве случаев, добавление драйверов нужно выполнить для обоих индексов.

Подробное описание команды dism с примерами.


Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой "Поделиться"









В начало страницы.     |     На главную страницу сайта.





Рейтинг@Mail.ru