Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 178
Благодарности: 25

Профиль | Сайт | Отправить PM | Цитировать


В общем, самый простой способ (по методу 2) заставить один и тот же дистрибутив устанавливаться и с CD/DVD, и c винчестера через Winnt32.exe такой:
1) Так как $OEM$ директория по дефолту ожидается этими способами в разных местах, то нужно прописать путь в winnt.sif:
Код: Выделить весь код
OEMFilesPath=..\$OEM$
2) Создаем в i386 WINNT32.CMD:
Код: Выделить весь код
WINNT32.EXE /unattend:winnt.sif
Теперь можно запускать автоустановку из-под Windows или Windows Live CD с помощью WINNT32.CMD (прямо с CD, или с винчестера, но в последнем случае все файлы с установочного CD/DVD должны быть скопированы в корень винчестера (тогда больше никаких переделок дистрибутива не потребуется, драйверпаки по второму методу найдутся и отработают правильно). При запуске через WINNT32.CMD текстовый этап естественно пропускается, выбора раздела для установки нет (мне он в данном случае и не нужен).

Ответы в winnt.sif годятся и для обоих видов установки, но для Winnt.exe не годится, хотя WINNT.BAT я на всякий случай тоже сделал на будущее:
Код: Выделить весь код
WINNT.EXE /s:%~dps0 /u:winnt.sif
%~dps0 - это короткий путь до файла WINNT.BAT.

Конечно, хотелось не совсем этого, а чтобы инсталляция на винте лежала в произвольной папке, например C:\Install\WinXP\

Эту проблему мне пока решить не удалось, а всего то нужно было заменить во всех файлах, использующих переменую типа %CDROM%, метод её определения, чтобы для CD в ней было например "D:", а для Winnt32.exe - "C:\Install\WinXP".

Директория $OEM$ при запуске через Winnt32.exe почему-то оказывается во временной папке в корне системого винта типа ~Win*, поэтому относительным путем типа SET CDROM=%~dp0.. не отделаться (это будет работать с CD, но не сработает через Winnt32).

Аналогичная проблема с i386\presetup.cmd - именно он работает в методе 2 в драйверпаках, по дефолту там:
Код: Выделить весь код
SET TAGFILE=\OEM
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) DO IF EXIST "%%i:%TAGFILE%" SET CDDRIVE=%%i:
Этот батник оказывается запускается из %systemroot%\system32\

Где можно прочитать путь до инсталляции, я так и не нашел, была такая идея:
Код: Выделить весь код
SetLocal EnableExtensions EnableDelayedExpansion

FOR /F "usebackq skip=4 tokens=3* " %%i IN (`REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup /v SourcePath`) do set CDDRIVE=%%i.
но этой ветки до графического этапа не существует

При unnattended установке в %systemroot%\system32 находится файл $winnt$.inf и там есть параметр dospath=
Возможно, это то,что надо, его тогда можно выцепить командой FIND.

В общем, самое простое оказалось сделать копию установочно CD в корне винта, вроде работает как надо.

Завтра еще потестирую... Может кто что подскажет полезного?

... Ay_Emul: no song playing...

-------
AY-3-8910/AY-3-8912/YM2149F Homepage


Отправлено: 17:59, 06-02-2008 | #92