Добавление драйверов в дистрибутив Windows.Начиная с Vindows Vista, дистрибутивы Windows создаются на базе образов формата WIM (Windows IMaging Format), главной особенностью которых является технология единственной копии множества файлов (single instance storage) позволяющей получить компактный дистрибутив, с высокой скоростью развертывания. Файлы образов формата WIMВ отличие от сектор-ориентированных форматов (таких, как .iso, .tib, .bin ), образ формата WIM является файл-ориентированным, то есть его наименьшим логическим элементом является файл. При чем, файл, входящий в состав дистрибутива хранится в сжатом виде и в единственном экземпляре. Его же копии в дереве файловой системы заменяются ссылками, что обеспечивает компактность образов и высокую скорость их развертывания. Файл формата WIM может содержать несколько образов, отличающихся числовым индексом. Структура файла WIM, содержащего 2 образа: Как видно, 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: в текущей системе. Для добавления драйверов можно использовать каталог на жестком диске, например, D:\Drivers. Если файлы драйвера упакованы, то нужно их распаковать в подкаталоги каталога D:\Drivers например, с помощью архиватора 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: Для добавления драйверов можно использовать разные варианты команды 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 и его подкаталогов. Обычно такой вариант удобнее, когда в каталог помещено несколько папок с драйверами. Добавление драйверов сопровождается отображением служебных сообщений: Кроме того, подробная информация записывается в журнал 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 с примерами. |
|