Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   [статья] Установка драйверов с USB- или DVD-диска (http://forum.oszone.net/showthread.php?t=129243)

Vadikan 20-01-2009 14:00 1013779

[статья] Установка драйверов с USB- или DVD-диска
 
Автоматическая установка Windows Vista » Установка драйверов с USB- или DVD-диска
В этой статье описан процесс установки драйверов во время прохода 1 windowsPE. Поведение Windows PE корректируется таким образом, чтобы в ней запустился командный файл, задающий особую переменную среды. Эта переменная среды будет соответствовать букве диска, на котором расположены драйверы. А в файле ответов с помощью этой переменной будет заранее задан путь к папке с драйверами....


Читать дальше...

CtrlSoft 20-01-2009 23:13 1014270

К сожалению метод не срабатывает! Как ни крути... :(


Vadikan 21-01-2009 01:05 1014363

CtrlSoft, какие драйверы устанавливались? Файл ответов? Конфигурация компьютера? Срабатывает ли установка при интеграции этих драйверов?
Цитата:

Цитата CtrlSoft
Как ни крути... »

Я этот метод не сам придумал :) Он, например, описан в руководстве по WAIK в статье "Добавление драйверов устройств в ходе установки Windows".

CtrlSoft 21-01-2009 10:06 1014535

Vadikan, Драйверы которые пытался установить:

P5K-DELUXE_01_Chipset (Intel Chipset Inf Update Program v8.3.0.1013 for Windows 32bit 20002000 serverXPMCE2003Vista & 64bit XP2003Vista(WHQL))
P5K-DELUXE_02_RAID (JMicron JMB363 RAID Driver WHQL V1.17.15.0)
P5K-DELUXE_03_VIDEO (181.20_geforce_winvista_64bit_international_whql)
P5K-DELUXE_04_ATK (Версия 1043.4.0.0 ACPI driver for ATK 0110 virtual device for Windows 2000XP(32bit and 64bit)2003(32bit & 64bit)VISTA(32bit & 64bit))
P5K-DELUXE_05_LAN (Marvel8056_Lan Версия 8.56.6.3)
P5K-DELUXE_06_SOUND (SoundMAX, Версия V6.10.01(2).6280(JVB) Blackhawk)
P5K-DELUXE_07_WIFI (ASUS WiFi-AP V6.1285.0215.2007)

Конфигурация ПК:

Мат. Плата ASUS P5K DELUXE
Процессор Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
Память (RAM) 4,00 ГБ, Patriot, PC6400
Графика - nVidia GeForce 8800GTS

Файл ответов

Код:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>ru-RU</UILanguage>
            </SetupUILanguage>
            <InputLocale>en-US; ro-RO; ru-RU</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <ProductKey>
                    <WillShowUI>OnError</WillShowUI>
                    <Key>12345-12345-12345-12345-12345</Key>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
                <FullName>Vasya Pupkin</FullName>
                <Organization>CtrlSoft</Organization>
            </UserData>
            <Display>
                <ColorDepth>32</ColorDepth>
                <HorizontalResolution>1680</HorizontalResolution>
                <VerticalResolution>1050</VerticalResolution>
            </Display>
            <ImageInstall>
                <OSImage>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/NAME</Key>
                            <Value>Windows Vista ULTIMATE</Value>
                        </MetaData>
                    </InstallFrom>
                    <WillShowUI>OnError</WillShowUI>
                </OSImage>
            </ImageInstall>
            <Restart>Shutdown</Restart>
        </component>
        <component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DriverPaths>
                <PathAndCredentials wcm:action="add" wcm:keyValue="1">
                    <Path>%DiskRoot%\Drivers</Path>
                </PathAndCredentials>
            </DriverPaths>
        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Security-Licensing-SLC-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SkipAutoActivation>true</SkipAutoActivation>
        </component>
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <Path>cmd /c &quot;FOR %i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %i:\DiskRoot.txt SETX DiskRoot %i: -m&quot;</Path>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US; ro-RO; ru-RU</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Display>
                <ColorDepth>32</ColorDepth>
                <DPI>96</DPI>
                <HorizontalResolution>1680</HorizontalResolution>
                <VerticalResolution>1050</VerticalResolution>
            </Display>
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <NetworkLocation>Home</NetworkLocation>
                <ProtectYourPC>1</ProtectYourPC>
                <SkipUserOOBE>true</SkipUserOOBE>
            </OOBE>
            <TimeZone>GTB Standard Time</TimeZone>
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <Description>RunOnceEx.cmd</Description>
                    <Order>1</Order>
                    <CommandLine>%DiskRoot%\Install\RunOnceEx.cmd</CommandLine>
                </SynchronousCommand>
            </FirstLogonCommands>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <Description>CtrlSoft</Description>
                        <DisplayName>CtrlSoft</DisplayName>
                        <Group>Administrators</Group>
                        <Name>CtrlSoft</Name>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:m:/sources/install.wim#Windows Vista ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>



...При интеграции установка срабатывает, проблема только с драйвером от nVIDIA v.181.20. Старые версии устанавливались, а с выходом этой почему-то не хочет.

Цитата:

Как ни крути...
Я пробавал установить только драйверы чипсета, отдельно пытался только звук, однако это не помогло...

Vadikan 21-01-2009 13:41 1014726

Цитата:

Цитата CtrlSoft
Я пробавал установить только драйверы чипсета, отдельно пытался только звук, однако это не помогло... »

Другими словами, при попытке установить любой и единственный драйвер этим способом установка ОС прерывается с такой ошибкой? Нужно разобраться, на каком этапе она происходит - при загрузке Windows PE или уже непосредственно установки Windows.

В SetDiskRoot.cmd добавьте
Код:

pause
перед
Код:

X:\setup.exe
Это помимо прочего позволит увидеть, отрабатывает ли задание переменной setdiskroot.

Меня смущает то, что в ошибке говорится о драйверах, необходимых для загрузки. К загрузке установка этих драйверов по идее отношения не имеет - просто они добавляются к системе на этапе Windows PE.

Возьмите чистый install.wim для проверки.

CtrlSoft 21-01-2009 14:46 1014781

Цитата:

Цитата Vadikan
установка ОС прерывается с такой ошибкой?

Да, именно так.

Цитата:

Цитата Vadikan
на каком этапе она происходит

при загрузке Windows PE, после сообщения "Пожалуйста, подождите".

Цитата:

Цитата Vadikan
В SetDiskRoot.cmd добавьте...

Хорошо, займусь этим позже.

P.S. На данном сайте, вместо install.wim монтируется второй индекс из образа boot.wim. К сожалению данный метод я пока не испробовал...

Vadikan 21-01-2009 15:50 1014835

Цитата:

Цитата CtrlSoft
вместо install.wim монтируется второй индекс из образа boot.wim. К сожалению данный метод я пока не испробовал... »

Да, точно :) Конечно, нужно править образ WinPE (boot.wim), ведь именно этот этап мы конфигурируем. Я просто скопировал все процедуры подключения образа из других статей и забыл поправить :)

Исправлено, спасибо за отчет!

CtrlSoft 23-01-2009 08:09 1016534

Vadikan, привет! Снова проблема. При загрузке Windows PE все обрабатавается хорошо. Вылезает окошко с поиском файла DiskRoot.txt, несколько секунд устанавливаются драйвера. После этого идет установка ОС. Но при переходе на "Завершение работы" (до первой перезагрузки), установка ОС просто замерает! Ничего не происходит. Если до этого пункты "Копирование файлов", "Извлечение файлов" и так далее, выделялись жирным шрифтом, то после "Установка обновлений" и переходе к "Завершение установки" этого больше нет. Вместо черного жирного шрифта - серый. Обычно данный проход занимал, по моему, около 4 мин. Сейчас, не знаю :) Я подождал 12 мин. и надоело. Перезагрузил ПК. В чем может быть проблема?

P.S. Конфигурация и драйверы те же.

Vadikan 23-01-2009 15:23 1016938

CtrlSoft, трудно сказать... хотя бы логи нужны. Может, стоит еще подождать?

CtrlSoft 23-01-2009 15:31 1016951

Цитата:

Цитата Vadikan
Может, стоит еще подождать? »

Может быть... :unsure:

Boa Soft 23-01-2009 21:24 1017260

Цитата:

Цитата Vadikan
CtrlSoft, трудно сказать... хотя бы логи нужны. Может, стоит еще подождать? »

Я первым делом пытался таким методом устанавливать драйвера. Хоть и гибко, но не понравилось. Причина - если собрать пакет хотябы на самые распрастраненные железки, то установка идет минут на 40 дольше. Все дело в отличии механизма у хп и висты. Хп просто ставит только нужные драйвера для конкретного железа. Виста же загоняет все драйвера из предлорженых в репозитарий. Поэтому я и сделал выбор в сторону метода интеграции драверов в образ. Интеграция идет достаточно долго, но зато время установки почти не удлиняется. peimg сразу "загоняет" все драйвера в репозитарий.

PS Я приводил фрагмент скрипта для peimg. Так вот, их у меня 2. Один работает с install.wim и обрабатывает все драйвера. Второй - с boot.wim и брабатывает только папку с драверами устройств хранения (mass storage). В результате нет проблем с нестандартными контроллерами.

Vadikan 23-01-2009 22:58 1017380

Boa Soft, спасибо, я внес в статью более внятное разъяснение по поводу недостатков способа.

Pozia 12-04-2009 23:11 1092246

Vadikan, с обнавлениями вроде как разобрался. Следующий вопросик по установке драйверов. В справочнике есть вот такой cmd файл:

@ECHO OFF
SET DiskRoot=NULL
:SearchDiskRoot
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\DiskRoot.txt SET DiskRoot=%%i:
IF NOT "%DiskRoot%"=="NULL" GOTO StartSetup
GOTO SearchDiskRoot
:StartSetup
ECHO DiskRoot=%DiskRoot%
X:\setup.exe

Сразу подумал что он у меня не сработает по причине описанной здесь и расстроился. Но не тут то было. Данный файл нормально отробатывает без ошибки. Скажите почему? Просто любопытно. Я так пологаю в строчке IF NOT "%DiskRoot%"=="NULL" GOTO StartSetup заключена изюминка cmd файла? Я прав?

И что значит GOTO SearchDiskRoot? а также X:\setup.exe? Откуда с диска X возмется setup.exe?

Также в учебнике написано: "Все подготовленные вами драйверы во время установки будут помещены в хранилище драйверов Windows Vista вне зависимости от того, установлены в системе соответствующие им устройства или нет. Поэтому длительность установки операционной системы увеличивается" В принципе время установки для меня не критично. Интересует что за хранилище драйверов Windows? По какому пути находится? Я так понимаю мои драйвера скопируются в хранилище и только тогда оттуда установятся. Если это так то будут ли затем эти драйвера удалены из хранилища? если не будут то я так пологаю их можно будет удалить в ручную. Я прав?

Спасибо заранее за ответы

Vadikan 13-04-2009 00:21 1092305

Pozia, этот пакетный файл отрабатывает на этапе WindowsPE, еще до начала установки. Фактически этот файл заменяет командную строку WinPE, ему передается управление. Установку Windows запускает последняя команда, а X - это буква диска Windows PE.

Хранилище драйверов - это системная папка :) Насчет удаления лишних потом... не знаю, я бы не стал ковыряться, они не так много места занимают.

Pozia 13-04-2009 11:14 1092600

Vadikan, зачем в cmd файле о котором я выше спрашивал задан цикл поиска файла diskroot.txt? Допустим у меня этот маркерный файл лежит на флешке с драйверами. Все хорошо. Ставлю винду с драйверами. А если вдруг забуду флешку вставить, или нет дров под железо, или винду ставит человек который не в зуб ногой об этом файле и что он должен быть в корне какого нибудь диска? Установка винды ведь замрет пока не найдет этот файл. Или я не так понимаю?

Vadikan 13-04-2009 23:04 1093274

Pozia, цикл нужен, чтоб не забывали diskroot.txt :) Уберите его, кто ж вам мешает.

k14us 30-08-2009 23:30 1207531

Pozia, а для гибкости можно еще и добавить вопрос, желает ли пользователь доставлять драйвера, для этого сразу после @echo off добавляем

set ACTION=NULL
set /P ACTION=Search for drivers? (Y or N): %=%
if /I %ACTION%==N goto StartSetup

Vadikan, при установке системы и драйверов с одной и той же флешки либо переносного жесткого диска, получаю следующее сообщение при начале копирования файлов установщиком (т.е. после отработки скрипта по поиску метки устройства и запуска установщика)

Цитата:

Windows не удалось очистить диск 0. Конечный диск, раздел или том не поддерживает указанную операцию. Возникла ошибка при применении параметров <DiskConfiguration> файла ответов для автоматической установки.
Код ошибки: 0x80300024
можно было бы предположить что что-то напортачил с файлом ответов, но когда папка drivers пуста всё проходит отлично

предпологал что переменная DiskRoot может как-то пересекаться с системной, при установке не с DVD, но тогда бы не работало и при пустой папке

есть идеи?

Vadikan 31-08-2009 00:35 1207568

k14us, какую ОС устанавливаете? Пожалуйста, приведите файл ответов. Правила публикации файла ответов вы найдете в шапке темы [статья] Файл ответов (AutoUnattend.xml) .:[все вопросы, параметры, уточнения, etc]:..

bogomolv 07-01-2010 18:54 1313420

Vadikan
Случайно обнаружил, что при установке Win7 все время ставил драйвера не так, как описано в статье - не на проходе 1 windowsPE, а на offlineServicing.
Подтверждение правильности описанного в статье способа нашел в "Windows AIK User's Guide", где рекомендуется ставить драйвера именно через 1 windowsPE.
Мой способ нигде не описывается, но в "Unattended Windows Setup Reference" offlineServicing pass также предлагается для "add language packs, updates, device drivers...". (Скорее всего, я именно отсюда скопировал раздел файла ответов и, не обратив внимание на детали, пользовался этим необычным способом...)

Какой же способ более "правильный"?
Мой способ очень прост: дрова - в папку $OEM$\$1\Drivers дистрибутива, а в AutoUnattend.xml те же самые строки с <DriverPaths> добавить не в <settings pass="windowsPE">, а в <settings pass="offlineServicing">.
В моем варианте нет проблемы с определением местоположения дров - на стадии offlineServicing дрова из папки $OEM$\$1\Drivers будут уже скопированы в "C:\Drivers". Этот путь и нужно указать в <DriverPaths> в файле ответов.
Также не наблюдается проблем с "установка идет минут на 40 дольше", описанных Boa Soft. Наоборот, установка драйверов nVidia из offlineServicing, например, "экономит" пару минут, по сравнению с установкой тех же дров на стадии FirstLogon. (Хотя, стоит оговориться, что на флешку помещаю не все возможные дрова, а только конкретной машины.)

Можно, как вариант, и сразу указывать путь к дровам на флешке (без их копирования). Но, я столкнулся с проблемой некорректной установки некоторых драйверов с флешки (установка из C:\Drivers идет нормально, а с флешки те же дрова ставятся криво). Кроме того, не знаю, как при этом варианте не задавать жестко букву диска флешки (описанные на сайте приемы с WindowsPE и Синхронной командой не годятся для offlineServicing).

CtrlSoft 08-01-2010 03:05 1313844

кстати про букву диска, - команда определяющая букву диска не хочет почему-то работать... :huh:

bogomolv 08-01-2010 12:34 1314038

CtrlSoft
Неправильный синтаксис командной строки. Переменная должна быть названа %i.
Обозначение %%i используется в батниках, а не в самой командной строке.

CtrlSoft 08-01-2010 12:59 1314049

bogomolv, :bow: ...я об этом не подумал... ))


Время: 20:31.

Время: 20:31.
© OSzone.net 2001-