Windows Vista

Готовимся к Windows PE 2.0

Вес Миллер (Wes Miller)

 

Краткий обзор:

  • Технология Microsoft Windows Imaging
  • Обновление и обслуживание драйверов
  • Автоматическая пользовательская настройка установки

В последних двух выпусках журнала TechNet Magazine я рассказал о Windows Preinstallation Environment (или Windows PE) с описанием различных проектных решений и того, как можно сегодня использовать Windows® PE. В данной статье я собираюсь уделить большое внимание Windows PE 2.0, т.е. версии, которая будет поставляться вместе с Windows Vista™. В данной статье не проводится подробное рассмотрение способов использования отдельных функций. А вместо этого дается обзор новых функций и возможностей, которые вы найдете в Windows PE 2.0. В этой статье я дам вам практическую информацию, а подробно применение Windows PE 2.0 будет рассмотрено в дальнейших статьях.

Как только началась работа над Windows Vista, группа по установке Windows (в которую я входил в то время) сконцентрировала свое внимание на создании совершенно новой архитектуры установки, создании нового инструмента формирования образов для облегчения установки, а также на разработке смены для Remote Installation Services (RIS). Но потом наше внимание переключилось на промежуточный Windows PE и Windows XP Service Pack 2 (SP2), а затем на Windows Server® 2003 SP1. Это означало некоторую задержку наших работ по разработке Windows PE в Windows Vista. Но обновление промежуточного Windows PE позволило нам получить некоторые функции, которые мы изначально планировали включить в версию Windows PE 2.0, поэтому наши усилия не сильно затянули получение желаемого результата.

Объектом пристального внимания группы разработчиков Windows PE стала устойчивая работа и случаи типичного применения пользователем Windows PE при определении новых функций, которые мы хотели включить (см. врезку "Новые возможности Windows PE 2.0"). Давайте подробно рассмотри основные новые функции.

Работа с образами

Необходимо понять некоторые основные принципы технологии Microsoft® Windows Imaging (WIM) и Windows Deployment Services. WIM разрабатывался с нуля для использования при установке Windows в виде образов (ранее они назывались образы Sysprep). По сравнению со многими инструментами формирования образов, которые были основаны на секторах, WIM строится на базе файлов. Это означает, что вместо дублирования каждого сектора жесткого диска WIM считывает каждый файл и его соответствующие метаданные (списки управления доступом, короткие и длинные имена файлов и т.д.) и сохраняет эти данные в один файл.

Одним из основных преимуществ образов WIM является то, что в одном файле WIM может храниться копия нескольких томов (каждая называется образом тома). И независимо от того, сколько копий собрано, каждый отдельный файл сохраняется только один раз. Это называется технологией однократного копирования (Single Instancing). По функции методика похожа на ту, которая используется в Remote Installation Services, хотя используемая технология имеет большие отличия. Инструмент создания образов WIM называется ImageX. (Обратите внимание, что ранее он назывался XImage, но впоследствии его название поменялось.)

Поскольку мы занимаемся разработкой Windows Vista и его нового механизма установки на базе образов (в котором использовался бы Windows PE для установки операционной системы), мы поняли, что могли бы использовать некоторые ухищрения для экономии места на носителе. Тогда мы не были уверены, будет ли Windows Vista поставляться на CD или DVD, и поэтому были вынуждены свести к минимуму пространство на диске, занимаемое самой установкой. Поскольку версии всех файлов, включающих Windows PE на CD, были такими же, как файлы в файле WIM, расположенные рядом с ним, мы начали задумываться над включением Windows PE в сам файл WIM и осуществлении загрузки непосредственно из него. Благодаря проделанной внушительной работе, проведенной одним из разработчиков архитектуры из группы разработки операционных систем Windows Core, наша идея легла в основу ряда моделей и была интегрирована в продукт до предварительного рассмотрения разработчиков "Longhorn" (теперь Windows Vista), проведенного на Конференции профессиональных разработчиков в 2003. Сегодня Windows PE размещается в одном файле WIM на носителе (boot.wim), а средства установки размещаются в другом (install.wim). Несмотря на то, что технология однократного копирования (single instancing) между Windows PE и Windows, которую мы рассмотрели ранее, больше не является частью средств установки, Windows PE все еще использует ограниченное пространство, получающееся при сжатии на диске. С интеграцией функции загрузки RAMDisk, включенной в Windows PE 1.6, была также добавлена возможность подкачки средств (удаление исходного загрузочного CD/DVD после завершения начальной загрузки), так как предварительная работа по загрузке WIM была завершена.

Включить образ Windows PE в WIM так же просто, как использовать ImageX для считывания файлов (мы рассмотрим это подробнее в предстоящей статье) и сделать образ загрузочным, указав признак загрузки “/” в ImageX. Представьте себе, что это сектор загрузки. Когда Windows Boot Manager загружает файл WIM, включенная метка с признаком загрузки “/” указывает, какой образ (один или несколько) в файле WIM является загрузочным. Обратите внимание, что только Windows PE может загружать из файла WIM. Нельзя загрузить всю Windows Vista из WIM. WIM также, как и в случае в CD или DVD, предназначен только для чтения. Таким образом, нельзя загружать из WIM-образа Windows PE и менять какой-либо файл. Для внесения каких-либо изменений в Windows PE вам необходимо изменить сам WIM.

Работа с драйверами

При рассмотрении Windows PE мы всегда обращали внимание на поддержку запоминающего устройства и сетевого устройства. Кроме того, все еще были случаи, когда для Windows PE не было поддержки для определенных устройств новых систем. Windows PE 1.5 имел лучшую поддержку для добавления драйверов устройств, но с появлением Windows PE 2.0 ситуация изменилась. Теперь поддерживаются все типы устройств, они начинают работать после загрузки—нет необходимости в использовании спасительных средств factory.exe или drvinst.exe. Для добавления нового драйвера устройства в Windows PE 2.0 просто запустите новый инструмент peimg.exe, который добавит соответствующие драйверы. Приведенная здесь синтаксическая структура проста:

peimg.exe /inf drivername.inf builddirectory\Windows

Просто замените drivername на имя .inf (специальные символы, например net*.inf, допустимы) и замените builddirectory на имя каталога, в котором создается ваш образ Windows PE.

Рабочее пространство

Проблема, с которой приходится часто сталкиваться при работе приложений под Windows PE, заключается в том, что многие приложения Windows (и даже многие компоненты самого Windows) должны выполняться в перезаписываемой памяти. Многие из них не самым лучшим образом ведут себя при работе с носителя, предназначенного только для чтения, например CD-R. Например, когда я в первый раз попытался запустить Microsoft Internet Explorer® под Windows PE (и в результате, когда я попробовал только MSHTA или Microsoft HTML Application, компоненты Windows), основные библиотеки DLL не регистрировались, так как требовали перезаписываемой памяти для выполнения некоторых задач в рамках процесса регистрации.

В Windows PE 2.0 такой проблемы не существует, поскольку теперь есть до 32Мб свободного рабочего пространства для записи файловой системы. В результате, компоненты, которые ранее не работали из-за признака “только для чтения” Windows PE, теперь будут работать, поскольку они могут делать необходимые записи на диске. Это отличается от RAMDrive для рабочего пространства (поскольку оно регулярно используется пользователями Windows PE) тем, что рабочее пространство находится на том же томе, что и загрузочный том—в отличие от другого временного диска.

Дополнительные компоненты

Как в предыдущих версиях Windows PE, новая версия предусматривает дополнительные компоненты, которые могут использоваться для подключения дополнительных функций. (Конечно, они увеличивают размер, поэтому и являются дополнительными.) По-прежнему обеспечивается поддержка для Windows Script Host (WSH), Windows Management Instrumentation (WMI) и MSHTA. Теперь вы можете добавить поддержку для MSXML, Windows Vista Recovery Environment, дополнительных шрифтов Windows и формальных компонентов Microsoft Data Access Components (MDAC), которая заменяет прежний ADO на поддержку SQL, частично включающую поддержку MDAC). Однако при этом, самым значимым изменением является то, насколько легко можно добавить эти компоненты. Вместо ввода посредством трудного сценария WSH, компоненты можно легко добавить или удалить при помощи peimg.exe—инструмента, используемого для добавления драйверов, который мы рассмотрели ранее.

Языковые пакеты

Одним из первых основных принципов Windows Vista было использование концепции Multilanguage User Interface (MUI) – она была введена в Windows 2000 и усовершенствована в Windows XP - а также ее применение в операционной системе. В Windows 2000 и Windows XP вы можете выбрать другой язык, кроме английского, а вот сам MUI основан прежде всего на английской версии операционной системы. То есть вы можете установить любой другой язык, но при условии наличия английского.

Эта ситуация была исправлена в Windows Vista. Хотя я не собираюсь подробно останавливаться на деталях, я должен отметить, что эти изменения существенны для Windows PE. В предыдущих версиях Windows PE не было формальной поддержки MUI. Необходимо было создать ее из локализованного языка Windows, для которого вам нужна была языковая поддержка. Теперь добавление и изменения языковой поддержки осуществляется таким же образом, как в любом другом дополнительном компоненте—с использованием peimg.exe для добавления или удаления языковых пакетов и, тем самым, удовлетворения своим конкретным требованиям по Windows PE.

Улучшение обслуживания

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

Именно это привело нас к мысли включить Windows Firewall в Windows PE 1.5. И после этого группа предложила обслуживать последующие версии Windows PE как полную версию Windows. Одной из ключевых тем для рассмотрения стало улучшение обслуживания Windows Vista. Для Windows PE это также актуально. И как и в случае с другими дополнительными компонентами и языками, в Windows PE используется peimg.exe для выполнения обновлений. Они будут загружаться через Windows Download Center.

Автоматическая файловая поддержка

Вам может быть знаком winbom.ini, который использовался в ранних версиях Windows PE для запуска небольшого приложения под названием factory.exe. В новых версиях их заменили. Теперь предусмотрена новая инфраструктура XML, которая используется для настройки Windows PE (это такой же механизм XML, используемый для автоматической установки в Windows Vista), а также новое приложение под названием wpeinit.exe.

В wpeinit.exe используется стандартный формат unattend.xml в Windows Vista для задания пользовательской настройки и действий Windows PE. На Рисунке 1 показан пример файла unattend.xml, который можно использовать для настройки Windows PE. Формат для файла unattend.xml документируется в рамках Windows OEM Preinstallation Kit (OPK) и Windows Automated Installation Kit (WAIK), которые мы рассмотрим ниже.

Figure 1 Архитектура файла unattend.xml

XML File Комментарии
<ComputerName>MyWinPEMachine</ComputerName>
Установить имя компьютера MyWindowsPEMachine под Windows PE.
<Restart>Shutdown</Restart>
Завершить работу системы при перезапуске (а не перезагружать как предыдущие версии Windows PE).
<RunSynchronous>
 
<RunSynchronousCommand> <Order>1</Order> <Path>notepad.exe</Path> </RunSynchronousCommand>
Выполняется notepad.exe.
<RunSynchronousCommand> <Order>2</Order> <Path>cmd.exe</Path> </RunSynchronousCommand>
По завершении notepad.exe выполняется cmd.exe.
</RunSynchronous>
 
<EnableFirewall>true</EnableFirewall>
Включает Windows Firewall при загрузке.
<PageFile> <Size>1000</Size> <Path>C:\pagefile.sys</Path> </PageFile>
Устанавливает pagefile размером 1Гб на диске C:
<LogPath>C:\mylog.txt</LogPath>
Регистрирует результаты wpeinit.exe и записывает их в C:\mylog.txt.

Службы Windows Deployment Services

Как я упоминал ранее, одной из наших основных целей было совершенствование сетевой установки посредством перехода к единой инфраструктуре при запуске установки либо с CD, DVD, либо из сети. К сожалению, при выполнении установки Windows на базе RIS происходит совсем немного дополнительных операций. Нам хотелось избежать такой сложности и избыточности насколько это возможно, и с этой целью мы создали Windows Deployment Services.

Как и RIS, Windows Deployment Services представляют собой средства установки на базе PXE. Но в отличие от RIS, она запускает Windows PE по сети и использует такую же установочную инфраструктуру на базе образов, как и при обычной установке с CD или DVD, но обеспечивает такой же тип централизованной установочной инфраструктуры предприятия, какой выпускается в RIS со времени Windows 2000. Еще много можно говорить о WIM и Windows Deployment Services, но рамки нашей статьи ограничены. Но не волнуйтесь, мы вернемся к детальному рассмотрению этой темы в следующей статье—будьте начеку!

Использование WAIK

Может быть, сейчас вы спрашиваете, как начать работу с Windows PE 2.0. Сначала нужно установить WAIK. Предыдущие версии Windows PE поставлялись в пакете с Windows OPK или средствами Software Assurance. Поскольку Windows PE 2.0 планируется предоставить всем лицензионным пользователям Windows, то Microsoft создала WAIK для пользователей, не относящихся к OEM.

WAIK предусматривает все инструменты построения Windows PE, необходимые для создания своей собственной копии Windows PE 2.0. В настоящий момент вы можете получить WAIK в рамках Windows Business Desktop Deployment (BDD) 2007 beta. В дополнение к WAIK, в BDD приведено руководство по использованию WAIK и его средств. Конечно, само собой разумеется, что для того, чтобы наиболее эффективно освоить Windows PE 2.0 и все другие новые технологии установки и применения, входящие в Windows Vista, нужно как можно быстрее начать экспериментировать с ними.

Новые возможности Windows PE 2.0

В Windows PE 2.0 включены все функции, имеющиеся в Windows PE 1.6, и добавлен ряд новых возможностей и компонентов, включая:

  • Загрузка из образа Microsoft Windows Imaging (WIM)
  • Прокачка драйвера и поддержка Plug and Play в реальном времени
  • Перезаписываемое рабочее пространство (даже при загрузки с CD)
  • Легко добавляемые дополнительные компоненты—Microsoft Core Extensible Markup Language Services, Windows Recovery Environment, Microsoft Data Access Components
  • Языковые пакеты
  • Автоматическая файловая поддержка
  • Усовершенствованные инструменты для построения и обновления Windows PE

Вес Миллер (Wes Miller) является менеджером по развитию в компании “Pluck” (www.pluck.com) в г. Остин, штат Техас. Раньше Вес работал в компании Winternals Software в г. Остин, и в корпорации Microsoft в должности руководителя проекта и менеджера по продукции для Windows. С Весом можно связаться по адресу technet@getwired.com.

© 2008 Корпорация Майкрософт и компания CMP Media, LLC. Все права защищены; полное или частичное воспроизведение без разрешения запрещено.