- Интеграция драйверов в установочный образ Windows 10 / Server 2012 R2
- Как интегрировать драйвера в образ Windows 10 с помощью PowerShell
- Интеграция драйверов в образ Windows Server с помощью DISM
- Интеграция драйверов
- На этой странице
- Включение протоколирования установки драйверов
- Размещение драйверов
- Параметры файла ответов
- Подключение системного образа
- Интеграция драйверов с помощью диспетчера пакетов
- Проверка правильности интеграции драйверов
- Сохранение системного образа
- Замечания об интеграции драйверов
- Утилита peimg
- Драйверы контроллеров устройств хранения
- Заключение
- Интеграция SATA/RAID драйверов
- Шаг 1 — Создание директорий
- Шаг 2 — Распаковка драйверов
- Шаг 2а — Распаковка драйверов Intel
- Шаг 3 — Подбор файлов
- Шаг 4 — Копирование файлов
- Шаг 5 — Редактирование секции [SourceDisksFiles] файла txtsetup.sif
- Шаг 6 — Редактирование секции [HardwareIdsDatabase] файла txtsetup.sif
- Шаг 7 — Редактирование секциий [SCSI.load] и [SCSI] файла txtsetup.sif
- Шаг 8 — Редактирование (создание) winnt.sif
- Заключение
- Благодарности
Интеграция драйверов в установочный образ Windows 10 / Server 2012 R2
В этой статье мы покажем, как добавить необходимые драйвера устройств непосредственно в установочный образ 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 (которые предполагается интегрировать в дистрибутив);
Выведите список всех версий 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.
Интеграция драйверов
Посетителей: 32792 | Просмотров: 50522 (сегодня 0)
Процесс интеграции драйверов очень прост. Все драйверы размещаются в одной папке, причем они могут находиться как в ее корне, так и во вложенных папках. Затем подключается системный образ (install.wim) и с помощью диспетчера пакетов (pkgmgr.exe) осуществляется установка драйверов в образ.
На этой странице
Включение протоколирования установки драйверов
Для создания подробного файла журнала, отражающего процесс установки драйверов в системный образ, необходимо включить протоколирование диспетчера пакетов. Для этого достаточно импортировать в реестр приведенный ниже REG-файл.
Windows Registry Editor Version 5.00
Размещение драйверов
Драйверы могут находиться в любой папке. В этой статье используется папка C:\VistaWork\Drivers, в которой размещены драйверы. Они могут находиться в корне папки или в собственных подпапках — это не имеет значения. Напоминаю, что для интеграции требуются распакованные драйверы (INF-файлы). Если вы используете пакеты драйверов с сайта DriverPacks.net, вы можете просто распаковать пакеты из архивов в эту папку.
Параметры файла ответов
Для интеграции драйверов используется отдельный файл ответов, поэтому создайте новый файл. Добавьте к проходу 2 offlineServicing компонент Microsoft-Windows-PnpCustomizationsNonWinPE | DriverPath | PathandCredentials и укажите для него параметры.
- Path — путь к папке с драйверами.
- Key — порядковый номер папки. Вы можете указать несколько папок с драйверами путем добавления нескольких компонентов PathandCredentials. В этом случае вы указываете порядок обращения к ним с помощью параметра Key. Нумерация начинается с единицы.
Больше ничего к файлу ответов добавлять не требуется. Сохраните файл с именем Drivers.xml в папке C:\VistaWork\xml. Пример файла ответов для интеграции драйверов вы найдете в статье Примеры.
Подключение системного образа
Подключение образа уже рассматривалось в других статьях, поэтому здесь я приведу только команду для подключения.
imagex /mountrw C:\VistaWork\DVD\sources\install.wim 4 C:\VistaWork\Mount
Дополнительную информацию о команде вы можете найти здесь. Если вы хотите интегрировать драйверы в различные редакции Windows Vista, описанную ниже процедуру необходимо выполнить для каждой из них.
Интеграция драйверов с помощью диспетчера пакетов
Диспетчер пакетов (Pkgmgr.exe) — это средство командной строки, входящее в состав WAIK, которое можно использовать в автономном режиме для установки, удаления или обновления пакетов Windows. Интеграция драйверов в подключенный образ выполняется одной командой.
- /o: — путь к автономной папке Windows, т. е. папке Windows подключенного образа.
- /n: — путь к файлу ответов, используемому для интеграции.
- /l: — путь к файлу журнала, создаваемому в процессе работы диспетчера пакетов (журнал пригодится для устранения неполадок, если таковые возникнут).
Установка драйверов в системный образ может занять некоторое время, поэтому наберитесь терпения и не прерывайте процесс. Когда работа диспетчера пакетов завершится, в окно командной строки снова можно будет вводить команды.
Проверка правильности интеграции драйверов
Для проверки того, возникали ли ошибки во время интеграции, введите в командной строке команду:
Если отобразится 0, интеграция прошла без ошибок. В противном случае придется изучать файл журнала drivers.log.txt в папке C:\VistaWork\Logs. При успешной интеграции последние несколько строк файла должны выглядеть примерно так:
В первой строке фрагмента вы видите количество установленных драйверов, а в последней — код возврата ошибки (0х0 означает, что ошибок не было).
Наконец, вы можете перейти в папку Windows\inf подключенного образа и убедиться, что в ней создались файлы oem*.inf. Звездочка в данном случае означает порядковый номер интегрированного драйвера, начиная с нуля.
Завершающим штрихом будет сохранение образа.
Сохранение системного образа
Для сохранения образа также требуется одна команда:
imagex /unmount /commit C:\VistaWork\Mount
Подробнее она рассматривалась здесь.
Примечание. Если во время интеграции произошли ошибки, не сохраняйте изменения в образе (т. е. не используйте ключ /commit в приведенной выше команде).
Замечания об интеграции драйверов
Утилита peimg
В этой статье рассматривается интеграция драйверов с помощью диспетчера пакетов (pkgmgr). Альтернативным способом интеграции является использование утилиты командной строки peimg, также входящей в состав WAIK. С помощью ключа /inf= можно указать путь к INF-файлу. Например, команда
peimg /inf=C:\VistaWork\Drivers\driver.inf C:\VistaWork\Mount\Windows
производит интеграцию driver.inf в образ, подключенный в папку C:\VistaWork\Mount. Пример командного файла, выполняющего рекурсивный поиск драйверов во всех вложенных папках и их последующую интеграцию в образ, вы найдете в обсуждении статьи. Дополнительную информацию вы найдете в справочном файле «Руководство пользователя среды предварительной установки Windows (Windows PE)».
Драйверы контроллеров устройств хранения
Если вы используете нестандартные контроллеры устройств хранения (mass storage), которые не обнаруживаются программой установки Windows, их драйверы необходимо интегрировать не только в системный образ (install.wim), но и в загрузочный образ Windows PE (boot.wim). Процедура интеграции аналогична описанной в статье.
Заключение
Интеграция драйверов в дистрибутив Windows Vista занимает всего несколько минут. Сделать это несколько проще, чем сконфигурировать их установку с USB- или DVD-диска. Однако этот способ менее управляем по сравнению с установкой драйверов с USB-диска.
Интеграция SATA/RAID драйверов
Посетителей: 373743 | Просмотров: 544811 (сегодня 0)
Описать интеграцию SATA/RAID драйверов я собирался давно. К сожалению, моя конфигурация не позволяет протестировать интеграцию таких драйверов, и следовательно самостоятельное написание статьи исключалось. В первоначальном варианте сайта на странице драйверов была ссылка на хорошую статью участника конференции MSFN GreenMachine, но она требовала от читателя некоторой подготовки. Именно на этой статье и основана страница, рассказывающая о SATA/RAID драйверах, на сайте MSFN. Эта страница появилась там относительно недавно, и не существовала на момент написания первой редакции данной статьи.
Так или иначе, нашелся человек по имени Michael Hollinger, который взял на себя труд объединить в одно руководство информацию, разбросанную по форуму MSFN и сайтам участников форума. Его руководство показалось мне несложным и дающим достаточно информации для осуществления процесса интеграции «от и до». Michael любезно разрешил перевести его руководство на русский язык. Оригинальное руководство (PDF, 1.28 Mb) является публично доступной информацией и может быть использовано только в бесплатных или некоммерческих публикациях. Дисклэймер и контактную информацию автора можно найти в тексте руководства. Недавно Мichael прислал мне новую версию своего руководства, которое и выложено сейчас у меня. Руководство стало максимально подробным, с громадным количеством скриншотов (в основном Проводника и Блокнота ;-). Но поскольку суть осталась прежней, я не стал менять содержание своей статьи.
Примечание . В статье описан ручной метод интеграции драйверов. Процесс можно автоматизировать при помощи nLite.
Надеюсь, что статья будет полезна не только людям, интересующимся автоматической установкой, но и всем, кто не имеет возможности установить SATA/RAID драйверы в процессе установки Windows по причине отсутствия флоппи привода. Все вопросы или замечания по данной статье, пожалуйста, задавайте в форуме. Теперь к делу.
Шаг 1 — Создание директорий
Создайте директорию для размещения всех драйверов и промежуточных файлов, которые будут конфигурироваться на предварительном этапе. В данной статье будет использоваться директория C:\preload, в которой надо создать поддиректории следующим образом C:\preload\$OEM$\$1\drivers
Шаг 2 — Распаковка драйверов
Вам понадобятся драйверы для SATA и/или RAID контроллеров. Их можно взять с CD, поставлявшегося в комплекте с материнской платой или ноутбуком. Более новые версии драйверов могут находиться на сайте производителя.
Распакуйте драйверы в директорию, названную по имени контроллера. Например, возможна такая структура
Примечание: названия поддиректорий, содержащих драйверы, должны состоять из не более чем восьми символов. Например, для материнской платы ABIT IC7-MAXIII есть два набора драйверов Silicon Images: Si3112r и Si3114r. В таком случае нужно создать следующие директории
Если ваши драйверы находятся внутри установочной программы (нередко встречается у Intel), то распакуйте их из *.ехе при помощи WinRAR, например.
На данном этапе у вас в соответствующих директориях должны быть, по крайней мере, следующие файлы
Шаг 2а — Распаковка драйверов Intel
Драйверы Intel представляют собой особый случай. Если у вас нет вышеуказанных файлов, то вероятнее всего у вас есть два кабинетных архива (*.cab) и setup.exe. В таком случае выполните следующую команду из командной строки:
где path — директория, которую вы выбрали для распаковки. После распаковки ваши драйверы будут либо в поддиректории XP либо drivers. Скопируйте содержимое данной директории. Следуя нашей структуре, вы должны скопировать содержимое в
Шаг 3 — Подбор файлов
Вы можете смело удалить файлы readme и любые директории, относящиеся к другим операционным системам (Windows 2000 и Windows 98). Если одни и те же драйверы предназначаются для XP и 2000, то их, понятное дело, удалять не надо. Продолжая пример с ABIT IC7-MAXIII у нас теперь такая картина:
В директории C:\preload\$OEM$\$1\drivers\IC7_MAX3\Intel находятся файлы
А в директории C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3112r находятся файлы
и так далее для каждого из контроллеров.
Шаг 4 — Копирование файлов
Если содержимое установочного диска Windows XP у вас еще не скопировано на жесткий диск, но сейчас самое время это сделать. Копируем в C:\XPCD. Затем скопируйте директорию $ОЕМ$ из C:\preload в C:\XPCD.
Теперь нужно сделать сжатые копии всех *.sys файлов и скопировать их в C:\XPCD\i386 при помощи утилиты makecab. Из командной строки запустите следующую команду:
makecab C:\XPCD\$OEM$\$1\drivers\motherboard\controller\controller.sys C:\XPCD\I386\controller.SY_
где motherboard — название директории, которое вы дали по названию материнской платы, controller — соответственно название директории контроллера, а controller.sys и controller.SY_ — названия ваших *.sys файлов. У вас может быть более одного *.sys файла в каждой директории, однако вам нужен только тот, имя которого совпадает с именем *.inf файла. Если взять за пример шаг 6, то из директории Si3112r нам нужен только Si3112r.sys. Аналогичным образом добавьте в i386 все остальные *.sys файлы.
Шаг 5 — Редактирование секции [SourceDisksFiles] файла txtsetup.sif
Откройте в текстовом редакторе файл txtsetup.sif расположенный в C:\XPCD\i386. Блокнот подойдет, хотя и не слишком удобен для данной цели. Главное, чтобы редактор не создавал ненужного форматирования, такого как переносы строк, например.
Найдите первую секцию [SourceDisksFiles], которая расположена в районе 189 строки. В самом начале секции [SourceDisksFiles] добавьте следующую строку
где controller.sys — имя файла, созданного на четвертом шаге. Аналогичным образом добавьте строки, соответствующие остальным *.sys файлам. Каждому файлу должна соответствовать одна строка. В нашем примере:
[SourceDisksFiles]
iaStor.sys = 1. 3_,4,1
Si3112r.sys = 1. 3_,4,1
Si3114r.sys = 1. 3_,4,1
viasraid.sys = 1. 3_,4,1
Рассказ о формате этих строк я решил вынести на отдельную страницу ввиду сложности материала.
Внимание! Для того, чтобы драйверы корректно устанавливались при инсталляции системы с жесткого диска или ее обновления с компакт-диска, вам нужно также внести изменения в файл dosnet.inf следующим образом:
Шаг 6 — Редактирование секции [HardwareIdsDatabase] файла txtsetup.sif
Не закрывайте txtsetup.sif и найдите секцию [HardwareIdsDatabase], находящуюся в районе строки 18800. Мы через минуту вернемся к этой секции, а пока рассмотрим файлы, находящиеся в директориях с драйверами. Там есть файлы, информацию из которых нужно скопировать в txtsetup.sif. Нам понадобится либо *.oem либо *.inf файл из каждой из них. Идем в первую директорию и действуем по следующему принципу: если есть одноименный *.sys файлу *.oem файл, то открываем его, а если нет, то открываем одноименный *.inf файл. Если используете *.oem файл, то найдите все строки, начинающиеся с PCI\VEN_, заключенные в кавычки. Если используете *.inf файл, то найдите секцию [Strings], где есть аналогичные строки (но без кавычек). Проигнорируйте строки, начинающиеся с %. Скопируйте каждую строку от начала до первой точки (не включая точку). Например, если строка PCI\VEN_8086&DEV_2652&CC_0104.DeviceDesc = «Intel(R) 82801FR SATA RAID Controller», то скопировать нужно только PCI\VEN_8086&DEV_2652&CC_0104 и больше ничего.
Теперь поместите скопированные строки в секцию [HardwareIdsDatabase] файла txtsetup.sif и добавьте к каждой = «sysfile«, где sysfile — имя вашего *.sys файла одноименного *.oem или *inf. файлу. В нашем примере в секции [HardwareIdsDatabase] это выглядит так:
[HardwareIdsDatabase]
PCI\VEN_8086&DEV_2652&CC_0104 = «iaStor»
PCI\VEN_8086&DEV_2652&CC_0106 = «iaStor»
PCI\VEN_8086&DEV_24DF&CC_0104 = «iaStor»
PCI\VEN_8086&DEV_25B0&CC_0104 = «iaStor»
PCI\VEN_1095&DEV_3112 = «Si3112r»
PCI\VEN_1095&DEV_3512 = «Si3112r»
PCI\VEN_1002&DEV_436E = «Si3112r»
PCI\VEN_1002&DEV_4379 = «Si3112r»
PCI\VEN_1002&DEV_437A = «Si3112r»
PCI\VEN_1095&DEV_3114 = «Si3114r»
PCI\VEN_1106&DEV_3149 = «viasraid»
Шаг 7 — Редактирование секциий [SCSI.load] и [SCSI] файла txtsetup.sif
Теперь найдите секцию [SCSI.load] в районе строки 19266. Добавьте следующую строку для каждого *.sys файла
где sysfile опять же имя вашего *.sys файла. В нашем примере в секции [SCSI.load] это выглядит так:
[SCSI.Load]
iaStor = iaStor.sys,4
Si3112r = Si3112r.sys,4
Si3114r = Si3114r.sys,4
viasraid = viasraid.sys,4
Теперь найдите секцию [SCSI] в районе строки 21613. Добавьте следующие строки для каждого *.sys файла.
где sysfile — имя вашего *.sys файла, a Description — любое описание, которое вы хотите дать контроллеру. Проще всего использовать описания из *.inf файла. В нашем примере это выглядит так:
[SCSI]
iaStor = «Intel(R) 82801FR/82801ER/6300ESB SATA RAID Controller»
Si3112r = «Silicon Image SiI 3×12 SATARaid Controller»
Si3114r = «Silicon Image SiI 3114 SATARaid Controller»
viasraid = «VIA Serial ATA RAID Controller»
На этом редактирование txtsetup.sif закончено. Закройте и сохраните файл.
Шаг 8 — Редактирование (создание) winnt.sif
Теперь настало время изменить winnt.sif (или создать новый, если у вас его еще нет). Подробнее о winnt.sif я рассказываю тут, поэтому остановлюсь лишь на секции [Unattended]. Для успешной установки драйверов необходимо наличие в секции следующих параметров
где path — путь к директории с драйверами контроллера. В нашем примере это выглядит так:
Поскольку у нас драйвера расположены в нескольких директориях, мы заключаем их перечисление в кавычки и разделяем «точкой с запятой». Все значения параметра OemPnPDriversPath должны быть в одну строку, переносы недопустимы.
Если вас интересует только интеграция драйверов, и файл ответов создается исключительно для этой цели, то помимо указанных выше параметров добавьте секцию [Data] с таким содержимым:
Закройте winnt.sif и сохраните изменения (или сохраните ваш файл с именем winnt.sif в i386).
Заключение
В общем, на этом процедуру интеграции SATA/RAID драйверов можно считать законченной. Дальнейшие шаги оригинального руководства рассказывают о том, как создать загрузочный диск Windows XP. Не вижу смысла повторяться.
Благодарности
Остается лишь поблагодарить Майкла Холлингера и отдать должное тем людям, чьи книги, статьи и сообщения в форумах были использованы в его руководстве. Автор следует одному из общепринятых Американских стилей, используемых в научных публикациях. Я, уж извините, стиль выдерживать не буду 😉