Введение в Windows PE

Описание Windows PE

Я думаю, все слышали о Windows PE – облегченной версии Windows, c которой администратор может загрузиться и выполнить задачи даже в случае повреждения или отсутствия ОС на компьютере. Во времена MS-DOS существовали загрузочные дискеты, с которых можно было выполнить загрузку, в случае повреждения или отсутствия ОС на компьютере.
Они были построены на ядре DOS, и использовались долгое время – до появления Windows XP.ОС Windows 95 и 98 имели в своем составе средства для создания таких дискет.Подобные средства были хороши в свое время, но в наше время они полностью устарели.

Их недостатки:
  • Отсутствие поддержки 32 и 64 битных приложений(например вы не сможете запустить утилиты из пакета sysinternals)
  • Отсутствие системных API
  • Отсутствие поддержки файловой системы NTFS
  • Отсутствие сетевой поддержки
  • Отсутствие поддержки современных устройств(USB-устройств, а также многопроцессорных систем)

Приведем пример.
Например осуществляется развертывание систем Windows 7 в сети, однако использование WDS не предусматривается (например по причине отсутствия лицензий в филиале)
В таком случае необходимо использовать сценарий развертывания по сети с использованием общих ресурсов. Как известно, в таком случае клиентские компьютеры следует загрузить с загрузочного диска, имеющего поддержку TCP\IP и SMB,для подключения к общему ресурсу, а также поддержи х86(и возможно x64 приложений).
Становится видно, что использование загрузочных дискет MS-DOS в данном сценарии невозможно, вследствие отсутствия в них поддержки необходимых протоколов и архитектур.
Также в процессе развертывания может обнаружиться разного рода проблемы(аппаратная неисправность, сбои в работе сети, и пр.) Для диагностики и устранения этих проблем необходимы специальные средства.

Универсальным решением, которое можно использовать в данном сценарии, а также во множестве других случаев является использование загрузочного носителя с Windows PE.
Итак, Windows PE представляет собой облегченную версию Windows, построенную на полнофункциональном ядре системы Windows 7, и лишенную большей части пользовательских средств(графическая оболочка, расширенные системны API и пр.)
Однако она поддерживает большую часть инструментов и протоколов, необходимых администратору.

Преимущества и ограничения Windows PE

Рассмотрим преимущества Windows PE:
  • Сетевая поддержка – вы можете подключаться к ресурсам локальной сети или к интернету при помощи протоколов TCP\IP NetBIOS
  • Поддержка файловой системы NTFS – вы можете работать с разделами NTFS. Созданными из под Windows
  • Поддержка x86 и x64 приложений – вы можете запускать большую часть windows-приложений, не зависящих от некоторых отсутствующих в Windows PE API и .NET Framework
  • Почти полный набор средств командной строки из Windows 7 – таким образом, вы имеете почти полный функционал Windows 7 из командной строки
  • Windows PE открыта для редактирования (без декомпиляции)

Также Windows PE имеет следующие ограничения:
  • Ограниченый набор API
  • После 72 часов непрерывного использования работа оболочки автоматически прекращается и происходит перезагрузка.
  • Windows PE не может использоваться в качестве файлового сервера или сервера терминалов, ограничена в работа с DFS
  • Поддерживаются способы подключения к файловым серверам только по протоколам TCP/IP и NetBIOS через TCP/IP.
  • Все изменения, вносимые в реестр Windows PE во время выполнения Windows PE, теряются при следующей перезагрузке компьютера.
  • Буквы дисков присваиваются последовательно, по мере создания разделов в среде Windows PE. Однако при перезагрузке Windows PE все присвоенные буквы дисков возвращаются к порядку по умолчанию.
  • Не поддерживает оболочку Microsoft .NET и язык Common Language Runtime (CLR).
  • Windows PE не включает виртуальные подсистемы
  • Windows PЕ не поддерживает пакеты MSI
  • Не поддерживается протокол 802.1x.

Из своего опыта скажу, что эти ограничения почти не мешают Windows PE выполнять задачи, возлагаемые на нее администратором. Лично мне в работе помешало лишь отсутствие Wi-Fi(802.1x,если говорить профессиональным языком), и потому я в данное время занимаюсь поиском возможности включения поддержки WiFi в Windows PE.

Архитектура Windows PE


Как происходит загрузка Windows PE с носителя

  • Сначала происходит инициализация загрузчика PBR
  • Далее – загрузка BOOTMGR, запрос в хранилище BCD (аналогично Windows 7, только система хранится не на диске, а в boot.wim)
  • После этого - Создание виртуального диска(рабочей зоны) и перенос в него всех данных из boot.wim
  • Начинается запуск Winload.exe передающий управление Ntoskrnl.exe , запускающий оборудование через библиотеку HAL.DLL
  • В конце запускается процесс Winlogon.exe запускающий программу оболочку, указанную в файле Winpeshl.ini
  • По умолчанию это Cmd.exe , выполняющий командный сценарий startnet.cmd
После этого система готова к работе