Меню Рубрики

Как интегрировать драйвера raid в дистрибутив windows server 2008

Интеграция SATA/RAID драйверов

Описать интеграцию 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. Не вижу смысла повторяться.

Благодарности

Остается лишь поблагодарить Майкла Холлингера и отдать должное тем людям, чьи книги, статьи и сообщения в форумах были использованы в его руководстве. Автор следует одному из общепринятых Американских стилей, используемых в научных публикациях. Я, уж извините, стиль выдерживать не буду 😉

Источник

Интеграция драйверов в дистрибутив Windows

Если Вы хотите, чтобы после установки Windows Вам не требовалось устанавливать драйверы на устройства компьютера, то Вы можете интегрировать их в дистрибутив.

В этой статье я расскажу, как интегрировать драйверы в дистрибутив Windows.

Вам понадобится средство Windows AIK или Windows ADK.

Я буду рассказывать на примере Windows ADK. Для Windows AIK будут другие пути к исполняемым файлам, но их названия такие же. Поэтому Вы сможете самостоятельно их найти, например воспользовавшись поиском.

Скопируем все файлы дистрибутива WIndows в папку компьютера. У меня она называется PRO.

Также у нас должна быть создана папка, в которую мы будем монтировать образ Windows install.wim. Я ее назвал IMG.

В папке Drivers у меня собраны драйверы моих устройств. Их нетрудно найти на официальных сайтах производителей этих устройств. Список сайтов наиболее популярных производителей я публиковал ранее. Драйвера должны быть распакованы. Т.е. интегрируются драйверы в формате файлов *.inf, *.sys и т.п.

Запускаем «Среда средств развертывания и работы с образами» из меню Пуск — Все программы — Windows Kits — Windows ADK.

Вызываем DISM с параметром /Get-WimInfo, который показывает информацию о install.wim:

Сведения об образе : D:\Pro\sources\install.wim

Индекс: 1 Имя : Windows 7 PROFESSIONAL Описание : Windows 7 PROFESSIONAL Размер (байт): 18 473 214 093

Операция успешно завершена.

Нам здесь важно найти индекс. В моем случае это 1.

Монтируем образ с индексом 1 в папку IMG:

Для интеграции драйверов в дистрибутив запускаем команду:

Параметр /recurse позволяет брать дрова еще и из подпапок. Параметр /ForceUnsigned позволяет интегрировать неподписанные драйверы.

Теперь можно размонтировать образ из папки обратно в wim-файл, сохранив изменения:

Файл образа: D:\TempMy\1\Pro\sources\install.wim

Операция успешно завершена.

В папке, в которую в начале мы копировали все файлы дистрибутива WIndows (у меня она называется PRO), находится дистрибутив с интегрированными драйверами.

Его можно скопировать на загрузочную флешку и устанавливать с нее ОС.

Как подготовить загрузочную флешку, я рассказывал ранее.

Как интегрировать в дистрибутив обновления Windows читайте здесь.

24 комментарии

Здравствуйте, Сергей!
У меня вопрос-а как можно интегрировать драйверы в Win 8.1 и Win 10- ведь в дистрибутиве нет файла install.wim, а есть install.esd?
Спасибо.

Да, Вячеслав, есть такая проблема. Даже не проблема, а усложнение процесса.
ESD — это по сути сжатый и зашифрованный WIM.
В сети существуют различные программы, позволяющие из ESD получить WIM, и WIM сжать в ESD.
Поищи ESD2WIM или ESD-decryptor.

Добрый день, Сергей,
Вопрос: файлы драйверов перед интеграцией должны быть извлечены из архива, или это не обязательно?

Аркадий, драйвера должны быть распакованы. Т.е. интегрируются драйверы в формате файлов *.inf, *.sys и т.п.

Здравствуйте! Подскажите пожалуйста! Что делать в случае, если индекса 2?

Можно интегрировать в каждый индекс поочереди.
А можно использовать параметр «index» и указать в качестве значения звездочку «*».
/Index:*

Здравствуйте, подходит ли эта процедура для windows xp embedded?

Для Windows XP любых редакции эта процедура не подойдет — там совершенно другая модель дистрибутива. Там даже wim-файла нет.

Добрый день. Подскажите пожалуйста, при интегрировании драйверов выдает ошибку 2.
Не удалось получить доступ к образу.
Убедитесь, что путь к образу и каталог Windows образа существуют и учетная запись обладает правами на чтение папки.
DISM.exe /image:C:\intel\img/Add-Driver /driver:C:\Users\1\Desktop\drivers/recurse /ForceUnsigned
пытаюсь проделать это с win 12 serv

Андрей, проверьте наличие пробелов перед параметрами /Add-Driver, /recurse.
Должно быть примерно так:
DISM.exe /image:C:\intel\img /Add-Driver /driver:C:\Users\1\Desktop\drivers /recurse /ForceUnsigned

Здравствуйте, я наверное накосячил, у меня после второй команды появилось
«Ошибка: 0xc1420113
Пользователь попытался подключить образ в каталоге, в котором уже содержится подключенный образ.»
подскажите пожалуйста, как решить?

Похоже, что в папке, в которую Вы пытаетесь смонтировать образ, уже есть какие-то файлы.
Или удалите эти файлы, или монтируйте в другую (чистую) папку.

Здравствуйте!
Подскажите ,пожалуйста, в чем проблема. Во время интеграции драйверов выдает ошибку 0xc0000135.
В логах следующее:
2017-12-14 13:36:24, Info DISM DISM.EXE:
2017-12-14 13:36:24, Info DISM DISM.EXE:
2017-12-14 13:36:24, Info DISM DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=amd64, Number of processors=4
2017-12-14 13:36:24, Info DISM DISM.EXE: Executing command line: DISM.exe /image:D:\winpe\mount /Add-Driver /driver:D:\winpe\usb3 /recurse /ForceUnsigned
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. — CDISMProviderStore::GetProviderCollection
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\WimProvider.dll — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\WimProvider.dll. — CDISMProviderStore::Internal_LoadProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\FolderProvider.dll — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\FolderProvider.dll. — CDISMProviderStore::Internal_LoadProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Provider has not previously been encountered. Attempting to initialize the provider. — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Loading Provider from location C:\Windows\System32\Dism\CompatProvider.dll — CDISMProviderStore::Internal_GetProvider
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Connecting to the provider located at C:\Windows\System32\Dism\CompatProvider.dll. — CDISMProviderStore::Internal_LoadProvider
2017-12-14 13:36:24, Info DISM DISM.EXE: Got the collection of providers. Now enumerating them to build the command table.
2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: WimManager
2017-12-14 13:36:24, Info DISM DISM.EXE: Succesfully registered commands for the provider: WimManager.
2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: FolderManager
2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: DISM Log Provider
2017-12-14 13:36:24, Info DISM DISM.EXE: Attempting to add the commands from provider: Compatibility Manager
2017-12-14 13:36:24, Info DISM DISM.EXE: Succesfully registered commands for the provider: Compatibility Manager.
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. — CDISMProviderStore::GetProviderCollection
2017-12-14 13:36:24, Info DISM DISM Provider Store: PID=5952 Getting the collection of providers from a local provider store type. — CDISMProviderStore::GetProviderCollection
2017-12-14 13:37:27, Error DISM DismHostLib: Failed to create DismHostManager remote object. Checking for dismhost.exe exit code.
2017-12-14 13:37:27, Info DISM DismHostLib: Found dismhost.exe exit code.
2017-12-14 13:37:27, Error DISM DISM Manager: PID=5952 Failed to create Dism Image Session in host. — CDISMManager::LoadImageSession(hr:0xc0000135)
2017-12-14 13:37:27, Warning DISM DISM Manager: PID=5952 A problem ocurred loading the image session. Retrying. — CDISMManager::CreateImageSession(hr:0xc0000135)
2017-12-14 13:38:27, Error DISM DismHostLib: Failed to create DismHostManager remote object. Checking for dismhost.exe exit code.
2017-12-14 13:38:27, Info DISM DismHostLib: Found dismhost.exe exit code.
2017-12-14 13:38:27, Error DISM DISM Manager: PID=5952 Failed to create Dism Image Session in host. — CDISMManager::LoadImageSession(hr:0xc0000135)
2017-12-14 13:38:27, Error DISM DISM Manager: PID=5952 Failed to load the image session from the temporary location: C:\Users\user\AppData\Local\Temp\3AE0DFBC-BBAE-4823-9B97-FF1E3E48EFA4 — CDISMManager::CreateImageSession(hr:0xc0000135)
2017-12-14 13:38:27, Error DISM DISM.EXE: Could not load the image session. HRESULT=C0000135
2017-12-14 13:38:27, Error DISM DISM.EXE: Unable to start the servicing process for the image at ‘D:\winpe\mount’. HRESULT=C0000135
2017-12-14 13:38:27, Info DISM DISM.EXE: Image session has been closed. Reboot required=no.

Также учтите что интегрирование (если например не видит контроллер USB или жестких дисков) необходимо добавлять в образ boot.wim

Пытаюсь интегрировать драйвера в чужой wim (из образа LiveDVD)
При добавлении драйвера выдаёт ошибку:

Cистема DISM
Версия: 10.0.16299.15
Ошибка: 0x80029c4a
Такой запрос не поддерживается.

Здрвствуйте Сергей!
Ввожу 2.команду:DISM /Mount-Wim /WimFile:»C:\Pro\sources\install.wim» /Index:4 /MountDir:C:\IMG.(система стоит на диске С. Идёт в всё поплану:подключается образ.Операция успешно завершена. В итоге: папку IMG копироваются папки диска С :
Program Files,Program Files (x86), :Windows, Пользователи.Далее привводе команды DISM.exe /image:С:\Img /Add-Driver /driver:С:\Drivers /recurse /ForceUnsigned.Ошибка 3.Где-то,я накосячил.

Здрвствуйте Сергей!
Ввожу 2.команду:DISM /Mount-Wim /WimFile:»C:\Pro\sources\install.wim» /Index:4 /MountDir:C:\IMG.(система стоит на диске С. Идёт в всё поплану:подключается образ.Операция успешно завершена. В итоге: папку IMG копироваются папки диска С :
Program Files,Program Files (x86), :Windows, Пользователи.Далее привводе команды DISM.exe /image:С:\Img /Add-Driver /driver:С:\Drivers /recurse /ForceUnsigned.Ошибка 3.Где-то,я накосячил.

Ребята подскажите как интегрировать несколько драйверов от разных материнских плат в один образ.

Спасибо за совет!
Удалил папку и создал заново.
Все прошло.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Как интегрировать драйвера ahci в дистрибутив windows 7
  • Как интегрировать sata драйвера в дистрибутив windows xp
  • Как интегрировать microsoft office в образ windows 7
  • Как инициализировать новый жесткий диск в windows 10
  • Как инициализировать жесткий диск windows 7 ошибка ввода вывода