Собираем собственную Live-CD сборку WinPE2.0 на основе Windows 7. Конфигурируем сервер для загрузки образов дискет формата ima.

 

Мы строили строили и наконец построили..."
Чебурашка.

Введение

Первая и вторая части статьи были посвящены установке и конфигурированию сервера для загрузки и инсталляции с сети разнообразных дистрибутивов операционных систем. Будем считать, что все настроено и работает. Из поставленных задач, остается только один вопрос: “Как это может помочь лечить от вирусов компьютеры, восстанавливать ОС и загрузчики и т.д.?". Ответу на этот вопрос и посвящается эта часть.

Немного истории. WinPE

Во времена, когда операционная система Windows XP только начинала свое победное шествие по десктопам пользователей, с ней происходили разные необъяснимые вещи, вроде синих экранов смерти (BSOD), испорченных загрузчиков и т.д. В связи с этим компания Microsoft разработала волшебный инструмент, позволяющий быстро и просто восстановить работоспособность операционной системы. Его название —Preinstallation Environment for Windows XP и WinPE [1].
WinPE представляла собой упрощенную версию Windows XP с возможностью установки и запуска с любого носителя достаточной ёмкости. Изначально система предназначалась для подготовки компьютера к инсталляции полноценной операционной системы и позволяла осуществлять предустановку ОС в автоматическом режиме. В поставку включался пакет драйверов сетевых карт и дисковых подсистем, которые поддерживаются Windows XP или Windows Server 2003. Обеспечивала доступ к общим сетевым папкам, включая доступ к Distributed File System (DFS). Включала в себя утилиты для форматирования и работы с разделами жесткого диска, позволяя получить доступ к его существующим разделам.
Отметим, что полный доступ возможно было получить и к разделам имеющим формат NTFS. Это, во многом, предопределило успех WinPE, так как кроме Windows XP и Windows Server 2000–2003, с этой файловой системой ни одна из операционных систем в полном объеме не работала.
Так же применив стандартные команды и утилиты Windows можно было восстановить работу системы и спасти данные. На этом возможности стандартной поставки Microsoft заканчивались, но ларчик который был открыт, оказался очень интересен многим.

BartPE

Прошло немного времени после выхода WinPE для Windows XP и голландец Барт Лагервей (Bart Lagerweij) предложил для использования вместо нее свою альтернативу — BartPE [2]. Эта сборка операционной системы отличалась от WinPE возможностью расширения функций за счёт системы плагинов [3].
Плагины предлагалось использовать для интеграции самого различного программного обеспечения, изменения внешнего вида и работы операционной системы. Также была предложена возможность использовать собственноручно написаные плагины. Архитектура сборки оказалась настолько удачной, что количество расширений стало безудержно расти. Это позволило сборкам на BartPE вплотную приблизиться и внешне и функционально к традиционной Windows XP (Рис.1), выведя дистрибутив на первое место по популярности среди сборок Windows Live CD.

Рисунок 1. Внешний вид сборки BartPE с плагином XPE.

Внешний вид winpe от Yurkesha

С появлением BartPE создание собственного Live CD стало совсем простым делом. Вокруг BartPE образовалось большое количество сообществ разнообразных сборок, разрабатывающих плагины и улучшающих систему. Из основных, которые развиваются и обновляются до сих пор, можно отметить Ieshua's Live CD и (Y)PE by Yurkesha (CD) [4].
К сожалению, сам продукт уже очень давно не обновлялся. Существуют проблемы с созданием версий на основе Windows XP SP3. Но основной недостаток — для создания сборки основанной на Windows Vista или Windows 7 он не подходит, а необходимость в этом была . И вот на смену BartPE пришёл конструктор WinBuilder [5].

WinBuilder

WinBuilder — это приложение для создания и полуавтоматической сборки Live-CD. Позволяет использовать в качестве исходной системы проекта дистрибутивы, начиная с Windows XP и заканчивая Windows 7 . Разрабатывается и поддерживается Питером Шлангом (Peter Schlang). До не давнего времени официальный сайт проекта был доступен по адресу [6], всю необходимую информацию возможно найти на указанном сайте .
В проекте для сборки используются специальные сценарии, которые выполняются последовательно один за другим, добавляя или изменяя компоненты и настройки будущей сборки операционной системы. За счет того, что система собирается с нуля, можно получить минимальный размер дистрибутива. Этот подход прямо противоположен BartPE, где сначала собирается полная система, а потом выкидывается все лишнее. Учитывая указанные недостатки BartPE, для создания системы воспользуемся конструктором WinBuilder.

Подготовка к сборке

Рассмотрим, что должен содержать дистрибутив “спасательной" системы, с учетом минимально необходимых задач администрирования:

 

  1. Возможность загрузки с сетевого сервера, USB, CD-ROM;
  2. Работа с разделами жесткого диска;
  3. Подключение к сетевым дискам для сохранения информации;
  4. Антивирусные утилиты;
  5. Работа с загрузчиками операционных систем;
  6. Восстановление данных;
  7. Сброс пароля Windows.

 

Существует огромное количество готовых к использованию сборок на все случаи жизни. Для поставленной задачи можно выбрать понравившуюся. Но используя сторонний дистрибутив, конечно нельзя на сто процентов гарантировать целостность и сохранность ваших данных. В связи с этим, собранный лично, дистрибутив системы будет более безопасен.
Для самостоятельной подготовки сборки понадобится дистрибутив Windows 7 с интегрированным с пакетом исправления, полный комплект WAIK for Windows 7 and Windows 2008, дистрибутив WinBuilder и, конечно, комплект необходимых драйверов [7]. WinBuilder может сам запустить виртуальную машину с созданным live–CD образом системы во встроенном QEMU. Для полного тестирования готовых сборок рекомендуется установить VirtualBox [8]. Все действия можно проводить на компьютере с установленной Windows Vista и более поздними версиями операционных систем. Загрузим из сети Интернет все необходимые компоненты, а затем выполним последовательно следующие действия:

 

  1. Копируем все файлы с установочного диска или образа в папку на жесткий диск, например c:\win7lv;
  2. Установим WAIK;
  3. Распакуем WinBuilder в папку c:\winbuilder. Внимание: при распаковке многие антивирусы, например Антивирус Касперского и Microsoft Essential, начинают подавать сигналы тревоги проверяя сам сборщик или его сценарии, поэтому рекомендуется добавить эту папку в исключения или отключить их на время;
  4. Распакуем комплект драйверов в папку c:\x86\drivers. Архивы самих драйверов 7z распаковывать не надо. При необходимости добавить недостающие драйвера, просто скопируйте наборы *.inf, *.sys, *.dll и *.exe в эту папку. EXE-файлы инсталляторов копировать не надо.

 

Конструктор готов к работе: остается загрузить сценарии. Для этого запустим файл c:\winbuilder\winbuilder.exe и выберем для обновления два пункта: updates.boot-land.net и win7pe.winbuilder.net/SE. Что они означают ? Updates.boot-land.net проект, содержащий только проверенные сценарии и свободные программы, готовые к интегрированию в winpe7. Win7pe.winbuilder.net содержит основные программы и сценарии использующиеся в сборках (Рис.2).
Затем нажмем на кнопку Download и дождёмся завершения процесса загрузки (Рис.3).

Рисунок 2. Выбор скриптов для установки.

winbuilder

Рисунок 3. Загрузка и обновление скриптов для сборщика Wibuilder.

Загрузка скриптов

Обычно процесс загрузки занимает не очень много времени. Об окончаним загрузки сигнализируют включенные галочки в панели слева главного окна программы. Если все сценарии скрипты, то можно переходить к сборке дистрибутива. В противном случае придётся удалить из папки с утилитой (c:\winbuilder) всё, кроме неё самой, и заново повторить загрузку. Можно попробовать еще раз повторить загрузку, но без очистки папки. Это позволит сэкономить время и трафик, но не гарантирует дальнейшей правильной работы. Так же необходимо обратить внимание на то, что если в Вашей системе включен UAC, запускать WinBuilder необходимо исключительно с правами администратора. Еще один важный момент — во время работы конструктору потребуется вызывать консольные утилиты из комплекта WAIK. Чтобы обеспечить ему эту возможность есть два пути.

Первый путь. Добавить в переменные окружения рабочие пути WAIK:

  1. Скопировать из папки C:\Program Files\Windows AIK\Tools\PETools\ файл pesetenv.cmd в папку c:\winbuilder;
  2. Заменить в нём относительные пути к утилитам (%~dp0) на полные;
  3. Добавить в конец файла вызов winbuilder.exe;
  4. Переименовать pesetenv.cmd в startbuild.cmd;
  5. Запускать при работе файл startbuild.cmd.

Второй путь. Скопировать необходимые файлы:

  1. Из папки C:\Program Files\Windows AIK\Tools\x86\ файлы bcdboot.exe, imagex.exe, wimgapi.dll, wimmount.inf, wimmount.sys и wimserv.exe в папку C:\winbuilder\Projects\Tools\Win7PE_SE\x86\;
  2. Из папки C:\Windows\System32 файл bcdedit.exe в папку C:\winbuilder\Projects\Tools\Win7PE_SE\x86\. Внимание: если файла bcdedit.exe нет по этому пути, его необходимо искать в папке C:\Windows\winsfx\.

Перейдем к настройке WinBuilder. Запустим приложение, нажимаем кнопку Tools-Language и переключаем на русский язык. Интерфейс приложения, к сожалению, переведен не полностью. Закрываем эту вкладку и нажимаем на кнопку Ресурс, расположенную в правой части окна. В разделе Рабочие каталоги указываем путь к папке с файлами дистрибутива Windows 7 — c:\win7lv, целевой каталог и iso файл. Затем выбираем пункт меню Drivers-Driver Integration и нажимаем на кнопку Explore. В появившемся диалоговом окне выберем папку с драйверами. Ею, в данном случае, является папка c:\x86\drivers. В VirtualTest устанавливаем флаг в пункте VirtualBox Emulation, это позволит вызвать установленный VirtualBox. Если сборка происходит на системе Microsoft Vista, то необходимо в разделе Images Configuration отметить пункт Always use WIMMount Driver (very slow). Это позволит использовать старую утилиту монтирования файлов imagex.exe, которая входит состав Microsoft Vista.
На этом подготовка окончена, перейдем к созданию пробной сборки дистрибутива.

Сборка WinPE 2.0-Windows 7

Перед тем как начать добавлять дополнительные приложения рекомендуется на данном этапе проверить работу сборщика. Для этого нажмем кнопку Play .

Рисунок 4. Внешний вид системы по умолчанию.

Внешний вид системы по умолчанию

Если все сценарии выполнились корректно , то WinBuilder запустит виртуальную машину с созданным образом. В противном случае программа выдаст сообщение об ошибке, сделает соответствующую запись в журнале и предложит вариант решения проблемы. После запуска в виртуальной машине и проверки работоспособности, можно перейти к созданию реальной сборки операционной системы. Для этого в главном меню приложения нажмем на кнопку Download. В панели, расположенной в правой части экрана, необходимо выбрать необходимые для загрузки компоненты системы. В разделе Win7PE_SE выбираем пункты:

 

  • Apps-HD Task . Используется для работы с разделами жесткими дисками восстановление данных и восстановление загрузки операционных систем;
  • Apps-Security. Обеспечивает защиту от вирусов и сброс пароля пользователей Windows в случае необходимости;

 

Наконец, нажмем на кнопку Загрузить. После завершения процесса загрузки перейдем в главное меню приложения и выберем, доступные теперь компоненты и снова запускаем сборку образа. Далее выполним проверку и убедившись, в правильной работе всех приложений перейдем к размещению на сервере установки. Заметим, что полученный iso-образ можно использовать по назначению – записать CD диск.

Как разместить новый образ на сервере установки?

В первой части статьи [10] дано подробное описание технологии загрузки wim-образов систем. Кратко напомню. При загрузке по сети файл pxelinux.0 создает и отбражает меню доступных для загрузки систем. Меню описывается файлом конфигурации pxelinux.cfg. Для систем Window Vista и старше загружаемым файлом является «pxeboot.0» (переименованный «pxeboot.n12»). Он в свою очередь загружает «bootmgr.exe» – Windows Boot Manager (диспетчер загрузки) и запускает его на выполнение.Тот запрашивает у сервера файл BCD – boot configuration data (хранилище параметров запуска) и на основе полученных данных «bootmgr.exe» производит загрузку «boot.sdi» и «boot.wim» – образа Windows PE2.0. Все выше перечисленные необходимые файлы необходимо взять из созданного дистрибутива winpe7.iso.
Для настройки выполним последовательно:

1.Создадим новую секцию winpe7 в файле конфигурации меню /srv/tftpboot/pxelinux.cfg.

label winpe7
menu label ^WinPE WIN7
kernel sources/pxeboot.0

2.Монтируем созданный iso с WinPE7.

mount -o loop /home/iso/winpe7.iso /home/temp/pe7

3.Копируем файл /home/temp/pe7/sources/boot.wim в /srv/tftpboot/sources/.

Если сервер уже был настроен на сетевую загрузку Windows 7 [10], файлы pxeboot.0, bootmgr.exe и boot.sdi копировать нет необходимости. В противном случае для более подробного разъяснения обратитесь к [9-10]. Загружаемся с сети и проверяем созданный образ.

Как загружать образы дискет

Существует большое количество «загрузочных» дискет для выполнения разнообразных операций с компьютером. К их числу относятся дискеты для перепрошивки BIOS, HDD и т.д. Обычно они распространяются в виде файла формата IMA. Это ни что иное, как расширение дискетного образа, стандартной загрузочной дискеты Windows 98.
Специально для этого формата в комплекте syslinux существует сетевой загрузчик memdisk, который по умолчанию располагается в /usr/share/syslinux/.
Его можно использовать для загрузки любого образа ima.
Приведем пример использования этой утилиты. Для этого добавим в загрузку образ ima содержащий FreeDos:

1.В секцию freedos в файл конфигурации /srv/tftpboot/pxelinux.cfg добавим следующий текст:

label freedos
menu label ^FreeDOS+MHDD util
kernel memdisk
append initrd=pe/freedos.ima
2.Копируем файл /usr/share/syslinux/memdisk в корень tftp сервера (/srv/tftpboot/).
3.Скачиваем базовый образ FreeDOS по ссылке [12].
4.Создаем папку /srv/tftpboot/pe/ и копируем туда файл freedos.ima.

Теперь можно проверить загрузку выбрав в меню пункт FreeDOS+MHDD util (Рис.5).

Рисунок 5. Загрузка Freedos.

Загрузка Freedos

Заключение

Полученная сборка Windows 7 PE будет неплохо справляться с поставленными задачами:очистить компьютер от вирусов, восстановить загрузчик операционной системы или информацию.
Но, как показывает практика, скорее всего понадобиться добавить в сборку свои собственные файлы и приложения. Это можно сделать также при помощи сценарие. Большой набор готовых скриптов располагается по адресу [4] и [9]. Там же, на форуме можно найти различные дополнения к WinBuilder и методы работы с ними. Дополнять и улучшать созданную систему можно постоянно.

Литература и ссылки на сайты

  1. WinPE от компании Microsoft (]]>http://www.microsoft.com/Rus/Licensing/Volume/Software_Assurance/Advanta...]]>)
  2. Вики о BartPE (]]>http://en.wikipedia.org/wiki/BartPE]]>)
  3. Официальный сайт BartPE (]]>http://www.nu2.nu/pebuilder/]]>)
  4. Готовые сборки WinPE (http://www.winpe.ru/docum/c-winpe)
  5. Описание WinBuilder (]]>http://en.wikipedia.org/wiki/WinBuilder]]>)
  6. Официальный сайт WinBuilder (]]>http://winbuilder.net]]>)
  7. Готовые комплекты драйверов (]]>http://driverpacks.net/driverpacks/windows/7]]>)
  8. VirtualBox (]]>http://www.virtualbox.org/wiki/Downloads]]>)
  9. Наборы дополнительных скриптов (]]>http://reboot.pro/forum/65/]]>)
  10. Статья «Универсальный сервер сетевой загрузки и установки », Журнал «Системный администратор», Декабрь 2010 №12 (97).
  11. Статья «Универсальный сервер сетевой загрузки и установки.Часть 2 », Журнал «Системный администратор», Октябрь 2011№10 (107).
  12. Базовый образ FreeDOS (http://www.winpe.ru/docum/freedos_10_base_sborka)

Комментарии

Немного добавлю.
Примерно с год назад часть комманды разработчиков отделилассь, создав свой сайт ( ]]>http://theoven.org]]> ), который активно развивается, в отличии от  ( ]]>http://reboot.pro]]>,  бывший ]]>http://winbuilder.net]]>).
На сайте можно скачать прследнии версии проектов WinPe1 (WinXp) или Winpe2 (Win7), большое количество плагинов, а так-же готовые проекты в виде zip, которые полнстью функциональны и не требуют   WAIK.

Страницы