Делаем свой дистрибутив Windows XP (nLite)

У меня есть одна мания: люблю все обрезать, делать минималистским, простым, быстрым и понятным. С удовольствием убираю визуальные навороты, которые все так стремятся поставить. Бестолковые рюшечки радуют глаз, но пользы не несут, и даже немного вредят - занимают оперативку, замедляют загрузку.

В этой статье я расскажу как собрать дистрибудив Windows XP под себя. Но тема автоустановки приложений будет затронута лишь косвенно.

Начнем. Лучше всего делать свою сборку на дистрибутиве Windows XP VL. Создайте на компьютере папку (лучше английскими буквам, без пробелов и не длиннее 8 символов, ну, на всякий случай). Скопируйте в неё с дистрибутива папку i386 и файлы WIN51, WIN51IP, BOOTFONT.BIN,  win51ip.SP3.

0. Правим дистриб ручками (не обязательный, новичкам лучше пропустить).

Первое, что хочу упомянуть: в большинстве случаев Windows XP ставится наново (а не поверх предыдущих систем). Следовательно, папки с файлами для миграции из дистрибутива удаляем. В результате, в I386 должны остаться только: ASMS, DRW и SYSTEM32. 

Затем, обращаю внимание на файл OEMBIOS.bin - он размером аж 13 Мб, хорошо бы его удалить. Но без него система не запустится. Хотя есть один секрет, нужно просто пропатчить файл winlogon.exe (лично я брал уже пропатченный из рабочей системы). Надеюсь все догадались, зачем патчат этот файл, и что я имею ввиду под этим ;). Патчить нужно программой "Kill WPA", без труда найдете её в интернете. Но тут есть небольшая заморочка - файл перед внесением в дистибутив нужно запаковать в CAB и поставить расширение ".ex_". Специально для этого я написал небольшой скрипт. Кидаешь файл в папку IN, запускаешь, и на выходе в папке OUT получаешь необходимый архивчик (ссылка на мои файлы внизу). Удалять файл OEMBIOS.bin лучше через "список удаления" в программе nLite.

И еще, для гиков. В дистрибутиве бывают повторки - одинаковые файлы, расположенные в основной папке и в drivers.cab. Искать их нужно исключительно "ручками и глазками" (лучше всего после обрезания, тогда меньше файлов). Можете поэкспериментировать, если есть желание. В целом смысл такой: удалить ненужный файл и стереть все строки где он был упомянут (везде, только не в LAYOUT.INF - он подписан, и при любом изменении контрольная сумма изменится и подпись не подойдет).

1. Интеграция обновлений.

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

Рекомендую ставить заплатки с помощью специального набора с сайта OSZone.net под названием UpdatePack-XPSP3-Rus (последнюю версию ищите тут). 

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

Как пользоваться UpdatePack я объяснять не буду, раз вы решили резать виндовс, значит руки у вас растут с правильного места и все должно получиться. На всякий случай "намекаю", что с прогой идет readme.

2. Интеграция драйверов.

Скажу сразу, никогда не было желания впихнуть в дистрибутив Windows здоровенные пакеты драйверов или драйвера от видео карты. Уж слишком они здоровые, чтобы каждый раз ставить с диска. Но маленькие драйверы интегрировать конечно стоит. Например на такое оборудование как SMBus, поддержка HD Audio, CPU и прочую мелочь. Есть очень простой и грамотный способ запихнуть дровишки в дистрибутив. Заключается он с простом копировании папок с распакованными драйверами в папку $OEM$ (может замечали, её в дистрибутив помещает nLite) и прописывания путей к этим папкам в файле WINNT.SIF. Все толково рассказана в этой статье. От себя замечу, что удобнее всего создать эту папку с драйверами и файлик, а в дистрибутив впихнуть перед последним этапом роботы программы nLite (создание ISO образа или записать на диск).

3. Интегрируем настройки.

Наверняка, вы после каждой установки принимаетесь настраивать виндовс под себя. К примеру, я первым делом переношу панель пуск на верхнюю часть экрана, меняю сочетание клавиш смены раскладки на Ctrl + Shift, и много-много чего еще. Вернее, я так делал раньше, покуда не понял что все одинаковые действия нужно автоматизировать. Для этого за годы работы с Windows XP я разжился множеством *.reg файлов, которые полностью перенастраивают операционку под меня. Чтобы запускать все эти рег-файлы я написал небольшой пакетный скрипт (bat-файл). Это все добро вы найдете в прикрепленном архиве в конце статьи. Чтобы снять свои настройки рекомендую пользоваться программой RegShot, которая делает снимки реестра и сравнивает их между собой.
Для интеграции в дистрибутив копируем папку с reg-файлами в $OEM$ и прописываем запуск bat-файла в cmdlines.txt. На последнем этапе установки Windows скрипт запустится и все нам перенастроит. Больше никакой монотонной работы.

4. Обрезаем лишнее.

Как часто вы используете Movie Marker, WordPad или читаете справку? Лично я - никогда. Так зачем же ставить неиспользуемые компоненты, тратя на это драгоценное время.

Для начала качаем последнюю версию программы nLite 1.4.9.1 и устанавливаем. Ах да, чуть не забыл, для работы программы потребуется установить .NET Framework версии не ниже 2.

Запускаем прогу и указываем её путь до папки i386. Затем нужно выбрать, какие компоненты пойдут под нож. Занятие это крайне трудное, вырезать что-то нужное проще простого. Чтобы не наступать на те грабли, на которые когда-то наступал я, предлагаю воспользоваться моей конфигурацией к nLite. Качаем её*, и распаковываем в папку Presets что в папке nLite. Оговорюсь сразу, мои настройки обрезают винду жестко и беспощадно. Так что пересмотрите список, и если галки стоят на тех компонентах, которые могут вам понадобится, то снимайте их. Все же, как ни крути, в моей конфигурации может обнаружиться несколько багов, но работает она в целом стабильно и полностью пригодна для повседневного использования.

За неоднократную пересборку дистрибутива я выяснил некоторые взаимосвязи, запомните их:

  • Настройки dialup в мастере подключений могли пропасть (пункт будет серым) из-за: "- Центр Распространения Ключей Kerberos";
  • ActiveSync может не ставиться из-за: "- Outlook Express".
  • Не удалять " Поддержка голосовых служб", иначе SAPI5 не будет работать
  • Не удалять "Драйверы и инструменты сетевой диагностики", а то не будут работать сниферы (к примеру: Не устанавливается WinPcap. Пишет что-то типа "An error occured while installing the Microsoft Network Driver (NetMon) (0x800F0203 - NPPTOOLS=false). You will be able to use WinPcap on standart network adapters, but not on Dialup connections or VPNs").

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

Все что осталось, это кликнуть пару раз на "Далее", собрать ISO и записать его на RW-шку (все это делаться через nLite). И не забудьте перед созданием ISO закинуть подготовленные файлы драйверов и настроек в дистрибутив. Лично у меня получился размер дистрибутива около 140 Мб, но мне пришлось пошаманить над ним чуть больше, чем я рассказал в статье. 

Теперь можно приступить к установке операционной системы. Для теста лучше сперва на виртуальную машину, если не будет ошибок, то можно ставить и на ПиСюху (PC). Виндовс будет очень быстрой, кушать минимум оперативки и летать даже на стареньких ноутах. Кстати, именно для своего старого процессора Duron 1300 мГц я когда-то и начал обрезать windows.

P.S. nLite глючен и не всегда работает так, как хочется. На некоторых конфигурациях не с того не с сего может пропасть калькулятор или возможность форматирования или еще какие-то нужные программы. Эту проблему я решил добавлением "исчезающих" программ в список "на сохранение" в nLite. Есть еще один недостаток - nLite вырезает все комментарии из тех inf-файлов, в которые влезает для правки. Как избавиться от этой медвежьей услуги пока что неизвестно. 

Удачных экспериментов над операционкой!

Файлы, упомянутые в статье можно скачать тут