|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Только для экспертов! FAKE-Setup своими руками. |
|
Только для экспертов! FAKE-Setup своими руками.
|
Googler Сообщения: 3665 |
Профиль | Отправить PM | Цитировать Только для экспертов! FAKE-Setup своими руками.
Метод использования Fake-копии SETUP.EXE был придуман неким Pyron с форума MSFN и нынче широко используется для Unattend-пакетов, в основном драйверов (пакеты от Bashrat, BoaSoft и др.). Подробней о том как он фунциклирует можно почитать в мануалах к пакетам и на форумах MSFN. Несмотря на простой алгоритм, для написания EXE-файла нужно быть немного программером, а это ИМХО не совсем справедливо! . Поэтому я решил реализовать его на AutoIT, но здесь ждал облом - AutoIT v.3 напрочь отказывался запускаться в PRE-Setup окружении WinXP, хотя между тем прекрасно работал из под Win2K. К счастью, все заработало на версии 2.64, которая до сих пор доступна для скачивания. Привожу пример скрипта, где совмещены обе возможности - AutoIT и PreSetup чтобы всегда можно было выбрать удобный интерфейс. Код намеренно не тестировался и может содержать ошибки - кому нужно, тот поймет что к чему. Многое зависит еще от содержимого Presetup.Cmd HideAutoItWin,On SetBatchLines,100 ;======================================================= ; Восстанавливаем параметры командной строки ;------------------------------------------------------- SetEnv,i,0 Repeat,%0% EnvAdd,i,1 StringTrimLeft,parm,%i%,0 SetEnv,CmdLine,%CmdLine% %parm% EndRepeat ;======================================================= ; Установка путей к утилитам и драйверам ;------------------------------------------------------- SetEnv,DrvTag,drv51 SetEnv,WrkDir,%SystemDrive%\\Install ;======================================================= ; Установка всех требуемых файлов ;------------------------------------------------------- FileInstall,setupORG.exe,%SystemRoot%\\System32\\setupORG.exe FileInstall,presetup.cmd,%WrkDir%\\presetup.cmd FileInstall,cmdow.exe,%WrkDir%\\cmdow.exe FileInstall,7za.exe,%WrkDir%\\7za.exe FileInstall,setpath.exe,%WrkDir%\\setpath.exe FileInstall,watchdrv.exe,%WrkDir%\\watchdrv.exe ;======================================================= ; Трикс с переименованием ;------------------------------------------------------- IfExist,%SystemRoot%\\System32\\Setup.exe,RunWait,CMD /C REN Setup.exe SetupOld.exe,%SystemRoot%\\System32,Hide IfExist,%SystemRoot%\\System32\\SetupORG.exe,RunWait,CMD /C REN SetupORG.exe Setup.exe,%SystemRoot%\\System32,Hide ;======================================================= ; Собственно запуск процесса установки ;------------------------------------------------------- SetBatchLines,1 ;------------------------------------------------------- RunWait,CMD /C PreSetup.cmd %DrvTag% %WrkDir%,%WrkDir%\\,Hide RunWait,Setup.exe %CmdLine%,%SystemRoot%\\System32 ;======================================================= ; Чистим после себя ;------------------------------------------------------- RunWait,CMD /C RD /Q /S %WrkDir%,%SystemDrive%\\,Hide 1. Свобода от правки inf-файлов, все инструменты включены уже в один файл - SETUP.EXE, который устанавливается простым копированием. 2. Свобода выбора между WATCHDRV и стандартным AutoIT-методом отслеживания окон, тем более что WATCHDRV отрабатывает не всегда. 3. Возможность условного заполнения реквизитов. Например, загрузив из INI-файла базу всех ПК можно автоматически заполнить имя машины, лицензионный ключ и т.д. Сам не пробЫвал - нужды пока не было. |
|
Отправлено: 12:45, 07-04-2006 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
Цитата:
~BT - загрузочные файлы (полный набор из загрузочных дискет, только с учетом обновлений) Цитата:
В контексте твоего вопроса все это можно понимать как отложенную установку, которую можно продолжить при необходимости в любое время. |
||
Последний раз редактировалось amel27, 20-04-2006 в 06:54. Отправлено: 06:25, 20-04-2006 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27
Спасибо за толковое разъяснение. А ссылку на свежее описание метода не дашь? У меня сохранилась ссылка только на старое описание, которое уже давно не обновлялось. |
Отправлено: 19:46, 20-04-2006 | #12 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать bogomolv
нет, ссылки нет но там практически ничего не изменилось, вот несколько дополнений из личного опыта: 1. Для того чтобы к GOSH-дистрибутиву можно было применять трансформ-паки типа nLite нужно дополнительно скопироватьиз дистрибутива файл dosnet.inf... а если изменения касаются txtsetup.sif, то по окончании процесса скопировать его из i386 в BOOT. Для пакетов драйверов, затрагивающих начальную фазу загрузки (MassStorage) нужно дополнительно скинуть из i386 в BOOT файлы *.sys (только новые). 2. Для локализованных версий нужно дополнительно скопировать bootfont.bin 3. Для XP SP2, 2K3 SP1 файл setupldr.bin взять из дистрибутивов XP SP0/SP1, 2K3 SP0 |
Отправлено: 05:12, 21-04-2006 | #13 |
Компьютерный шаман Сообщения: 2910
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
|
|
------- Отправлено: 10:20, 21-04-2006 | #14 |
Ветеран Сообщения: 511
|
Профиль | Отправить PM | Цитировать Если я понял все правильно, то FAKE-setup делает нечто, после чего передает управление настоящему файлу setup.exe, который отрабатывает после копирования файлов и перезагрузки.
Выше писали о том, как бы все от старой винды почистить, а потом ставить начать, при этом запустив все из Windows. Так может проще сделать так: 1. 2. Пишем на чем угодно setup.exe так, чтобы он просто запускал наш батник и закрывался. 3. Батник создаем и кладем его в $WIN_NT$.~LS. Например так: create.bat @echo off ren "%SystemDrive%\$WIN_NT$.~LS\setup.exe" setup1.exe copy /y setup.exe "%SystemDrive%\$WIN_NT$.~LS\" echo @echo off>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo rd %windir%>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo rd %ProgramFiles%>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo rd %allusersprofile%>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo rd %homepath%>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo del setup.exe>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo ren setup1.exe setup.exe>>%SystemDrive%\$WIN_NT$.~LS\dele.bat echo setup.exe>>%SystemDrive%\$WIN_NT$.~LS\dele.bat Установка файлов винды, копирование батника, перезагрузка компа. Или я чего-то не понял? Если так - поясните пожалуйста |
Отправлено: 16:01, 21-04-2006 | #15 |
Ветеран Сообщения: 511
|
Профиль | Отправить PM | Цитировать Только что проверил на виртуалке.
У меня почему-то не создается директория [и]$WIN_NT$.~LS[/b] Но при этом инсталляция идет(проверил после перезагрузки). Более того, директория $WIN_NT$.~BT занимает около 10Мб. Кто-нибудь может обьяснить, как такое может быть? P.S. Проверил dosnet.inf, он далеко не пустой. ----------- Дело в файле автоустановки (*.sif). Попробовал без него ввести серийник и прочее руками - все ок. Может галочка - копировать все файлы не ставится по умолчанию? --------------- Точно, только что проверил. По-умолчанию эта галка не стоит... |
Последний раз редактировалось DmitryOlenin, 22-04-2006 в 00:25. Отправлено: 23:04, 21-04-2006 | #16 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать DmitryOlenin
Цитата:
Цитата:
EDIT: извиняюсь, насчет %windir% поторопился - действительно, CMD создается еще в старой Windows... Текст не стал править, остальное остается в силе. |
||
Последний раз редактировалось amel27, 22-04-2006 в 08:44. Отправлено: 08:21, 22-04-2006 | #17 |
Ветеран Сообщения: 511
|
Профиль | Отправить PM | Цитировать amel27
Проверил бы... Только я пока до конца не разобрался во взаимодействии упакованного setup.ex_, setuporg.exe и presetup.bat. У меня драйвера от Башрата, так что, по идее, все это должно использоваться. Cтрочка rd /q /s d:\windows, именно так она выглядела после отработки батника в старой винде, не отработала в том самом presetup.bat. P.S. Да, кстати, я попробовал написать на чем угодно setup.exe. 7Кб вышло. Да, кстати, само себя переименовать он вполне может. Я так понял под cdm имелось в виду cmd. Если у меня получится сначала передать управление моему файлу, то, есть предположение, каталог вида d:\windows вполне удалится. |
Отправлено: 10:00, 22-04-2006 | #18 |
Пользователь Сообщения: 125
|
Профиль | Отправить PM | Цитировать amel27, DmitryOlenin
Ткните пальцем, куда класть свой setup.exe, кого при этом переименовывать и т.д. Ваши предложения: REN Setup.exe SetupOld.exe,%SystemRoot%\\System32 и ren "%SystemDrive%\$WIN_NT$.~LS\setup.exe" setup1.exe Пока лишь удалось создать дистрибутив из временных папок $WIN_NT$.~LS и $WIN_NT$.~BT и вписать его в свою конструкцию переустановки с HDD: 1) с HDD запускается батник, создающий маркерный файл и перезапускающий систему под WinPE; 2) WinPE, реагируя на маркерный файл, удаляет системные папки и копирует из нового дистрибутива $WIN_NT$.~LS, $WIN_NT$.~BT и boot.ini и вновь отправляет машину на перезагрузку; 3) после перезагрузки подхватываются $WIN_NT$.~LS и $WIN_NT$.~BT и начинается установка Windows. В результате удалось сэкономить 1 минуту на первом графическом этапе установки с HDD, и установка всей системы (с дровами и прогами) занимает 13 мин 40 сек. Если научите, как и чем удалять системные папки, не презагружаясь в WinPE, удастся сэкономить еще 40 сек. А вот с размерами дистрибутива выигрыш небольшой - 379MB против прежних 392MB (это без папки $OEM$). Кстати о рекордах. При обычном способе вся система у меня ставится примерно за 14 мин 40 сек - 15 мин. Когда вышел на этот уровень, обнаружилась такая ерунда - после завершения последнего графического этапа установки остается голубой экран с курсором и система висит до 2 минут, лишь изредка помигивая лампочкой активности HDD. В итоге никак не мог перешагнуть рубеж в 16 мин 30 сек. Вот выдержка из setuplog.txt: 04/21/2006 21:29:53.077,d:\xpsprtm\base\ntsetup\syssetup\services.c,496,,SetupStartService: Sending StartService to <Eventlog> ЗАВИСАНИЕ НА 30 сек 04/21/2006 21:30:22.952,d:\xpsprtm\base\ntsetup\syssetup\services.c,498,,SetupStartService: Sent StartService to <Eventlog> .... ПОСЛЕДНЯЯ ЗАПИСЬ ПЕРЕД ПЕРЕЗАГРУЗКОЙ 04/21/2006 21:30:22.968,d:\xpsprtm\base\ntsetup\syssetup\syssetup.c,6664,END_SECTION,Installing Windows NT ЕЩЕ ОДНО ЗАВИСАНИЕ ДО 2 мин ... И СЛЕДУЮЩАЯ ЗАПИСЬ УЖЕ ПОСЛЕ ПЕРЕЗАГРУЗКИ 04/21/2006 21:32:31.140,d:\xpsprtm\base\ntsetup\syssetup\oobe.c,1127,,SetupOobeInitDebugLog .... Setuplog.txt такой установки: 04/21/2006 23:11:02.187,d:\xpsprtm\base\ntsetup\syssetup\services.c,496,,SetupStartService: Sending StartService to <Eventlog> НЕТ ЗАВИСАНИЯ 04/21/2006 23:11:02.187,d:\xpsprtm\base\ntsetup\syssetup\services.c,498,,SetupStartService: Sent StartService to <Eventlog> .... 04/21/2006 23:11:02.203,d:\xpsprtm\base\ntsetup\syssetup\syssetup.c,6664,END_SECTION,Installing Windows NT НЕТ ЗАВИСАНИЯ. РАЗРЫВ В 40 сек НА ПЕРЕЗАГРУЗКУ 04/21/2006 23:11:42.328,d:\xpsprtm\base\ntsetup\syssetup\oobe.c,1127,,SetupOobeInitDebugLog Да и решением найденый способ, конечно, назвать нельзя. Сам знаю, что MSI-установщики не рекомендованы для CMDLINES. В результате MSIntelliPoint нормально ставится в одном случае из пяти, а Nero7 так вообще приходится переустанавливать на следующей стадии... P.S. Дистрибутив WinXP SP2 Prof RUS Corporate Edition (самоделка). Проверял на несамодельной WinXP SP2 Prof RUS VLK. Кроме того, что она у меня всегда ставится на 2 минуты дольше (заметно медленнее идет стадия копирования файлов), поведение такое же. Пробовал и с интегрированными обновлениями и без - все так же. |
Последний раз редактировалось bogomolv, 23-04-2006 в 02:39. Отправлено: 02:18, 23-04-2006 | #19 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать DmitryOlenin
Цитата:
bogomolv Цитата:
Цитата:
- использовать txtsetup.sif (можно запаковать в setuporg.ex_); - использовать ф-цию AutoIT FileInstall; - прямое копирование перед переименованием. Имхо не лучший вариант, т.к. привязан к абсолютному пути. 2. Запаковать Fake setup.exe в setup.ex_ и поместить в i386 Цитата:
|
||||
Отправлено: 11:17, 23-04-2006 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Комп своими руками | ddfwefwefweq | Выбор отдельных компонентов компьютера и конфигурации в целом | 2 | 04-03-2009 19:50 | |
Proxy/NAT - Внешний прокси своими руками | Donner | Хочу все знать | 5 | 29-12-2008 02:16 | |
ФТП своими руками... | Ronald | Microsoft Windows 2000/XP | 7 | 10-01-2007 13:35 | |
Загрузочный CD своими руками | Kenobi | Хочу все знать | 1 | 09-10-2005 11:21 | |
TTimer своими руками | Zur0 | Программирование и базы данных | 5 | 27-04-2003 18:17 |
|