Создание собственного дистрибутива Windows XP
Своя Windows ближе к телу

В Upgrade Special #1, посвящённом Windows XP, вы уже могли читать статью про автоматическую установку операционной системы, а также про то, каким образом интегрировать в дистрибутив ОС новые драйверы, программы и даже заранее сделать кое-какие настройки системы. Путь это непростой и не каждому по силу. Однако в последнее время появилось несколько программ, с помощью которых создать свою собственную версию Windows может практически каждый.

Но, во-первых, для чего и кому это нужно? Существует такой тип пользователя, для которого переустановка системы — главное и привычное решение всех проблем, гарантированно избавляющее от глюков, накопившихся за несколько месяцев беспечного отношения к операционной системе и элементарным правилам безопасности при работе в интернете.

Разбираться с тонкостями ручного создания файла ответов для инсталлятора Windows winnt.sif такой пользователь, разумеется, не будет, а вот воспользоваться специальными утилитами, которые почти всё сделают за него, ему вполне по силам — в этом случае при плановом сносе Windows он наконец-то будет избавлен от нудного ввода CD-Key, повторной инсталляции обновлений и прочих рутинных настроек системы.

Конечно, было бы гораздо проще один раз поставить ОС, грамотно её настроить и сделать образ системного раздела, чтобы просто перезаливать его, когда ОС в очередной раз пойдёт в разнос, однако многие пользователи почему-то недолюбливают программы создания образов — они кажутся им слишком сложными, да и сам образ требует гораздо больше места для хранения, чем обычный дистрибутив.

Чуть более продвинутый юзер непременно имеет в своём арсенале Norton Ghost [1] и при самом жутком сбое готов в течение получаса вернуть ОС в первозданный вид, но и ему не обойтись без собственного дистрибутива, поскольку постоянно приходится переустанавливать Windows соседям и знакомым, которые даже это не могут сделать самостоятельно — а в этом случае созданный «под себя» образ ни в коей мере не годится.

Как же с наименьшими усилиями создать столь нужный многим модернизированный дистрибутив, включающий в себя все последние обновления системы, обеспечивающий автоматическую установку некоторых драйверов и популярных программ и имеющий уже сделанную типичную настройку как операционной системы, так и самих этих программ? Проще всего для этого воспользоваться небольшой утилитой nLite [2], чрезвычайно простой в работе и имеющей ко всему прочему поддержку русского языка.

Работа с nLite

Перед запуском программы необходимо подготовить все будущие компоненты нашего дистрибутива — сам диск Windows XP, сервис-пак 2, драйверы, которые вам чаще всего приходится устанавливать на свой компьютер (или на машины соседей), а также программы, относящиеся к классу Must Have, например, русский MUI для английской версии Windows XP, Nero Burning ROM, FlashGet и так далее (правда, не каждую программу удастся интегрировать в дистрибутив).

После загрузки nLite первым делом попросит вас указать путь к дистрибутиву Windows XP — его предварительно надо скопировать на винчестер, например, в папку Distrib (не удаляйте её потом — дистрибутив можно многократно пересобирать и изменять, например, при выходе новых хотфиксов). С диска Windows XP нас интересуют лишь папка i386 и файлы без расширения, расположенные в корневой директории компакт-диска (типа WIN51IP). Далее нужно указать путь к exe-файлу сервис-пака — самостоятельно распаковывать его не требуется.

По завершении интеграции пакета обновлений у вас появится выбор — сделать ISO-образ диска Windows XP уже сейчас, без каких-либо иных дополнений, или продолжить работу над ним — разумеется, в нашем случае выбираем следующий этап, которым будет выбор компонентов Windows, которые мы хотим полностью исключить из дистрибутива. В принципе, при создании максимально универсального дистрибутива вы можете оставить всё как есть — вдруг сосед, который им впоследствии воспользуется (ваше присутствие при инсталляции благодаря такому дистрибутиву наконец-то станет необязательно), жить не может без Пинбола или встроенной поддержки zip-архивов.

Если же вы собираете дистрибутив индивидуального потребления, то установите флажки напротив тех программ, служб и компонентов, которые каждый раз после установки ОС и так приходится удалять вручную. Кстати говоря, именно здесь можно удалить из состава Windows XP пресловутый Internet Explorer, что, по заявлениям Microsoft, невозможно. В следующем окне будет предложено вручную ввести имена файлов, которые вам нужно исключить из дистрибутива, но для наших целей эта опция не требуется.

Теперь идёт важнейший этап — настройка будущего процесса автоматической инсталляции Windows с помощью специального файла ответов winnt.sif. Сам файл создавать вручную не требуется — необходимо лишь устанавливать флажки и вводить необходимые данные в интерфейсе nLite. Учтите только, что если на исходном компакт-диске уже имелся файл ответов (такое бывает в OEM-дистрибутивах), то он будет полностью перезаписан, поэтому будет нелишним потом просмотреть содержимое исходного winnt.sif и созданного nLite — возможно, какие-то важные параметры (тот же CD-Key) потребуется восстановить. Кстати, если инсталляция останавливается сразу после загрузки с диска и появляется сообщение о файле txtsetup.sif, то может помочь удаление папки Textmode на диске с дистрибутивом.

Опции nLite

Обратим внимание на самые важные опции, которые предлагает nLite. Для того чтобы получить дистрибутив, пригодный для установки на самые разные ПК, параметр «Тип компьютера» следует оставить в положении Automatic. Ключ компакт-диска, разумеется, имеет смысл указывать для «корпоративной» версии ОС, которая не требует активации, или в том случае, когда вы предполагаете установку ОС только на свой компьютер. Дело в том, что поставив обычные Windows с одним и тем же ключом на компьютеры своих знакомых, вы всего лишь наплодите пиратских ОС, активация которых впоследствии станет проблемой — придётся как минимум вручную менять ключ на правильный.

Параметр «Автоматический режим» следует установить в положение FullUnattended, если вы внесли в файл ответов все параметры и данные, которые запрашивает система во время своей инсталляции. Но если вы будете использовать дистрибутив при установке на ПК соседей по сети, то это не очень подходит — нельзя, например, делать так, чтобы в сети у всех ПК было одно и то же имя. В этом случае, если не хотите потом менять эти параметры уже на установленной ОС, придётся в nLite оставлять соответствующие поля пустыми и выбирать режим DefaultHide — в результате при инсталляции ОС вопросы будут появляться только тогда, когда пользователю будет нужно вводить личные данные. Раздел License Mode нас не интересует, поскольку предназначен для Windows 2003 Server.

Установка драйверов — один из самых сложных моментов. Для того чтобы nLite смогла внедрить их в дистрибутив, необходимо чтобы архив с драйвером был не в виде exe-файла, а уже был распакован, и на диске присутствовал бы необходимый inf-файл, который и следует указывать в nLite. Тут можно использовать пару трюков.

Во-первых, exe-файл драйвера часто оказывается обычным самораспаковывающимся архивом и его легко развернуть с помощью любого приличного архиватора. Во-вторых, можно запустить инсталляцию драйвера, подождать, пока файлы распакуются, и затем просто взять их из временной папки, которую несложно найти где-то в недрах C:\Documents and Settings\ ПОЛЬЗОВАТЕЛЬ\ Local Settings \Temp. Если же inf-файл получить никак не удаётся, то можно обойтись без интеграции драйвера, а устанавливать его уже на конечном этапе инсталляции ОС в автоматическом режиме как обычное приложение (об этом чуть ниже) — практически все инсталляторы поддерживают режим silent-установки [3], при котором никакого вмешательства пользователя не требуется. Кстати, программа позволяет устанавливать и неподписанные драйверы, так что при их использовании никаких дополнительных сообщений во время инсталляции не будет.

Теперь нужно интегрировать в систему новейшие критические обновления. Для этого их сначала придётся скачать. Чтобы точно знать, какие обновления нужны вашему дистрибутиву, желательно хотя бы раз его установить и затем из-под этой системы зайти на Windows Update. Если вы увидите, что системе не хватает каких-то хотфиксов, то скачайте их на диск, снова вернитесь к nLite, интегрируйте эти патчи и пересоберите дистрибутив — пересборка займёт не более 15 минут вместе с записью диска. Если же хотите обойтись без тестовой установки ОС, то просто посмотрите, какие хотфиксы на сегодняшний день предлагаются [4] для Windows XP SP2, и выберите из них необходимые.

Далее вам предоставляется возможность сделать несколько типичных настроек и «твиков» операционной системы. Здесь сложно давать какие-то рекомендации, так как всё зависит от вкусов пользователя. Единственное, что можно посоветовать — не злоупотреблять «пропатчиванием» системы. nLite позволяет отключить защиту системных файлов, включить возможность установки неподписанных тем оформления, увеличить число одновременных попыток соединения (актуально для SP2, где появились ограничения), но для всего этого ей приходится вносить изменения непосредственно в системные файлы, что может вызвать некоторые проблемы, особенно у неподготовленного пользователя. Так, например, пропатчивание файла uxtheme.dll, разрешающее установку тем оформления, приводит к проблемам при последующей установке сервис-паков. Самой же полезной опцией здесь является, пожалуй, отключение всплывающих сообщений, которое совершенно безопасно и сохраняет пользователю Windows немало нервных клеток, избавляя от надоедливых подсказок.

И в заключение, программа приступит к сборке дистрибутива. На этом этапе могут возникнуть сообщения об ошибках, например, если вы вдруг решили как обычный хотфикс интегрировать в дистрибутив обновление до 10-й версии Windows Media Player. Такие обновления придётся добавлять в дистрибутив вместе с обычными программами, используя silent-установку на последнем этапе инсталляции Windows. По завершении процесса сборки вам будет предложено создать ISO-образ загрузочного диска, но не спешите нажимать эту кнопку — есть смысл ещё кое-что исправить и доработать (программу, кстати, можно закрыть — ISO можно сделать и позже).

Winnt.sif Creator

К сожалению, nLite предоставляет лишь минимальные возможности по созданию файла ответов, поэтому при желании можно использовать другую, более мощную программу — Winnt.sif Creator [5], которая хоть и не знает абсолютно все параметры этого файла, тем не менее, на порядок превосходит nLite по части автоматизации установки и настройки Windows XP. Поэтому если вы хотите большего, то пока вы не создали ISO-файл, рекомендуется полностью переделать уже готовый winnt.sif (к сожалению, редактирование уже созданного файла программа пока не поддерживает, что, впрочем, не является существенной проблемой).

Дело в том, что вы в любой момент можете отредактировать любые файлы дистрибутива, просто изменив всё необходимое в созданной вами на винчестере папке Distrib — nLite может пересоздавать ISO-образ сколько угодно раз, надо лишь при запуске программы оставить включённой только эту опцию. Отредактировать же или распаковать уже готовый ISO-образ тоже можно, например, с помощью программы UltraISO [6], но иногда подобные утилиты повреждают образ.

Winnt.sif Creator значительно превосходит и аналогичную программу для создания winnt.sif от Microsoft, поскольку не только даёт возможность настроить параметры непосредственно инсталляции, но способен создавать даже автоматически внедряемый в систему reg-файл с популярными «твиками» Windows XP. Для этого в программе предусмотрено два основных раздела — Configuration, отвечающий за unattended-установку и Registry Tweaks.

В разделе Configuration — Data рекомендуется установить опцию загрузки с CD, а также флажок Auto Partition — в результате ОС будет инсталлироваться на первый найденный свободный раздел винчестера. Иначе обязательно всплывёт запрос — на какой раздел вы хотите ставить систему, соответственно потребуется вмешательство оператора.

Раздел Unattended позволяет запускать установку дополнительных программ и копировать нужные файлы на винчестер — ключ Install Extra Programs необходимо обязательно отметить. Опция Repartition опасна, так как включает полное переразбиение диска — ни в коем случае не активируйте её, если только дистрибутив не предназначен для установки ОС на новые ПК! Если нужно, чтобы при инсталляции был создан пользователь, то установите флаг Show create user screen — иначе после установки Windows вы будете работать под учётной записью Администратора. Однако при этом опять потребуется вмешательство человека при установке ОС, так что, возможно, лучше создать учётные записи уже после установки ОС.

Опция AutoActivate позволит активировать систему в автоматическом режиме, но лучше её не использовать — так как это требует уже настроенного и установленного интернет-соединения. Очень полезен пункт Driver Path — благодаря ему вы тоже можете добавлять в дистрибутив драйверы устройств, но не так, как в nLite. Для этого необходимо создать на компакт-диске папку вида $OEM$\$1\Drivers\Net, куда распаковать драйверы, например, сетевой карты (чтобы соответствующий INF-файл присутствовал в этой папке), далее аналогичную папку создаём, например, для видео: C:\Distrib\$OEM$\$1\Drivers\Catalyst и так далее. Теперь в поле Driver Path через точку с запятой без пробелов указываем системе пути к этим папкам: Drivers\Net;Drivers\Catalyst3_6\2KXP_INF;Drivers\sound\.

Обратите внимание: поскольку для драйверов Catalyst INF-файл оказался в поддиректории 2KXP_INF, то указывать надо путь именно к ней (впрочем, Catalyst лучше ставить как приложение).

Ещё один момент — чтобы задать порядок установки самых важных драйверов (драйверы чипсета, например, принято устанавливать первыми) придумайте их папкам такие названия, чтобы их алфавитный порядок совпадал с требуемым порядком установки. Например, 000_Intel, 002_Sound и так далее. И последний штрих: надо скопировать все inf-файлы всех драйверов ещё и в папку $OEM$\$$\inf. Теперь при инсталляции ОС нужные драйверы будут автоматически подхвачены. Эта функция дублирует то, что нам предлагал nLite, но продвинутым пользователям рекомендуется пользоваться именно ей.

В разделе GuiUnattended следует обратить внимание на параметр TimeZone Index — для Москвы это будет 145. Очень интересен параметр Profiles Path, позволяющий изменить установленный по умолчанию путь к папке Documents and Settings — на уже установленной системе это сделать очень сложно.

В разделе TapiLocation необходимо выбрать импульсный набор номера и указать код страны — 7 для России, в справке программы он почему-то отсутствует, как отсутствует в разделе Regional Settings код для русского языка — укажите 00000419 в окошке Language. Весьма полезен раздел Components — в нм легко можно выбрать установленные по умолчанию основные системные программы. Обратите внимание, что эти программы не удаляются из дистрибутива и вы в любой момент можете их доустановить при помощи меню «Установка и удаление программ».

Наконец, в разделе GUIRunOnce можно прописать пути к командным файлам, которые будут запускать автоматическую инсталляцию интегрированных в дистрибутив приложений, драйверов, выполненных в виде exe-файлов, а также reg-файлов с настройками программ и Windows — запомните указанные пути и названия файлов или измените их как вам удобно — они нам ещё потребуются.

После того как все настройки сделаны, переходим к пункту Finish, нажимаем Make My winnt.sif! и получаем готовый файл ответов. Для тех, кто не боится ковыряться в параметрах системы, настоятельно советуем изучить содержимое этого файла, а также при необходимости ещё и вручную дополнить его, воспользовавшись подробными инструкциями из Upgrade Special #1 за 2004 год либо изучив документ ref.chm из архива SUPPORT\TOOLS\Deploy.cab дистрибутива Windows. Полученный в результате файл winnt.sif переносим в папку i386 нашего дистрибутива Windows XP.

Настройка системы

Собственно, часть настроек Windows позволяет сделать сам Winnt.sif Creator — его раздел Registry Tweaks является, по сути, мини-твикером, и для начала мы советуем воспользоваться именно им, выставив флажки нужных настроек. На выходе программы вы получите готовый reg-файл, который нужно будет импортировать в реестр Windows во время её инсталляции. Делается это несложно — если не забыли, в файле winnt.sif у нас оказался прописан запуск нескольких командных файлов — инструкции из них будут выполнены на конечном этапе установки ОС. Таким образом, чтобы импортировать полученный reg-файл в систему, необходимо команду для этого задать в одном из этих файлов. Для этого создайте в директории $OEM$\$1 (именно она является аналогом %systemdrive%, указанного в Winnt.sif Creator) папку install, а в ней — файлы main_batch.cmd, hotfixes.cmd, applications.cmd. Откройте в Блокноте main_batch.cmd и вставьте в него строки:

CLS
@echo off
ECHO Installing Regs..........
start /wait regedit.exe /s %systemdrive%\install\tweaks.reg
ECHO Complete

Сам файл tweaks.reg также необходимо скопировать в папку $OEM$\$1\install.

Но, возможно, более грамотно будет создать свой собственный reg-файл с настройками системы. Это несложно сделать вручную, используя готовый шаблон, который можно взять, например, в конференции www.msfn.org/board/index.php?act=ST&f=70&t=27911 [7].

А можно создать и с нуля, но это потребует много времени, поскольку необходимо установить на диск «чистую» копию Windows XP SP2, потом установить используемые вами обычно твикеры, затем сделать снимок состояния реестра при помощи Ashampoo Uninstaller [8], настроить Windows её собственными средствами и с помощью любимых твикеров, затем снова сделать снимок системы и на основе полученного протокола изменений создать в Ashampoo Uninstaller инсталляционный reg-файл. Как видите, процедура непростая и опять требует тестовой установки ОС.

Восстановление активации!

Важным моментом при переустановке Windows XP является восстановление активационных файлов, дабы не пришлось систему активировать заново. Для этого надо всего лишь перенести со старой системы, где Windows XP уже активирована, файл WPA.DBL, в котором, собственно, и содержатся данные о том, что ваша ОС была активирована (разумеется, он сработает только на вашем ПК). Необходимо сделать так, чтобы после установки новой Windows этот файл снова оказался в папке WINDOWS\SYSTEM32. Для этого надо всего лишь создать на компакт-диске директорию $OEM$\$$\System32 и поместить туда копию этого файла — все файлы из этой папки во время инсталляции будут скопированы в аналогичный каталог на жёстком диске.

Учтите только, что для того чтобы какие-либо файлы из папки $OEM$ копировались на винчестер, в разделе [Unattend] файла winnt.sif должны присутствовать параметры OemPreinstall=Yes и UnattendSwitch=Yes. Кстати, данные об активации MS Office находятся в папке C:\Documents and Settings\ All Users\ Application Data\ Microsoft\ Office\ Data — позаботьтесь и об их сохранении.

Установка программ

Проще всего устанавливать программы, которые работают после простого копирования соответствующей поддиректории папки Program Files — это, например, популярный менеджер закачек FlashGet или Total Commander. Для того чтобы внедрить эту программу в дистрибутив, нужно всего лишь создать на компакт-диске Windows XP папку $OEM$\$1\Program Files и в неё скопировать папку с уже установленной программой. После установки Windows всё это окажется на вашем жёстком диске.

Если же программа раскидывает свои библиотеки по всему диску, то без полной её инсталляции не обойтись. Большое число программ поддерживают так называемый silent- или unattended- режим установки, при котором не требуется никакого вмешательства пользователя. Чтобы воспользоваться им, необходимо запустить инсталлятор с нужными параметрами командной строки, узнать которые для самых популярных программ и распространённых типов инсталляционных систем вы сможете, например, на сайте oszone.net/display.php?id=2747 [9] и в форуме www.msfn.org/board/index.php?showforum=80 [3].

После того как вы определились с командными строками своих любимых программ (желательно их предварительно испытать, воспользовавшись меню Run), нужно скопировать дистрибутивы в уже упоминавшуюся папку $OEM$\$1\install, туда же поместить файл applications.cmd, в котором и прописать эти команды вида (для установки русского MUI и Nero):

CLS
@echo off
ECHO Installing Russian MUI..........
start /wait %systemdrive%\install\muisetup.exe /i 0419 /d 0419 /l /f /r /s
ECHO Complete
ECHO Installing Nero Burning ROM…
start /wait %systemdrive%\install\nero6303.exe /silent /noreboot /no_ui /sn=xxxx-xxxx-xxxx-xxxx-xxxx-xxxx /write_sn
ECHO Complete

Здесь крестиками обозначен серийный номер Nero. Для установки же уже упоминавшегося Windows Media Player нужно использовать такую команду:

ECHO Installing Windows Media Player 10
start /wait %systemdrive%\install\WMP10\MP10Setup.exe /q:A /c:"setup_wm.exe /Q /R:N /DisallowSystemRestore"

В заключение желательно отправить ПК на перезагрузку, прописав:

ECHO
shutdown.exe -r -f -t 60 -c "Windows XP will now restart in 1 minute. Don't worry, it's not a virus :-) !"
EXIT

Наконец, точно таким же способом можно инсталлировать и хотфиксы — для этого, если помните, у нас предусмотрен файл hotfixes.cmd. Но поскольку хотфиксы мы уже интегрировали с помощью nLite, этот файл можно не использовать (удалите его упоминание в winnt.sif, впрочем, возможно, проще всего сделать вообще всего один командный файл, а не три, как предлагает Winnt.sif Creator). Подробнее об этом способе читайте в Upgrade Special #1 или по адресу oszone.net/display.php?id=2747 [9].

Существует, правда, ещё один очень элегантный, но более сложный способ установки программ, при котором отображается не консольное, а «виндовое» окно, подробно он описан на странице http://oszone.net/display.php?id=2762 [10] — после того как вы отработаете инсталляцию через пакетные файлы, можно перейти на него.

Настройка программ

Для того чтобы программы могли не только автоматически устанавливаться вместе с Windows XP, но и настраиваться так, как вы привыкли, можно использовать такую технологию. На чистый компьютер, с только что установленной ОС (это, впрочем, лишь желательное требование, но не обязательное — главное, чтобы программа, настройку которой вы автоматизируете, на него ещё не ставилась), установите программу Ashampoo Uninstaller [11], после чего установите требуемую программу и разок запустите её, не делая никаких настроек. Сделайте с помощью Ashampoo снимок текущей конфигурации системы, снова запустите программу и настройте её так, как вам необходимо. Снова сделайте снимок и получите протокол изменений, которые вносятся в реестр при настройке программы. Теперь выберите в Ashampoo опцию Create Installation Files и вы получите reg-файл с вашими настройками — его надо просто внедрить в реестр после установки программы. Делается это аналогично тому, как мы импортировали reg-файл с «твиками» системы, но команду для этого надо прописывать после команды, которая устанавливает программу.

Точно таким же образом решается задача автоматической регистрации shareware-программ. Вам нужно лишь сравнить два снимка системы — до ввода регистрационных данных и после. Таким образом, вы получите reg-файл с ключом программы, внедрение которого в реестр автоматом превратит shareware в полнофункциональную версию. Для того же FlashGet это будут, например, параметры в разделе реестра HKEY_CURRENT_USER\ Software\ JetCar\ JetCar\ General. Если же вы будете регистрировать программу одновременно с её настройкой, этот параметр тоже должен оказаться в итоговом reg-файле, однако использовать такой дистрибутив можно только на своём ПК — у другого пользователя должен быть свой собственный ключ.

Некоторые программы сохраняют свои регистрационные данные или настройки в специальном файле — это, например, WhereIsIt? [12], Winamp, DrWeb — чтобы перенести его с компакт-диска в нужную папку на винчестере, нужно создать соответствующий подкаталог внутри $OEM$\$1\Program Files дистрибутива и поместить туда ключевой файл. Единственное, на что следует ещё обратить внимание — объём диска при интеграции в него ещё и программ может сильно перевалить за 700 МБ, поэтому в идеале необходимо пользоваться DVD-RW.

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

  • дистрибутив с интегрированным SP2 и последними обновлениями как самый универсальный;
  • такой же дистрибутив, но уже с реализованной полностью автоматической установкой и некоторыми настройками для установки на ПК начинающих пользователей — с ним они справятся и без вашего участия;
  • и, наконец, максимально переработанный дистрибутив с драйверами, программами, хитрыми твиками системы и даже видоизменённым графическим интерфейсом для себя любимого.

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

Полезные ресурсы:

Менеджер автоустановки Windows XP

По адресу ne0n.pp.ru/unattmgr [27] вы найдёте ещё одну мощнейшую программу для создания фала ответов — Менеджер автоустановки Windows XP. Она полностью русскоязычная, способна менять огромное число параметров, превосходя в этом даже Winnt.sif Creator, поэтому в процессе изучения тонкостей автоматической установки рекомендуем обратить внимание и на эту утилиту.




Темы