Размер
Совмещение нескольких вариантов установки Windows XP на одном диске
Play

Совмещение нескольких вариантов установки Windows XP на одном диске

Изначально поводом к написанию данной статьи послужил тот факт, что диск, созданный с помощью файла ответов winnt.sif, не содержит функции восстановления системы (Repair) с помощью установочного диска. Конкретнее, как выяснил vserd, эта функция пропадает при наличии в файле ответов секции [Unattended] (даже пустой).

Единственным способом заполучить функцию восстановления системы является создание мультизагрузочного диска с выбором загрузки в автоматическую или обычную установку. Так или иначе, обычная установка тоже может понадобиться, а если готовить диск с различными операционными системами или наборами устанавливаемых программ, то без мультизагрузочного диска не обойтись. Не удивительно, что тема мультизагрузки оказалась весьма популярна в форуме Автоматической Установки. Это повлекло появление других статей о мультизагрузке, а данная статья перетерпела уже две редакции.

Для работы нам понадобятся HEX редактор (я использовал бесплатный xvi32) и менеджер загрузки Bootable CD Wizard.

В статье излагается способ маркерных файлов-пустышек, о котором рассказал участник конференции Oszone EgOrus.

О процессе загрузки

При создании загрузочного диска (образа) формируется загрузочный сектор, который обращается к файлу SETUPLDR.BIN в директории i386. В свою очередь, SETUPLDR.BIN содержит инструкции об обращении к файлу winnt.sif, и если такой файл существует в i386, то установка происходит автоматически с учетом ответов, обозначенных в winnt.sif. Вкратце, идея мультизагрузки с выбором автоматической и обычной установки состоит в том, чтобы создать два файла SETUPLD*.BIN, один из которых будет обращаться к файлу ответов, а другой – нет. Затем с помощью менеджера загрузки мы пропишем пути к каждому из файлов.

Я рекомендую вам прочитать статью Создание мультизагрузочного CD на основе Bootable CD Wizard, т.к. именно этот менеджер загрузки мы будем использовать для выбора нужного нам загрузчика. В указанной статье вы найдете ссылки на все необходимое для работы. А раз уж мы избрали BCDW, то я считаю совершенно необходимым вас предупредить:

Версия BCDW 1.50z несовместима с SETUPLDR.BIN от SP2. Новая версия BCDW 2.0a1 нормально загружает SETUPLDR.BIN от SP2, поэтому рекомендуется использовать именно ее. Если же вы хотите использовать 1.50z для загрузки Windows XP SP2, то вам придется забросить в i386 SETUPLDR.BIN от SP1 и согласиться на перезапись.

Изменение SETUPLDR.BIN

В HEX редакторе открываем файл и заменяем все winnt.sif на winn1.sif, а затем сохраняем файл как SETUPLD1.BIN в i386

Теперь переименовываем файл winnt.sif, находящийся в i386, в winn1.sif. Таким образом, SETUPLDR.BIN не найдя файла winnt.sif запустит обычную установку, а файл SETUPLD1.BIN обратится к winn1.sif для получения ответов для автоматической установки. О том, как осуществить выбор нужного загрузчика вы узнаете чуть позже, а пока поговорим о планировании мультизагрузки.

Отступление о различных вариантах установки программ

Если вы хотите создать диск с различными вариантами установки программного обеспечения (ПО), то нужно это спланировать заранее. У меня на сайте описаны несколько методов установки ПО: Выбор устанавливаемых приложений, GuiRunOnce и RunOnceEx. Давайте рассмотрим их подробнее применительно к мультизагрузке.

Выбор устанавливаемых приложений

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

GuiRunOnce

Учитывая, что у нас уже подготовлены разные файлы ответов winn*.sif, логично использовать данный метод. Все что требуется, это включить в каждый файл ответов секцию GuiRunOnce и указать в ней путь к пакетному файлу с командами на установку ПО. Иными словами в winn1.sif у вас должно быть

и соответственно в winn2.sif должно быть

В этом примере предполагается, что вы поместили пакетные файлы в директорию $OEM$\$1\Install, и они были успешно скопированы на жесткий диск во время текстового этапа установки Windows.

RunOnceEx

Этот метод подразумевает наличие команды на запуск файла RunOnceCmd.cmd в файле cmdlines.txt. Однако, cmdlines.txt, находящийся в корне $OEM$, будет прочитан при любом из вариантов установки независимо от ваших файлов ответов и все перечисленные в нем команды будут выполнены. Следовательно создать различные варианты установки ПО не получится.

Аналогичная ситуация возникает с твиками реестра или MUI, если они устанавливаются из cmdlines.txt на Т-12. Что делать, если нужно применять разные твики или не ставить MUI для каких-то конфигураций? Есть обходной путь, который описан ниже.

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

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

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

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

;The comment below contains SFX script commands

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

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

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

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

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

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

Создание мультизагрузочного диска с помощью Bootable CD Wizard (BCDW)

Если вы используете другой загрузочный менеджер, то приведенные ниже инструкции вам мало чем помогут. Надеюсь, что поняв идею, вы разберетесь как реализовать ее в другой программе. Подробнее о работе с BCDW вы узнаете из уже упоминавшейся выше статьи, а здесь мы сосредоточимся только на мультизагрузке различных вариантов Windows XP. Нас в первую очередь интересует файл bcdw.ini, в который мы и должны прописать пути к нашим загрузочным файлам. Распаковав архив с программой, вы увидите, что там уже такой файл существует. Вам надо лишь изменить его соответствующим образом или создать новый. Синтаксис будет примерно такой

В каждой строке вы видите три параметра, разделенные точкой с запятой. Первый указывает путь к загрузчику, второй отобразит текст в меню выбора загрузок, а третий (необязателен) является описанием типа загрузки. Полный текст своего bcdw.ini я привожу ниже (BCDW 2.0a1).

Также, вы можете посмотреть скриншот загрузочного меню, которое получается при использовании такого bcdw.ini. Мой файл содержит и другие загрузочные опции, чтобы вам не скучно было смотреть на картинку :)

Настройку внешнего вида оболочки я оставляю на ваше усмотрение. Для предварительного просмотра можно запустить файл initest.bat. Когда вы сочтете, что ваша оболочка достойна номинации на конкурсе красоты загрузочных дисков, можете переходить к следующему шагу.

Запись мультизагрузочного диска

Существует масса способов для записи мультизагрузочного диска> Я излагаю свой, нисколько не претендуя на уникальность. Он основан на использовании программы CDImage и нравится мне, в первую очередь, простотой. Подробно метод расписан в уже знакомой вам статье Создание мультизагрузочного CD на основе BCDW.

Если вы внимательно следовали данному руководству, то в итоге у вас должен получиться мультизагрузочный диск с возможностью выбора автоматической или обычной установки Windows XP. Другие варианты загрузки Windows XP можно легко добавить аналогичным образом.

📎📎📎📎📎📎📎📎📎📎