УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Маркерные файлы-пустышки


Если вы используете несколько файлов ответов с OEM установкой (т.е. предположим вам нужны разные наборы настроек и софта), то вам нужны и разные папки $OEM$, но, к сожалению, при установке с CD (DVD), OEM файлы могут находиться только в корне диска в папке $OEM$ (переменная OemFilesPath= в winnt.sif почему-то игнорируется, видимо используется только при локальных и сетевых установках).

Для того чтобы обойти это ограничение я решил использовать батник, который по маркерному файлу определяет какой из файлов ответов использовался и в соответствии с этим ищет инфу в той или другой папке. Маркерный файл - это файл пустышка, который распаковывается из SFX архива за 39 минут до окончания установки.

Для этого есть специальный ключ:

[GuiUnattended]

DetachedProgram = "%SystemDrive%\Temp\dummy1.exe"

Из примера видно, что файл распаковывается с жесткого диска, т.к. все архивы попадают туда во время текстового этапа установки вместе со всеми другими OEM файлами (в моем случае из папки $OEM$\$1\Temp). В это время копируются все архивы, содержащие в себе по одному маркерному файлу (dummy1.exe, dummy2.exe и т.д.), а на этапе Т-39 распаковывается только нужный, указанный в файле ответов. Чтобы файл распаковался в нужную директорию (Temp), необходимо задать соответствующие настройки SFX архиву. Для WinRAR это можно сделать во время создания архива через закладку Дополнительно) или прямо в закладке Комментарий:

;The comment below contains SFX script commands

Path=%SystemDrive%\Temp
Silent=1
Overwrite=1

Таким образом, когда наступает время применения файлов настроек и установки программ, с помощью пакетного файла можно направить установку в нужную папку к нужным файлам. В моем случае используется bat-файл choice.bat, который запускается из cmdlines.txt

[COMMANDS]
"choice.bat"

и содержит следующие условия:

cmdow @ /HID @echo off

if exist %systemdrive%\Temp\dummy1.fle goto START1 if exist %systemdrive%\Temp\dummy2.fle goto START2 .... goto END :START1 REGEDIT /S Tweaks1.reg .\RunOnce1.cmd .\WinMUI\Muisetup.exe /i 0419 /d 0419 /l /f /r /s goto END


:START2 REGEDIT /S Tweaks2.reg .\RunOnce2.cmd goto END ...

:END

dummy1.fle - это и есть маркерный файл, распакованный из dummy1.exe. Можно использовать и копирование вместо распаковки, но при копировании появляется консольное окно, а я использовал WinRAR SFX архив, поэтому распаковка происходит незаметно. Впрочем, консольные окна мы тоже умеем скрывать, но речь сейчас не об этом.

Директория $ОЕМ$ в нашем случае выглядит так:



В данном примере при первом варианте установки (START1) будет использован RunOnce1.cmd для инсталляции ПО, импортированы твики реестра из Tweaks1.reg, а также установлен MUI. При втором варианте установки (START2) соответственно используются RunOnce2.cmd и Tweaks2.reg, а MUI не устанавливается вовсе. Как вы понимаете, это всего лишь пример, приведенный для наглядности. Расположение файлов и команды измените на ваше усмотрение.

Теперь, когда структура диска готова, нужно подготовить мультизагрузку при помощи Bootable CD Wizard)


Содержание раздела