Интеграция драйверов USB 3.0 в дистрибутив Windows 7
RTM дистрибутив Windows 7 «из коробки» не поддерживает USB 3.0, поэтому могут возникнуть проблемы с установкой Windows 7 на компьютере / ноутбуке, на котором имеются только порты USB 3.0 (а этот так на большинстве новых устройствах). В частности в программе установки Windows 7 может не работать USB клавиатура и мышь, либо установщик будет требовать загрузить драйвера для привода CD/DVD:
Не найден необходимый драйвер носителя. Это может быть драйвер DVD-ДИСК, USB или жесткий диск. Если у вас есть компакт-диск, DVD-диск или USB-устройство флэш-памяти с этим драйвером, вставьте его.
A required CD/DVD drive device driver is missing. If you have a driver floppy disk, CD, DVD, or USB flash drive, please insert it now.
Note: If the Windows installation media is in the CD/DVD drive, you can safely remove it for this step
Для корректной установки Windows 7 в некоторых моделях компьютеров в BIOS можно отключить режим USB 3.0, переключившись в режим совместимости USB 2.0 (Legacy USB 2.0). Для всех остальных случаев придется модифицировать установочный дистрибутив Windows 7 и интегрировать в его загрузочный и установочный образ драйвера для поддержки USB 3.0 под чипсет вашей материнской карты.
В первую очередь найдите и скачайте с сайта производителя USB 3.0 драйвера под ваш чипсет (в нашем примере это Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 7 Series/C216 Chipset Family). Создадим каталог c:\tmp , внутри которого создадим 2 папки: mount и USB3 . Распакуйте архив с драйверами в каталог USB3.
Далее нужно обновить установочный образ Windows (он может быть представлен в виде iso файла или уже быть скопированным на установочную USB флешку ). Нам понадобятся два файла, которые нужно скопировать в каталог c:\tmp:
Откройте коммандную строку с правами администратора и с помощью DISM смонтируйте загрузочный образ WinPE (boot.wim) и интегрируйте в него драйвера для поддержки USB 3.0 по ранее рассмотренной процедуре :
dism /mount-wim /wimfile:c:\tmp\boot.wim /index:2 /mountdir:c:\tmp\mount
dism /image:c:\tmp\mount /add-driver:»c:\tmp\usb3″ /recurse
Следующие строки свидетельствуют о том, что драйвер был успешно добавлен в образ:
Installing 1 of 6 — c:\tmp\usb3\Drivers\HCSwitch\x64\iusb3hcs.inf: The driver package was successfully installed.
Сохраним изменения в образе и отмонтируем его:
dism /unmount-wim /mountdir:c:\tmp\mount /commit
Аналогичным образом нужно обновить сам образ системы в файле install.wim. Тут главное отличие в том, что образ install.wim может содержать несколько редакций Windows 7 с разными индексами. Поэтому придется интегрировать драйвера в ту редакцию или редакции Windows 7, которую вы планируете установить.
Список доступных редакций системы в образе можно получить так:
dism /Get-WimInfo /WimFile:c:\tmp\install.wim
В нашем примере в образе имеются 4 редакции. Мы добавим драйвер USB 3.0 в редакцию Windows 7 PROFESSIONAL с индексом 3 (именно этот номер мы будем использовать для адресации редакции в DISM).
Затем по аналогии с командами выше, загрузим драйвера в образ системы:
Интеграция драйверов в дистрибутив 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.Где-то,я накосячил.
Ребята подскажите как интегрировать несколько драйверов от разных материнских плат в один образ.
Спасибо за совет!
Удалил папку и создал заново.
Все прошло.