- Добавление драйверов в дистрибутив Windows.
- Файлы образов формата WIM
- Добавление драйверов в дистрибутив Windows с помощью стандартной утилиты dism.exe
- Интеграция драйверов в дистрибутив Windows с помощью программы Dism++
- 1. Экспорт драйверов из среды установленной Windows
- 2. Извлечение содержимого установочного ISO
- 3. Извлечение образа WIM/ESD
- 4. Интеграция драйверов
- 5. Сохранение образа WIM/ESD
- 6. Подмена образа WIM/ESD
- 7. Создание нового установочного ISO
Добавление драйверов в дистрибутив 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
В большинстве случаев, добавление драйверов нужно выполнить для обоих индексов.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»
Интеграция драйверов в дистрибутив Windows с помощью программы Dism++
Один из вариантов создания собственного кастомного дистрибутива Windows – интеграция в него драйверов под конкретный компьютер. Это незначительная оптимизация процесса установки в случае с последними версиями Windows и компьютерами на базе распространённой аппаратной начинки. Но если приходится часто переустанавливать систему на ПК или ноутбуке с редкими комплектующими, чтобы потом вручную не допиливать процесс установки драйверов.
Можно единожды создать установочный ISO нужной версии и разрядности Windows с внедрёнными конкретными драйверами. Это могут быть драйверы сетевых, видео-, аудиоустройств, портов USB 3.0 , принтеров и т.п. Как интегрировать в дистрибутив Windows драйверы нужного железа и периферии?
Интеграция драйверов не требует сложностей в виде установки Windows в режиме аудита с последующим захватом её в файл WIM или ESD , как это происходит при создании кастомной сборки системы с внедрёнными настройками и сторонним софтом. Драйверы внедрить можно путём переупаковки системного образа консольным средством Dism. Но проще для этих целей использовать бесплатную программу Dism++, большая часть её возможностей – это реализация функционала консольного средства Dism в графическом интерфейсе.
Эта программа же и поможет решить вопрос с самими драйверами, она умеет экспортировать их из среды установленной Windows.
1. Экспорт драйверов из среды установленной Windows
Программе Dism++ для внедрения драйверов в дистрибутив Windows принципиально не требуется, чтобы это были именно экспортированные ею же драйверы. Можем найти в Интернете драйверы нужного железа и периферии в формате отдельных файлов «.inf» или в виде папок-пакетов. Можем даже распаковать архиватором (например, 7zip) установочные файлы драйверов «.exe» , но только в этом случае надо определённо знать, какие конкретно файлы нужно интегрировать. Файлы-установщики драйверов часто идут для серии устройств производителя, и под конкретную модель драйвер выбирается на этапе установки в среду Windows. Программа Dism++ не обустроена программным интеллектом подгона драйверов под конкретную модель из серии устройств, она интегрирует в дистрибутив операционной системы без разбору всё, что мы ей подсунем. Но в итоге после установки Windows из такого дистрибутива получим проблемы в её работе.
В общем, интегрировать драйверы в дистрибутив лучше экспортированные, проверенные на конкретной версии и разрядности Windows.
Для экспорта драйверов на верхней ленте в окне Dism++ кликаем образ текущей установленной Windows, впрочем, если на компьютере нет второй системы, она там будет одна. Идём в программный раздел «Драйверы», раскрываем категории устройств, галочками отмечаем драйверы для экспорта. Жмём внизу «Экспорт».
Указываем папку для экспортируемого содержимого.
2. Извлечение содержимого установочного ISO
Теперь необходимо подготовить дистрибутив – установочный ISO нужной версии и разрядности. И смонтировать, т.е. подключить для отображения образ. В системах Windows 8.1 и 10 это делается просто – дважды кликаем по файлу ISO .
Далее копируем всё, что находится на смонтированном диске ISO , и вставляем его в папке с любым названием, в нашем случае эта папка так и называется — «Содержимое ISO».
В среде Windows 7 содержимое ISO можно извлечь архиватором 7zip . Открываем образ с помощью соответствующего пункта контекстного меню архиватора.
Кликаем в окне архиватора кнопку «Extract».
И указываем путь извлечения содержимого ISO .
3. Извлечение образа WIM/ESD
Создаём ещё одну папку, в неё мы извлечём содержимое файла install.wim или install.esd – непосредственно файла-образа дистрибутива Windows. В нашем случае это папка с дефолтным названием «Новая папка» .
Теперь в окне Dism++ идём в меню «Файл», выбираем «Монтировать образ».
В окошке параметров монтирования указываем, соответственно:
• Редакцию Windows;
• Путь к образу WIM/ESD – путь к файлу install.wim или install.esd, который находится в папке с извлечённым установочным ISO, в подпапке «sources»;
• Путь к созданной на предыдущем этапе папке.
Как только смонтированный образ дистрибутива будет готов, жмём «Открыть сессию».
4. Интеграция драйверов
Идём в раздел Dism++ «Драйверы», жмём внизу «Добавить».
Открываем папку с экспортированными драйверами и указываем для выбора одну из папок-категорий экспортированных драйверов.
Ждём, пока драйверы интегрируются.
И по точно такому же принципу добавляем папки-категории других драйверов.
5. Сохранение образа WIM/ESD
Теперь можем сохранять отредактированный дистрибутив Windows.
В меню «Файл» жмём «Сохранить образ как».
Жмём «Обзор».
Где-нибудь в отдельной папке сохраняем файл под именем «install» .
По умолчанию для этого файла стоит тип «Максимальное сжатие образа», это формат WIM . Он весит обычно на 30% больше, чем файл формата ESD , но для сохранения последнего потребуется намного больше времени, поскольку в этом процессе будет участвовать ещё и операция сжатия образа. Если есть риск того, что из-за веса файла install дистрибутив может не поместиться на установочный носитель, например, на флешку 4 Гб, то лучше при сохранении образа выбрать тип «Ультра сжатие образа».
Жмём «Ок» и дожидаемся сохранения файла.
После этого нужно размонтировать изначальный образ: в окне Dism++ жмём «Файл» и, соответственно – «Размонтировать образ».
6. Подмена образа WIM/ESD
Теперь идём в папку, куда мы на втором этапе извлекали содержимое установочного ISO . В подпапке «sources» удаляем исходный файл install.wim или install.esd . И вместо него вставляем скопированный новый install.wim или install.esd – тот, что с интегрированными драйверами, который мы сохранили на предыдущем этапе.
7. Создание нового установочного ISO
Если есть необходимость в упаковке отредактированного дистрибутива в файл установочного ISO , в программе Dism++ в разделе «Дополнительно» жмём «Создание ISO».
• Папку с изначальным содержимым ISO и подменённым впоследствии файлом install.wim или install.esd;
• Путь сохранения нового ISO;
• Метку ISO.
Дожидаемся завершения создания ISO .
И всё – установочный образ с интегрированными драйверами готов.