Существует миллион разрозненных статей о том, что такое 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 необходимые приложения? Да, именно это нам и нужно.

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

  • управление разделами жесткого диска с помощью утилиты Diskpart или сторонних средств;
  • захват томов в WIM-образ с помощью утилиты ImageX и их сохранение на другой раздел жесткого диска или USB-диск;
  • применение WIM-образов к разделу имеющегося жесткого диска с помощью утилиты ImageX и её разновидностей;
  • запуск автоматической установки Windows используя скрипты и файлы ответов XML;
  • копирование и замену файлов, а также правку реестра установленной операционной системы, если она не загружается;
  • диагностировать неисправности оборудования;
  • бороться с вирусами используя различные антивирусные утилиты для Windows PE.
  • Все изменения в реестре Windows PE во время ее выполнения будут потеряны при следующей перезагрузке компьютера. Постоянные изменения в реестр можно внести только в автономном режиме до запуска Windows PE.
  • Буквы дисков присваиваются последовательно, по мере создания разделов в среде Windows PE. Однако при перезагрузке Windows PE все присвоенные буквы возвращаются к порядку по умолчанию.
  • Для установки 64-разрядной версии Windows необходимо использовать 64-разрядную версию Windows PE. Точно так же для установки 32-разрядной версии Windows необходимо использовать 32-разрядную версию Windows PE.
  • Все приложения Windows PE должны или быть интегрированы в образ PE и зарегистрированы в её реестре или же быть portable (не требующими установки). В большинстве случае все не-Microsoft приложения — portable: при распуске распаковываются на RAM диск в оперативной памяти.
  • При запуске Windows PE с носителя, доступного только для чтения, например с компакт-диска, среда Windows PE сохраняет кусты реестра в памяти, позволяя приложениям производить запись в реестр. Все изменения, внесенные в реестр приложениями, не сохраняются для использования в других сеансах Windows PE.

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

  • Windows PE 2.0 — Windows Vista
  • Windows PE 3.1 — Windows 7 SP1
  • Windows PE 4.0 — Windows 8
  • Windows PE 5.0 — Windows 8.1
  • Windows PE 10.0 — Windows 10

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

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

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

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

  • BartPE — загрузочный диск, построенный на основе дистрибутива Windows XP/2003. Все начиналось с него, тогда не было альтернатив, все последующие сборки брали с нее пример. Сейчас имеет смысл только на очень слабых старых ПК. Чтобы быстро создать такой диск, можно воспользоваться готовой утилитой PEBuilder. Такую сборку записывали на CD диск, она весила несколько сот мегабайт, отсюда пошел термин Windows Live CD.
  • Ieshua’s Live DVD/USB и (Y)PE by Yurkesha — самые популярные отечественные сборки на основе BartPE.
  • RusLive by Nikzzzz — Windows Live CD для очень старых  ПК на базе Windows XP, запускался на 128 МБ RAM
  • WinPE5 TechAdminPE — проект загрузочной флэшки для системных администраторов
  • AdminPE — проект загрузочной флэшки для системных администраторов на базе PE 5.1 и 10.0
  • WinPE Sergei Strelec — один из лучших, если не лучший проект Windows 10 и 8 PE, который есть сейчас
  • MultiBoot 2k10 by conty9 & Viktor Kisel — Мультизагрузочный диск системного администратора, базируется на загрузчиках BOOTMGR (Windows 8.1.1), Isolinux/Syslinux v.4.06 и Grub4Dos v.0.4.5c. Диск состоит из большого количества продуктов, обьединённых оболочкой, с возмoжностью загрузки c CD/DVD, USB Flash Drive, USB-HDD и обычного HDD. На мой взгляд, это лучший Windows PE проект на данный момент.
  • Gandalf’s Win10PE — лучший зарубежный проект

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

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

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

  • Файл корневого раздела bootmgr — это файл диспетчера загрузки.
  • Папка BOOT — содержит файл bcd — данные конфигурации загрузки, файл boot.sdi, необходимый для создания виртуального электронного диска в оперативной памяти, ссылка на который имеется в конфигурации BCD, и файл шрифтов, используемый диспетчером загрузки bootfix.bin
  • Папка SOURCES, содержащая файл образа загружаемой системы boot.wim. Поскольку конфигурация загрузки BCD для созданного диска восстановления Windows уже настроена на выполнение загрузчиком bootmgr загрузки из образа boot.wim, то для создания загрузочной флэшки достаточно просто скопировать все перечисленные файлы и папки, выполнить запись загрузочных секторов MBR и PBR, а также установить признак активности раздела. Все это можно выполнить стандартными средствами Windows 7 — с использованием утилит командной строки bootsect.exe и diskpart.exe.

Процесс загрузки 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 своими руками

  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 диска, то код будет выглядеть так:

    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, как таковой, умер, но в рамках него существует несколько самостоятельно развивающих проектов. В связи с этим не скачивайте приложение Winbuilder 082 с официального сайта, оно ссылается на умершие проекты, поэтому не работает.

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

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