В этой статье мы покажем, как добавить необходимые драйвера устройств непосредственно в установочный образ Windows. Интеграция необходимых драйверов в ваш офлайн образ Windows используется при необходимости разворачивания большого количества рабочих станций и серверов на однотипном железе. Вместо того, чтобы вручную устанавливать специфические драйвера (в том числе AHCI/RAID/NVMe) на каждом компьютере, вы можете существенно упростить и ускорить процедуру развертывания ОС, интегрировав драйвера непосредственно в хранилище драйверов (Driver Store) установочного образа Windows в ISO / WIM файле или в VHD/VHDX файл с ОС. При установке такого образа служба Plug and Play (PnP) автоматически установит необходимые драйверы для обнаруженного оборудования.
Данная инструкция по интеграции драйверов в образ Windows можно использовать как десктопных редакциях Windows 10, Windows 8.1, так и в серверных платформах Windows 2016, 2012 R2.
В современных редакциях Windows вы можете добавить драйвера в установочный ISO образ двумя способами:
- с помощью утилиты DISM;
- с помощью PowerShell.
По сути обе методики выполняют одну и туже операцию: интегрируют дополнительные драйвера в офлайн образ Windows. Какой способов воспользоваться – вопрос личных предпочтений администратора. Разберем подробнее оба способа на примере интеграции драйверов в установочный образ Windows 10.
Как интегрировать драйвера в образ Windows 10 с помощью PowerShell
В первую очередь вам необходимо скачать и поместить все необхдимые драйвера устройств в один каталог (для каждого драйвера нужно создать отдельную папку). Обратите внимание, что многие производители (в том числе Dell, HP) поставляют свои драйвера в виде самораспаковывающихся exe файлов или zip архивов. Такие архивы необходимо распаковать на диск, чтобы в каталоге с драйверами присутствовали inf, cat и sys файлы.
Перед началом работы создадим следующую структуру каталогов:
- Каталог Drivers – в нем хранятся распакованные файлы драйверов для вашей редакции Windows 10 (которые предполагается интегрировать в дистрибутив);Вы можете скачать и распаковать необходимые файлы драйверов вручную или экспортировать все сторонние драйвера с эталонного компьютера, на котором уже установлены все необходимые драйвера с помощью командлета Export-WindowsDriver.
- Каталог ISO – в каталоге хранится распакованный iso образ Windows 10. Нам нужен только файл Install.wim из каталога Sources;Если в вашем ISO образе Windows 10 имеется только файл c:\sources\install.esd, вы сможете сконвертировать файл ESD в формат WIM с помощью утилиты DISM:
dism /export-image /SourceImageFile:"C:\WinWork\ISO\install.esd" /SourceIndex:4 /DestinationImageFile:C:\WinWork\ISO\install.wim /Compress:max /CheckIntegrity
- Каталог Mount – пустой каталог, в который в дальнейшем будет смонтирован Wim образ Windows.
Выведите список всех версий Windows, которые содержатся в файле Install.wim с помощью командлета PowerShell Get-WindowsImage. Это необходимо для того, чтобы указать ту редакцию Widows, в которую планируется интегрировать дополнительные драйвера.
Get-WindowsImage -ImagePath C:\WinWork\ISO\install.wim
В нашем примере в WIM файле содержится всего 1 редакция Windows 10 Pro с индексом 1 (ImageIndex : 1).
Далее необходимо смонтировать образ выбранной версии Windows в каталог Mount. Полученные выше индекс редакции Windows, которую необходимо смонтировать нужно указать в качестве аргумента Index:
Mount-WindowsImage -Path C:\WinWork\Mount\ -ImagePath C:\WinWork\ISO\install.wim -Index 1
После того, как образ смонтирован, запустите процесс добавления в него драйверов, которые хранятся в каталоге Drivers (параметр -Recurse предполагает рекурсивный обход вложенных папок и добавление драйверов по всем найденным inf файлам).
Add-WindowsDriver -Path C:\WinWork\Mount\ -Driver C:\WinWork\Drivers -Recurse
Командлет Add-WindowsDriver осуществит рекурсивный поиск в указанном каталоге всех .inf файлов с описаниями драйверов. По описанию в inf файле команда добавит зависимые INF, DLL, CAT, PNF и т.д. файлы в ваш образ Windows.
Итак, драйвера скопированы, и текущий образ можно отмонтировать, сохранив изменения в нем.
Dismount-WindowsImage -Path C:\WinWork\Mount\ –Save
В рассмотренном примере мы добавили драйверы в образ Install.wim, это образ Windows, который будет установлен на ваш диск. Если необходимо добавить драйвера в загрузочный образ Windows (с которого выполняется только установка Windows), необходимо добавить драйвера в файл Boot.wim. Обычно это необходимо, когда при установке Windows на компьютере не определяются локальные диски или отсутствует доступ к сети. Обычно в образ boot.wim необходимо интегрировать только драйвера контроллеров, дисков или сетевых адаптеров.
Вы можете сконвертировать ваш файл install.wim, содержащий установочный образ Windows с интегрированными драйверами в формат install.esd, применив сжатие (compress):
DISM /Export-Image /SourceImageFile:C:\WinWork\ISO\install.wim /SourceIndex:1 /DestinationImageFile:C:\WinWork\ISO\install.esd /Compress:recovery
Осталось создать iso файл и записать его на диск или флешку с помощью Dism++ или команды oscdimg:
oscdimg -n -m -bc:\ISO\boot\etfsboot.com C:\ISO C:\new_win10pro_image.iso
Интеграция драйверов в образ Windows Server с помощью DISM
Теперь покажем пример интеграции драйверов в установочный образ Windows Server 2012 R2. В том случае, если сборка образа ведется на Windows 8.1 для дальнейшей работы с последней версией DISM вам понадобится скачать и установить Windows 8 ADK (http://www.microsoft.com/en-us/download/details.aspx?id=30652). Нужно установить компонент Deployment Tools.
Структура каталогов, с которой мы будем работать может быть той же самой: Drivers (хранятся драйвера и *.inf файлы), ISO (распакованный образ Windows Server 2012 R2), Mount (каталог монтирования образов). Предполагается, что в файле install.wim нас интересует версия Windows Server 2012 R2 Datacenter с индексом 3.
Смонтируйте установочный образ install.wim:
dism /Mount-Wim /WimFile:c:\iso\sources\install.wim /Index:3 /MountDir:c:\mount
Запустите рекурсивный поиск и интеграцию в хранилище компонентов образа Windows Server 2012 R2 новых драйверов:
dism /image:c:\mount /Add-Driver "/driver:c:\drivers\" /recurse
Сохраните изменения в образе:
dism /unmount-wim /mountdir:d:\mount /commit
Если необходимо добавить драйвера во все образы Windows Server, содержащиеся в wim-файле, указанные операции нужно провести для всех индексов версий ОС, которые вернула команда:
dism /get-wiminfo /wimfile:d:\install.wim
Кроме интеграции драйверов, обычно необходимо добавить в устанавливаемый образ Windows еще обновления безопасности (Как интегрировать обновления в установочный образ Windows), это повысит уровень защищённости ОС сразу после установки. Осталось записать получившийся установочный образ на загрузочный диск или USB флешку или сконвертировать его в ISO.
Спасибо за статью. На Windows 7 для создания образа средствами PowerShell тоже предварительно нужно установить Windows ADK.
Add-WindowsDriver : Произошла ошибка. Операция не была выполнена.
Убедитесь, что DISM правильно установлен в образе, и повторите операцию.
строка:1 знак:1
+ Add-WindowsDriver -Path .\Mount -Driver .\Drivers -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-WindowsDriver], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.AddWindowsDriverCommand
Пишет на этапе монтирования драйверов
Драва USB 3.0 для HPE DL20
OS Windows Server 2008 R2 x86
В чом проблемма?
Спасибо!!!
В Windows 7 / 2008R2 нет командлета Add-WindowsDriver. Он появился только в Windows 8 / Server 2012 и выше.
Для интеграции драйвера в образ в Win7/2008 R2 используйте DISM (пример есть в статье https://winitpro.ru/index.php/2016/12/21/integraciya-drajvera-kontrolera-usb-3-0-v-distributiv-windows-7/ )
/SourceImageFile:C:\WinWork\ISO\install.wim пропущено двоеточие
Спасибо, поправил!
как потом удалять этот весь хлам, весом под 30Гб, из папки Mount???
Нужно отмонтировать образ:
Dismount-WindowsImage -Path C:\WinWork\Mount\ –Save
спасибо. но у меня теперь не получается сделать iso файл… пишет «‘oscdimg’ is not recognized as an internal or external command,
operable program or batch file.»
вложил файл oscmidg.exe в рабочую папку и теперь пишет «E:\WinWork>oscdimg -n -m -bc:\ISO\boot\etfsboot.com E:\WinWork\ISO E:\new_win10pro_image.iso
OSCDIMG 2.54 CD-ROM and DVD-ROM Premastering Utility
Copyright (C) Microsoft, 1993-2007. All rights reserved.
Licensed only for producing Microsoft authorized content.
ERROR: Could not open boot sector file «c:\ISO\boot\etfsboot.com»
Error 3: The system cannot find the path specified.»
Проверьте, что все пути и файлы в команде правильные (существуют).
можно подробней написать чтот должно быть установлено на комп, чтобы можно было сконвертировать wim(или esd) в iso?
тут важно уточнить: нужно поместить install.esd в папку c распакованым оригинальным образом по пути c:\ISO\sources на замену оригинальному install.wim. тогда не будет ошибок как у меня в комментариях
Команду надо поправить, исходя из того, что ведется работа в папке C:\WinWork:
oscdimg -n -m -bc:\WinWork\ISO\boot\etfsboot.com C:\WinWork\ISO C:\WinWork\new_win10pro_image.iso
Все отлично. Работал в Windows 10 и с Windows 10. Все тип-топ.
В пункте 2 метода с PowerShell в команде указан 4 индекс: /SourceIndex:4 в то время как мы пытаемся узнать индекс образа только в 3 пункте! Надо делать наоборот: во 2 пункте узнать индекс командой
Get-WindowsImage -ImagePath C:\WinWork\ISO\install.esd
После чего выбрать индекс извлекаемого образа и использовать его в команде
dism /export-image /SourceImageFile:»C:\WinWork\ISO\install.esd» /SourceIndex: …
И дальше, т.к. мы извлекли один образ, то его индекс будет 1, т.е. его не надо больше узнавать