Все, что нужно знать для создания загрузочного диска с Windows PE

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

Для чего вам потребуется Windows PE?

Windows PE (Windows Preinstallation Environment) - Среда предустановки Windows, с ограниченными службами, построенная на ядре обычный Windows . Она используется для подготовки компьютера к установке Windows, копирования образа Windows с сетевого файлового сервера и запуска установки Windows. Она является встроенным элементом других средств установки и восстановления системы, например программы установки для Windows , служб развертывания Windows (WDS), пакета средств развертывания операционной системы (OS) SCCM сервера и среды восстановления Windows (Windows RE). Изначально среда Windows PE была создана для того, чтобы помочь производителям оборудования, сборщикам систем и корпорациям загружать компьютер без работающей операционной системы. Таким образом, PE чаще всего запускают или с внешнего накопителя или же по сети с WDS/TFTP сервера компании.

Да, не надо путать Windows PE и Windows RE. Windows RE (Recovery Environment) — среда для восстановления Windows после сбоя. Однако, Windows RE как набор инструментов можно запустить из-под PE. И тут возникает мысль: а почему бы не использовать PE для задач восстановления упавших систем, интегрировав в PE необходимые приложения? Да, именно это нам и нужно.

Какие задачи мы сможем выполнять под ней:

Особую ценность для диагностики и восстановления операционной системы Windows PE приобретает при включении в ее состав набора Microsoft Diagnostics and Recovery Toolset (MS DaRT), который можно скачать и интегрировать в образ Windows PE. По сути вся операционная система запаковывается в один файл — WIM формата, который при запуске с носителя распаковывается в оперативную память. Вот основные особенности PE:

Какие бывают Windows PE?

Собственно классический Windows PE — это среда от компании Microsoft, ядро которой зависит от версии PE, которую вы скачаете:

«Голая» Windows PE весьма урезана в своих возможностях и по большей части опирается на интерфейс командной строки, где вы можете запускать любые сервисные утилиты, входящие в образ PE. Набор интегрированных приложений и команд зависит от версии. Также обратите внимание, что для развертывания той или иной ОС на диск вам нужна PE версии не ниже, чем разворачиваемая ОС. То есть для установки на целевой компьютер Windows 10 из-под PE вам потребуется PE версии не ниже чем 10.0, потому что для этого используется утилита DISM соответствующей версии. Также от версии к версии меняется поддержка версий платформы .NET и версий Powershell.

Но помимо классический Windows PE существует большое количество альтернативных сборок PE (более 300), основанных на том же ядре, но с графическим интерфейсом и большим набором программ. Существуют даже готовые среды от производителей того или иного ПО, которые содержат их утилиты.

Win PE от вендоров:

Это далеко не полный список, но те системы, которые наиболее на слуху. Каждый полезен, у каждого свои преимущества. А список кастомных сборок от разных энтузиатов просто море:

Перечислять можно долго, но если вам нужен готовый вариант WinPE на современном ядре, выберите что-то списка выше. Я бы рекомендовал или проект Стрельца или Conty9. Если вас не устроит набор утилит в сборке — посмотрите в сторону TechAdminPE или AdminPE. Если же вам хочется создать свои набор, то читайте дальше.

Как устроен и работает Windows PE

Как уже было сказано выше, чистый Win PE — это командная строка. По сути PE — это один файл boot.wim и ряд служебных, передающих ему управление и позволяющих его загрузить.

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

Процесс загрузки Windows PE проходит следующие этапы:

  1. Выполняется загрузка с использованием загрузочного сектора определенного носителя. Управление передается программе Bootmgr. Bootmgr извлекает основные сведения загрузки из данных конфигурации загрузки и передает управление программе winload.exe, содержащейся в Boot.wim. Затем Winload.exe загружает необходимый уровень HAL (Hardware Abstraction Layer) и загружает куст системного реестра и необходимые драйверы загрузки. После завершения загрузки она подготавливает среду для выполнения ядра Ntoskrnl.exe.
  2. Выполняется программа Ntoskrnl.exe, которая завершает установку среды. Управление передается модулю Session Manager (SMSS).
  3. Модуль SMSS загружает остальную часть реестра, настраивает среду для запуска подсистемы Win32 (файл Win32k.sys) и ее различных процессов. Модуль SMSS загружает процесс Winlogon, чтобы создать сеанс пользователя, а затем запускает службы, остальные второстепенные драйверы устройств и подсистему безопасности (LSASS).
  4. Winlogon.exe выполняет установку, основываясь на значении реестра HKLM\SYSTEM\Setup\CmdLine. Winpeshl.exe запустит %SYSTEMDRIVE%\sources\setup.exe, если этот файл существует, в противном случае программа Winpeshl.exe будет искать приложение, указанное в файле %SYSTEMROOT%\system32\winpeshl.ini. Если приложение не указано, будет выполнена команда cmd /k %SYSTEMROOT%\system32\startnet.cmd. По умолчанию Windows PE содержит файл Startnet.cmd, который запускает программу Wpeinit.exe. Wpeinit.exe загружает сетевые ресурсы и координирует свою работу с сетевыми компонентами, такими как DHCP.
  5. Wpeinit.exe устанавливает устройства PnP, обрабатывает параметры Unattend.xml и загружает сетевые ресурсы. После выполнения Wpeinit.exe отобразится окно командной строки. Процесс загрузки Windows PE завершен.

Программе wpeinit можно сообщить файл ответов Unattend.xml, в котором будут указаны различные настройки пользовательского интерфейса системы. Служебная программа Wpeutil — это средство командной строки, которое позволяет выполнять различные команды в сеансе Windows PE. Например, можно завершить работу компьютера или перезапустить Windows PE, включить или отключить брандмауэр, задать языковые параметры и настроить сеть. Средство настройки региональных параметров (Intlcfg.exe) используется для изменения языка и региональных настроек, шрифтов и параметров ввода образа Windows. Обычно Intlcfg.exe запускается после применения одного или нескольких пакетов поддержки языков к образу Windows. О других системных командах можно почитать на Technet.

В кастомизированных сборках все намного сложнее. Там происходит не только запуск командной строки, но и запуск графического интерфейса explorer.exe, а также массы кастомизированных скриптов и приложений. Все же хотите создать свой Windows PE? — Пожалуйста.

Методика создания своего Windows PE

Итак, подхода три: 

  1. Создать мультизагрузочную флэшку или диск с меню на базе загрузчика GRUB или Syslinux, где каждый пункт будет запускать свой LiveCD или WinPE.
  2. Создать свой WinPE, напичкав его своими драйверами, утилитами, приложениями, скриптами.
  3. Создать Windows PE средствами MDT (Microsoft Deployment Toolkit). Этот способ самый удобный, но самый сложный и требующий времени на изучение MDT.

Первый вариант рассмотрен в конце нашей статьи о загрузчиках. Мы пойдем другим путем.

Подготовка Windows PE своими руками

Откуда взять необходимое? Windows PE является частью свободно распространяемого Windows ADK. Версия PE соответствует версии ADK. Скачать ADK можно с сайта Microsoft. Обратите внимание, что для Windows 7 ADK ранее назывался WAIK. Итак, план действий:

  1. Скачать и установить ADK. Не забудьте скачать правильную версию нужной разрядности. Хотите ставить Windows x64 из WinPE — тащите 64-битный ADK.
  2. Скопировать необходимые для PE файлы из ADK в заранее подготовленную пустую папку. В ADK входит удобный файл copype.cmd, который делает эту работу одной командой. 
  3. Подключите с помощью DISM образ (смонтируйте его в пустую подпапку)
  4. Добавьте все необходимые пакеты, программы, модули, драйвера, используя dism
  5. Добавьте свои папки, утилиты
  6. Настройте запуск свои приложений или скриптов. Укажите в файле startnet.cmd программы, которые вы хотите запустить автоматически. Или же можно задать собственную оболочку или список запускаемых приложений вместо командной строки в файлике Windows\System32\winpeshl.ini. Если ваша оболочка будет лежать в в папке Shell диска, то код будет выглядеть так:
    [LaunchApp]
    AppPath = %SystemDrive%\Shell\myshell.exe
  7. Создайте свой файл ответов для запускаемого wpeinit -unattend=<путь\ФайлОтветов.xml>. Примеры xml можно посмотреть здесь.
  8. Сохраните изменения в WIM файл через dism с ключом /commit
  9. Переименуйте winpe.wim (дефолтное имя) в boot.wim
  10. Запишите содержимое папки образа на загрузочный носитель любым способом. Существует встроенная в ADK утилита для создания носителя (media) — Makewinpemedia. О ней можно почитать на MSDN.

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

Полуавтоматизированная сборка Windows PE

И как обычно в конце я предлагаю вариант для тех, кто по тем или иным причинам не достиг желаемого результата своими руками. Существует спасительный конструктор, который называется WinBuilder, который позволяет собрать дистрибутив Windows PE путем интегрирования готовых модулей (проектов) и портативных программ, скачиваемых с web сайта проекта автоматически. Дело в том, что это свободно распространяемый проект, который включает массу других подпроектов, сделанных на его базе, по сути это агрегатор проектов, написанных на Java в рамках одной концепции. Все, что вам требуется — выбрать готовые проекты и скачать их с сети, они включают в себя даже набор готовых приложений, а затем скомпилировать. Установка ADK все равно требуется.

К сожалению, я данным проектом полная неразбериха, и не существует полноценной документации. Все статьи в интернете более не актуальны. Основной проект по обновления платформы WinBuilder, как таковой, умер, но в рамках него существует несколько самостоятельно развивающих проектов. В связи с этим не скачивайте приложение Winbuilder 082 с официального сайта, оно ссылается на умершие проекты, поэтому не работает.

Вам нужно выбрать между 4 проектами:

У каждого из этих проектов есть самостоятельный сайт, на котором хранятся пакеты и подпроекты, относящиеся к этому проекту. Вам необходимо скачать ZIP архив с каждого из этих сайтов, который содержит соответствующее приложение и набор основных модулей — ссылка доступна на первой странице каждого из этих сайтов. Например, для Win7PE SE это http://w7pese.cwcodes.net/Compressed/download.php?loc=Win7C&httploc=w7pese.cwcodes.net/Compressed/&file=Win7PE_SE_2017-02-02.zip&localdlc=Win7PE_SE_count.txt 

Скачав архив, распакуйте его и запустите приложение Builder SE.exe. Далее, действуйте по инструкции: укажите Source с установочными файлами ОС (там должен быть install.wim), настройте подпроекты (у каждого есть страница настроек) и запустите сборку проекта.

Популярность: 1%

Поделиться в соц. сетях

Share to Google Plus
Share to MyWorld
Share to Yandex

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.

Комментарии

Комментов еще нет.

Оставьте коммент

(обязательно)

(обязательно)