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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Распаковка инсталляторов от nVidia и ATi (http://forum.oszone.net/showthread.php?t=42417)

Sve 13-12-2004 03:34 279722

Распаковка инсталляторов от nVidia и ATi
 
В общем, при первичной распаковке, все файлы имеют неполное расширение, заканчивающееся на _ и шифрованы. Как бы расшифровать? Спрособ описанный для инсталляторов Intell здесь не прокатывает, что setup -a, что setup -a -p C:\123123123, даже если этот каталог сам создаешь на диске. А очень хочется постоянно дополонять диск свежими дровами. Кстати, еще вопрос: почему, если имеется свежие драйвера, но не подписанные и драйвера, которые идут вместе с Windows, винда предпочтет именно подписанные при автоматической установке? Как поправить?

Akufrol 14-12-2004 07:25 279982

Ну вообще-то это надо прописать в winnt.sif в разделе Unattended
Надо поставить параметр DriverSigningPolicy=Ignore
И тогда винде будет пофигу на подпись, она поставит самые свежие дрова
Вообще у меня прокатывало, но есть подозрение, что она все же свои дрова больше любит :-)

qeraser 14-12-2004 12:40 280070

Способ проверен на 66.93_win2kxp_english

1) Распковываешь архив (например WinRAR)
2) Создаешь в распакованной папке cmd файл (например reduce-size.cmd)
такого содержания:
Код:

TITLE nVidia 66.93 driver cleanup
@echo off

ECHO undoing the idiotic compression
PAUSE
md expanded
expand *.*_ expanded
del /Q *.*_
cd expanded
ren *.dl_ *.dll
ren *.tv_ *.tvp
ren *.sy_ *.sys
ren *.ex_ *.exe
ren *.cf_ *.cfg
ren *.hl_ *.hlp
ren *.cp_ *.cpl
ren *.xm_ *.xml
move /Y *.* ..
cd ..
rd expanded
ECHO deleting useless setup utility
del setup.skin
del setup.iss
del setup.inx
del setup.ini
del setup.ibt
del setup.exe
del setup.bmp
del layout.bin
del engine32.cab
del data2.cab
del data1.cab
del data1.hdr

3) собственно запускаешь его. Как бонус будут удалены ненужные файлы

Теперь мой вопрос к знатокам.
Возмодно ли как-нибудь поджать дрова при помощи сжатия (cab и т.д)
при использовании OemPnPDriversPath, для уменьшения размера.

EgOrus 14-12-2004 16:05 280120

qeraser
нельзя
есть вариант с подменой файла setup.exe и использованием батника, кот. распаковывает дрова с диска на винт, с помощью спец. утилитки рекурсивно сканирует папки с дровами и вносит в реестр пути для поиска дров, потом запускается оригинальный setup.exe как start setup.exe, выполняется и после завершения отдает управлению опять батнику, кот. подчищает за собой и возвращет реестр в первозданный вид.
преимущества - экономия места (у меня дрова на 120 мег, занимают в архиве 32), ненужно прописывать все папки с дровами в ключе OemPnPDriversPath.
недостатки - сложность в применении для начинающих, и самое главное изменение дистрибутива, т.е. любой вид установки буть то unattend или нет, будет использовать данный метод
Тема на MSFN - SOLVED: drivers from CD

Vadikan 14-12-2004 20:38 280171

A если положить драйверы в SFX архив (где указать путь для распаковки %systemdrive%\Drivers) разместить его, скажем в $OEM$\$1\Temp и прописать команду на его запуск в winnt.sif
Код:

[GuiUnattended]
DetachedProgram = "%SystemDrive%\Temp\drivers.exe"

Тогда он запустится на Т-39, распакует архив, а когда дело дойдет до установки драйверов, то в соответствии с путем в OemPnPDriversPath они и поставятся. Т.е.
Код:

[Unattended]
OemPnPDriversPath="Drivers\000_intel_INF;Drivers\001_gigabit_LAN;Drivers\002_monitor"

Мне кажется так проще будет, чем какие-то утилиты применять (хотя я тему drivers from CD даже не читал, сорри)

EgOrus 15-12-2004 10:37 280273

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

Появился вопрос связанный установкой неподписанных драйверов (без WHQL):
в winnt.sif есть 2 ключа отвечающие за поведение системы при установки драйверов без WHQL подписи
Цитата:

DriverSigningPolicy=Ignore - с этим все понятно, позволяет устанавливать неподписанные драйвера
NonDriverSigningPolicy=Ignore - этот насколько я понимаю отвечает за поведение системы при нахождение неподписанного драйвера (не выдает предупреждения о том что драйвер не подписан)

С другой стороны я читал на msfn, что неподписанные дрова не устанавливаются даже если в winnt.key выставлены вышеуказанные ключи. Объясняется это тем что за установку отвечает 3 ключика в реестре
Цитата:

'HKLM\Software\Microsoft\Driver Signing'
'HKCU\Software\Microsoft\Driver Signing'
'HKCU\Software\Policies\Microsoft\Windows NT\Driver Signing\BehaviorOnFailedVerify'
Причем первый ключ виндовый setup при запуске автоматически выставляется на 1, даже если его ручками выставить нужным образом в HIVESFT.INF. Второй ключ винда автоматически выставляет с 0 (Ignore) на 1 (Warn), при каждой попытке установить неподписанный драйвер (как пишет microsoft, это одна из функций ситсемы WindowsFileProtection).
По идее как раз эту проблему должны решать ключи DriverSigningPolicy и NonDriverSigningPolicy.

Откуда взялась проблема? Сейчас я использую вышеописанный метод с подменой setup.exe и запуском батника, кот. стартовал помимо всего прочего утилитку WatchDriverSigningPolicy.exe, отслеживающую вышеуказанные ключи в реестре и правила их нужным образом когда необходимо.
В связи с постом Vadikan хочу снова попробовать методу установки дров на t39, но не уверен в действенности ключей DriverSigningPolicy и NonDriverSigningPolicy, и времени на тестирование возможных вариаций мало. Есть конечно простой выход - прописать запуск WatchDriverSigningPolicy.exe после распаковки дров через сценарий SFX. Но хочется для себя уяснить необходимость этого.
Кто нибудь точно может сказать достаточно ли прописать лишь 2 ключа в winnt.sif, или нужно предпринимать еще что-то, для нормальной установки неподписанных драйверов.

VseDoFeNi 16-12-2004 00:18 280460

2 ALL
C дровами для nVidia детально не разбирался. Дрова для ATI...
Раньше делал так:
1 в TC извлекал из инсталятора папку 2KXP_INF
2 копируем ее содержимое в $OEM$\$1\DRIVERS\GR\ATI
3 туда же кладем папку с распакованной control-panel
4 в любой батник, запускаемый из cmdlines.txt добавляем строку
if exist %WINDIR%\system32\drivers\ati2mtag.sys start /wait %SystemDrive%\Drivers\Gr\ATI\control-panel\Setup.exe /S

В результате получаем установленные драйверы видюшки ATI и Control-Panel.
Подобную процедуру можно проделать с драйверами Intel Extreme Graphics.

Ну и не забыть прописать правильные пути в winnt.sif.

Можно конечно сэкономить место на CD с упаковкой драйверов и распаковкой их на Т-39, но это отдельная тема.

qeraser 16-12-2004 11:59 280576

EgOrus
Неподписаные драйвера NVIDIA, которые у меня были не установились (из OemPnPDriversPath). Официальные же (подписаные) встали как положено. На MSFN слышал, что большинство неподписаных все-же устанавливается. Поэтому надо тестить самому. Это что касается NVIDIA, как с другими драйверами, не знаю. Интересно что думает по этому поводу народ, обладающий большей статистикой и опытом установки дров.

Способ от Vadikan обладает одним неудобством:
в секцию DetachedProgram можно внести только один параметр:
например DetachedProgram = "%SystemDrive%\Temp\drivers.exe".
Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать. Хотя это не критично, но создает определенную путаницу в структуре диска. Нет наглядности расположения программ, драйверов и т.д, ведь не все надо архивировать. Что думаете по этому поводу?

Vadikan 17-12-2004 00:12 280766

qeraser
Цитата:

Способ от Vadikan обладает одним неудобством:
в секцию DetachedProgram можно внести только один параметр:
например DetachedProgram = "%SystemDrive%\Temp\drivers.exe".
Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать.

Хм, а если *.CMD файл создать, указать к нему путь, а в нем уже прописать команды на запуск остальных задач?

qeraser 17-12-2004 12:25 280911

Vadikan

Я не подумал о таком варианте. Спасибо, буду пробовать.

EgOrus 17-12-2004 13:07 280921

qeraser
Vadikan
Я же писал что бат файлы на t39 не отрабатываются (даже через cmd.exe /c run.cmd), и это один из ньюансов. Компилите exe'шники.

TrueAlex 17-12-2004 14:24 280942

EgOrus
Можно winrar'ом заархивировать этот cmd в exe с автозапуском этого cmd, который и запустит все остальное ;))))))))))))

В дистрибутиве винды есть файл drivers.cab, который, как я понимаю, как раз содержит все виндовые дрова. Может быть можно в него добавить и свои? По-крайней мере, XPCreate с какой-то целью его перепаковывает....

EgOrus 17-12-2004 14:42 280945

TrueAlex
Не уверен что запустит, но идея интересная, я думаю что на этом этапе установки запуск cmd-файлов просто ограничен. тогда уж легче сделать каскад из sfx-архивов: прописать запуск маркерного архива по окончению распаковки sfx-архива с дровами.
Можно и вручную драйвера добавить и через nlite, вариантов много, но смысл в том чтобы как можно меньше менять source-дистрибутив, т.к. если мне нужна чистая установка, предположем для отладки или установки на глючное железо, то я не смогу ее осуществить, т.к. изменен сам дистрибутив.
Цитата:

Цитата qeraser
Т.е придется в один архив (например drivers.exe) включить и маркерные файлы (если используются) и все осталное что требуется поджать.

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

Кстати мне до сих пор не удалось заставить работать батники (или скомпилить нормальный рабочий exe из bat'ника, - у меня пока batники с переменными и конструкциями типа for... не выполняются). Думаю может плюнуть и написать длиннющую CMD строчку кот. будет заменять батник.

VseDoFeNi 17-12-2004 18:56 281000

EgOrus
Цитата:

Можно и вручную драйвера добавить и через nlite, вариантов много, но смысл в том чтобы как можно меньше менять source-дистрибутив, т.к. если мне нужна чистая установка, предположем для отладки или установки на глючное железо, то я не смогу ее осуществить, т.к. изменен сам дистрибутив.
Короче делаем так:
winn1.sif
***
***
OemPnPDriversPath="Drivers\пути_ко_всем_дровам
***
DetachedProgram = "%systemdrive%\drivers\drivers.exe"
***
и т.д. в том же духе

winn2.sif
***
OemPnPDriversPath="Drivers\исключаем_ненужные_дрова
***
DetachedProgram = "%systemdrive%\drivers\drivers.exe"
***
и т.д. и т.п.

winn3.sif
***
OemPnPDriversPath="Drivers\можно_вааще_ничего_не_писать
***
DetachedProgram = можно_вааще_ничего_не_писать
***
все остальное.

winn4.sif
winn5.sif
winn6.sif

Вариантов море, давно юзаю. Хоть для каждой материнки свой sif пиши или для каждого случая. И плевать на то, что все это будет скопировано на винт, в конце установки закилять не долго. А менять будешь только драйверы в sfx архиве или что там еще кому нибудь надо.
Кстати, ни nLite ни Xplode-----XPCreate не юзаю.

EgOrus 17-12-2004 19:29 281010

VseDoFeNi
гм... а это к чему? обсуждается совсем не это, то что ты описал и так известно, имелось ввиду интеграцию дров в drivers.cab дистрибутива винды, и проблема при выборе маркера, т.к. как раз в ключе DetachedProgram, и выполняется sfx-архив, кот. распаковывает маркерный файл, определяющий что из софта ставить и какие настройки применять. В условиях ограниченности CD 700 мегабайтами, паковать одно и тоже не имеет смысла.

EgOrus 17-12-2004 20:21 281032

Цитата:

Цитата TrueAlex
Можно winrar'ом заархивировать этот cmd в exe с автозапуском этого cmd

работает :) правда локальные переменные созданные внутри cmd, не воспринимаются...

Vadikan 17-12-2004 21:07 281043

EgOrus
Цитата:

правда локальные переменные созданные внутри cmd, не воспринимаются...
Это задаваемые через SET?

EgOrus 17-12-2004 21:29 281050

Vadikan
да нет, где-то ошибся, все вроде нормально, работает.
Это даже лучше чем компилить exe, т.к. позволяет в дальнейшем редактировать cmd.
Сейчас еще попробую vbs, если с ним не получится, опять поропбую cmd-файлы прилепить.
TrueAlex
большой респект за идею :)

Не получилось, а vbs вообще не должны на этой стадии установки работать :( Даже cmd.exe на этой стадии не запускаются.

TrueAlex 18-12-2004 09:43 281174

EgOrus
Я, честно говоря, это в шутку сказал, не думал, что действительно срабоает :)
Кстати, тогда вместо Winrar можно еще использовать iexpress. Ну это для тех кого вопрос лицензионности волнует или нету Winrar.

Я кстати, немного в тему не въезжаю ;) А зачем делать эти маркерные файлы и т.п. вещи применительно к драйверам? Почему не запихать все в одном месте, винда же сама найдет, то что надо... Или бывают какие-то проблемы при установке? Я пока что не сталкивался, правда и устанавливал, только лишь на две машины, ну и на виртуальные еще...

EgOrus 20-12-2004 21:44 281905

Цитата:

Цитата TrueAlex
А зачем делать эти маркерные файлы и т.п. вещи применительно к драйверам?

Проблема была в общем-то одна: при записи на CD часто нехватает места, особенно в случае когда делаешь универсальный не DVD диск, поэтому драйвера пакуются, и распаковываются в t39, чтобы уже быть готовыми к употреблению виндовым сетапом :) там же должны распаковываться маркерные файлы (если используются), вот и была проблема совместить распаковку этих 2х архивов в DetachedProgram. Маркерные файлы к дровам отношения не имеют - это лишь один из способов создания различных установок с одного диска (т.е. чтобы разные файлы ответов использовали разные наборы софта и настроек).

qeraser 02-01-2005 11:30 285193

Способ предложенный EgOrus и TrueAlex прекрасно работает.

В самораспаковывающийся архив с маркерным файлом, добавляется автозапускающийся после распаковки cmd файл с путями к архивам (самораспаковывающимся) которые необходимо распаковать. В принципе можно этот командный файл использовать как маркерный.

Способ элегантен, т.к. позволят оперативно редактировать этот cmd и выбирать для каждого варианта установки архивы которые будут распаковываться.

Надеюсь тем кто стремится сделать универсальный диск (не DVD) эта информация пригодится.

mnevolin 06-01-2005 18:47 286292

Народ, а если диск делается универсальным и на машине нет карточки, скажем с чипом nvidia... получается запускаемый екзешник что-то там установит - а надо ли это для конкретной машины ??? Может быть я что-то упустил - прошу прощения - новичок :). Если не трудно проясните пожалуйста этот момент.

qeraser 07-01-2005 13:21 286474

mnevolin
Цитата:

запускаемый екзешник что-то там установит
Он не что-то там установит, а распакует нужные архивы (программы, драйверы и т.д) на винчестер.
Никаких установочных действий не происходит, если конечно сам не укажешь.
А операционная система уже сама будет решать надо ей ставить драйвер или нет, в зависимости от видеокарты и.т.д. Только незабудь указать в winnt.sif путь к распакованны папкам с дровами.

mnevolin 07-01-2005 16:36 286507

прошу прощения, я видимо не до конца понял проблему... то, что SFX - архив распаковывается, затем запускается пакетный файл - это вроде проще некуда, затем сам пакетник отвечает за дальнейшую распаковку драйверов (скажем по устройствам и производителям - не суть)... я так понимаю, что файлы типа setup.exe для конкретных устройств (скажем распакованный детонатор) - не запускаются... если так - то все понятно.

qeraser 07-01-2005 17:33 286522

Вроде, понял правильно :-)

Aleksiy 09-01-2005 02:00 286882

Я все драйвера устройств, включая чипсет, видео, аудио, сеть (кроме SCSI RAID (их кстати немного)) - которые могут понадобиться для корректной загрузки системы запихнул в wpi (windows post install wizard -принципы работы программы описаны на сайте) на стадию (Т12).
Учинывая, что почти все инсталлеры драйверов Instalshild и уже имеют встроеный setup.iss (setup.exe -s), то на этапе Т12 появляется возможность корректно выбрать и установить именно те драйвера (можно держать разные подветки драйверов под определённое железо) которые будут наиболее подходящими, для конкретного железа.
Этим достигается некоторая экономия диского пространства (на СD/DVD) носителе, не требуется распаковка и как следствие уборка (ну и фрагментация будет поменьше, хоть и на копейки), но главное появляется мобильность в установке, уменьшение возможности аппаратных конфликтов + мобильность обновления дистрибъютива при смене или добавлении драйверов.


Время: 19:12.

Время: 19:12.
© OSzone.net 2001-