Материалы о рабочей средеВосстановление компьютера при помощи Windows PE

Уэс Миллер (Wes Miller)

В предыдущих статьях я упоминал, что нашей первоначальной концепцией Windows PE была среда развертывания. Как и все хорошие продукты, Windows PE далеко вышла за пределы этой концепции. Клиентам (для начала — сборщикам систем) было необходимо создание единого решения, которое бы могло использоваться как для самостоятельного восстановления на производстве, так и для пользовательского самовосстановления, и несколько компаний выпустили такие решения —

решения Windows® PE, работающие во всех случаях.

Большинство существующих сегодня средств восстановления основаны на идее возврата системы к известному рабочему состоянию с помощью зеркалирования процесса развертывания. Windows Vista® еще больше упрощает восстановление по сравлению с Windows XP и предоставляет встроенную поддержку работу с образами (см. статью по технологиям резервного копирования Windows Vista Кристины Фок в этом выпуске журнала TechNet Magazine).

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

Очевидно, необходимо учитывать собственные настройки и модификации, но в этой статье я рассмотрю общие моменты, которые необходимо знать при развертывании Windows XP или Windows Vista. Если вы знакомы с работой с образами, вы уже знаете многие эти моменты.

Вот ключевые компоненты любого решения для восстановления на основе Windows PE:

  • Windows PE;
  • программа для работы с образами;
  • привязывание с помощью сценариев (или формальное приложение) для объединения компонентов.

При необходимости можно включить поддержку SQL и интерфейсов Active Directory® (ADSI). Возможности подключения SQL позволяют косвенно создать решение, предоставляя системе обширную «ведомость материалов», которая определяет необходимые условия для установки. Аналогичным образом подключение к Active Directory удобно для обработки свойств объекта учетной записи для компьютера (per-machine account object – MAO).

Обратите внимание, что включение ADSI в Windows PE не поддерживается корпорацией Майкрософт, но в Интернете доступно довольно много статьей с объяснением того, как такое включение можно выполнить; если оно выполняется правильно, оно работает вполне успешно. Если вам не очень хочется разбираться с ADSI, можно добавить поддержку SQL и создать рабочий процесс для средства восстановления Windows PE. Если какие-либо свойства ADSI все же понадобятся, можно использовать серверную систему с назначенной задачей для обращения к этому же серверу SQL Server™ и последующего обращения к Active Directory через ADSI, фактически осуществляя ретрансляцию.

Решние это не идеально, необходимы определенные сценарии или другая автоматизация, но такая схема позволяет обращаться к Active Directory из Windows PE.

Имейте в виду, что также можно использовать программу LDIFDE для чтения данных Active Directory из Windows PE (дополнительные сведения об этом приведены в статье базы знаний по адресу support.microsoft.com/kb/237677). Например, можно использовать следующую команду:

ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s 
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"

Эта команда используется для получения атрибута от определенного объекта-компьютера в файл x:\output.ldf, в котором затем данные могут быть проанализированы.

Продукты, разрядность и языки

Необходимо учитывать версии, архитектуры и языки операционных систем Windows, которые необходимо развернуть. В небольшой локальной организации, вероятно, будет развертываться только одна операционная система — либо Windows XP, либо Windows Vista — или же будут использоваться компоненты, уже установленные на новых компьютерах. Вам, вероятно, нечасто приходится развертывать 64-разрядные версии Windows — если вы вообще с ними сталкиваетесь. И скорей всего вам необходима поддержка только одного языка. Однако чем больше размер вашей организации и чем обширнее ее участие на международном рынке, тем больше вероятность работы с большим количеством архитектур, версий и настроек.

В одной из предыдущих статей я упоминал, что образы томов x64 и x86 можно сохранять в одном файле WIM (формат Windows Imaging), но это не приведет к экономии места. Если вы занимаетесь созданием решения для восстановления и вам необходимо учитывать обе архитектуры, каждая должна быть сохранена в отдельном файле WIM. Аналогично, при развертывании и поддержке Windows XP и Windows Vista сохранение обеих операционных систем в одном образе не приведет к уменьшению объема. Здесь экономия места достигается, только если многие приложения (например, выпуск 2007 системы Microsoft® Office) включены в оба развертывания. В этом случае файлы приложений не требуется сохранять несколько раз, но значительная экономия места все равно маловероятна.

Методы загрузки Windows PE

Windows PE 1.6

Загрузка с помощью протокола PXE из удаленной установки

Служба (RIS) (без RAMDisk)

Жесткий диск

Флэш-накопитель USB

RAMDisk с помощью протокола PXE

RAMDisk с помощью компакт-диска или диска DVD

RAMDisk с помощью флэш-накопителя USB

RAMDisk с помощью жесткого диска

Windows PE 2.0

RAMDisk с помощью протокола PXE

RAMDisk с помощью компакт-диска или диска DVD

RAMDisk с помощью флэш-накопителя USB

RAMDisk с помощью жесткого диска

Загрузка с помощью протокола PXE через RIS является оптимальным вариантом при необходимости протокола PXE, но стоит заметить, что при использовании этого метода загрузка длится дольше и потребляется больше сетевых ресурсов, чем при использовании RAMDisk с помощью протокола PXE.

Жесткий диск использует минимальный объем памяти, но блокирует привод. Этот метод является идеальным при использовании восстановления с одного раздела на другой.

Флэш-накопитель USB делает загрузку удобной, однако использование накопителя такого рода (для вариантов с RAMDisk и без RAMDisk) является лотереей, если загружаемые системы не проверены изготовителем как допустимые для загрузки с флэш-накопителя USB и для них отсутствует проверка логотипа Windows Vista Capable (обеспечивающая поддержку загрузки с флэш-накопителя USB как требования проверки логотипа). Для загрузки с флэш-накопителя USB необходим скоростной флэш-накопитель (с возможностью чтения и записи), а также контроллер USB и BIOS с поддержкой высокоскоростной шины USB.

Загрузка с использованием RAMDisk (во всех вариантах) требует большего количества памяти, но обеспечивает оптимальную производительность и устраняет необходимость записи Windows PE, помещая ее на RAMDisk в памяти. Загрузка Windows PE 1.6, как правило, должна использоваться в системах с ОЗУ не менее 256 МБ. Windows PE 2.0 (всегда загружающаяся с образа WIM на RAMDisk), как правило, должна использоваться на системах с ОЗУ не менее 384 МБ.

Стоит отметить, что при сохранении несколько продуктов определенной версии Windows в одном файле WIM достигается значительная экономия места. Например, предположим, что Windows XP Professional сочетается с Windows XP Tablet PC Edition или Windows Vista Business Edition сочетается с Windows Vista Ultimate Edition — эти сочетания эффективно используют пространство, поскольку два продукта одного выпуска и уровня пакета обновления используют большую часть общего кода и файлов.

Наконец, поговорим о языках. Чем больше организация, тем больше языков необходимо учитывать. В Windows XP можно выбрать использование локализованных сборок или пакета многоязыкового интерфейса пользователя (MUI). В полностью локализованных сборках Windows XP практически все, даже самые короткие строки, переведены на определенный язык. С другой стороны, в пакете многоязыкового интерфейса пользователя основным языком является английский, а различные пакеты (позднее — пакеты интерфейса пользователя) изменяют максимальное возможное количество строк. (Пакет многоязыкового интерфейса пользователя имел хорошие результаты в Windows 2000 и намного лучшие в Windows XP и Windows Server 2003.)

Если в вашей организации используется пакет многоязыкового интерфейса пользователя, довольно хорошие результаты достигаются при объединении различных языковых версий в одном файле WIM. Это происходит потому, что их основу составляют двоичные файлы на английском языке. Однако это не относится к локализованным версиям до Windows Vista. Поскольку локализованы сами двоичные файлы, они являются различными для разных языков, значит, для каждого языка необходимо сохранять почти всю операционную систему (и все локализованные приложения).

Локализованные версии Windows Vista (локализованные как часть одного двоичного файла с ресурсами) можно считать устаревшими. Windows Vista использует файлы ресурсов MUI для всех языков, включая английский. По существу, Windows Vista — это система, не относящаяся ни к какому конкретному языку. Почти все данные языков содержатся в файлах MUI. Таким образом, сохранение нескольких языковых версий Windows Vista в одном файле WIM приведет к значительной экономии пространства. Сохранение двух, четырех или большего числа языков в одном файле WIM означает, размер образа существенно не изменится, в последствие можно добавлять языки или переключаться между ними при возникновении такой необходимости.

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

Пользовательские варианты

Обычно чем больше становится организация, тем более она усложняется. Это происходит не только из-за размера, но также и из-за всех представленных переменных — большее количество пользователей и подразделений с отдельными потребностями.

Я знаю одну международную организацию, в которой были десятки тысяч пользователей, а процесс развертывания полностью управлялся из одного места как географически, так и организационно. Лицо, управлявшее этой организацией, всегда задавало очень трудные вопросы. Например, руководитель беспокоился о некоторых удаленных пользователях в определенных частях Африки, у которых часто отсутствовало надежное сетевое подключение — фактически, многие из них находились в тысячах миль от телефонной линии. Ему необходимо было знать, как эти пользователи могут восстановить свои системы без простоя в течение нескольких дней и поездок на большие расстояния.

При разработке продукта, а в этом смысле решение восстановления следует рассматривать в качестве продукта, необходимо подумать о пользователях. Необходимо думать не только об определенных потребностях бизнеса, но также и о сложностях, связанных с различными категориями пользователей. Следует включить примеры использования с короткими описаниями всех типов конечных пользователей, поддержка которых необходима. Это поможет выявить пользователей, случайно не включенных в решение восстановления, и обеспечить учет всех типов пользователей.

Верная версия Windows PE

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

  • Выполняется восстановление только Windows XP (или Windows Server 2003).
  • Восстанавливаются системы, не являющиеся совместимыми со стандартом ACPI.
  • Восстанавливаются системы с объемом ОЗУ менее 512 МБ.
  • Восстанавливаются системы с необходимостью загрузки по протоколу PXE и с ОЗУ менее 256 МБ.

Если верно хотя бы одно из перечисленных ниже утверждений, следует использовать Windows PE 2.0.

  • Выполняется восстановление только Windows Vista (или Windows Server 2008).
  • Восстанавливается и Windows Vista, и Windows XP.
  • Используется BitLocker™.

Обратите внимание, что ImageX (см. раздел «Создание, обновление и сохранение») и большинство решений для работы с образами сторонних производителей хорошо работают с обеими версиями Windows PE.

Загрузка Windows PE

Следующее, что необходимо учитывать, это способ загрузки Windows PE. Здесь ключевую роль играют особенности условий работы пользователей. Могут ли пользователи перевозить компакт-диски или диски DVD для восстановления? Могут ли пользователи использовать диски с переносными компьютерами во время поездок? Как осуществляется регулярное обновление носителей? Образы восстановления на съемных носителях могут очень быстро устаревать.

Наиболее часто использующимся вариантом, который я встречал, являлся дополнительный раздел жесткого диска. Другой возможностью является загрузка по протоколу PXE. Или же можно использовать внешние накопители USB или даже флэш-накопители USB, но имейте ввиду, что рассматриваемое оборудование должно явным образом поддерживать загрузку с флэш-накопителя USB.

На врезке «Методы загрузки Windows PE» описаны поддерживаемые методы для загрузки каждой версии Windows PE и важные моменты, касающиеся каждого метода.

Целью загрузки Windows PE должен являться запуск процесса восстановления с соблюдением определенного критерия.

  • Минимальное взаимодействие с пользователем.
  • Минимальное количество перемещаемых компонентов (съемные носители или устройства).
  • Компьютеры могут быть не подключены к сети.
  • Компьютеры могут не загружаться локально (сбой загрузки Windows).

Администраторы часто считают размещение Windows PE (обычное или на RAMDisk) на жестком диске невозможным из-за возможности сбоя диска, но в действительности этот вариант можно использовать: во-первых, современные диски весьма надежны, а во вторых, при сбое физического диска пользователь все равно не сможет восстановить систему самостоятельно.

Я предпочитаю создать дополнительный раздел для хранения образа восстановления. Я не сторонник делать этот раздел скрытым  — это может озадачить пользователей. Использование на нем списка управления доступом (ACL) является возможным только в том случае, если пользователи являются локальными администраторами.

Благодаря сжатию раздела для Windows (см. врезку «Создание раздела восстановления») можно освободить достаточное пространство для хранения Windows PE и образа восстановления. Для размещения Windows PE на дополнительном разделе необходимо просто создать соответствующий загрузочный сектор в разделе восстановления и разместить в этом разделе Windows PE (в документации Windows AIK и более ранних версий Windows PE объясняется этот процесс, поэтому я не буду здесь подробно рассматривать его). Следует помнить, что раздел для загрузки определяется тем, какой раздел отмечен активным. Программа Diskpart использует флаг активности и такой же важный флаг неактивности. Для загрузки раздела восстановления из Windows (или из копии Windows PE) используйте программу Diskpart для переключения между активными разделами (см. рис. 1). Ниже приведен пример сценария Diskpart (используйте diskpart /s nameofscript.txt), используемого для переключения одного диска системы с двумя разделами:

SEL DIS 0 
SEL PAR 1 
INACTIVE
SEL PAR 2
ACTIVE
EXIT 

Рис. 1 Изменение активного раздела средством Diskpart

Рис. 1** Изменение активного раздела средством Diskpart **(Щелкните изображение, чтобы увеличить его)

Этот процесс используется множеством пользовательских средств восстановления для перестановки разделов, что может быть выполнено только из Windows PE для определенных типов разделов, таких как скрытые разделы, созданные сборщиком системы. Иногда эти средства также раскрывают подобные скрытые разделы.

Создание, обновление и сохранение

Создание раздела восстановления

Процесс создания раздела восстановления, не затрагивающего целостность Windows, не является сложным, если вы знаете последовательности этого процесса. Ниже приведен краткий обзор необходимых действий. Обратите внимание, что для этого процесса необходима среда Windows PE 2.0. Хотя вы можете и не использовать Windows PE 2.0 для развертывания или восстановления, для выполнения этой задачи необходимо использовать версию 2.0. Этот процесс также может использовать при развертывании Windows Vista и для создания загрузочного раздела для использования с загрузочными файлами BitLocker, поскольку для BitLocker необходимо не менее двух разделов (один для загрузочных файлов, а второй для системы Windows).

  1. Выполните дефрагментацию диска (это может помочь ускорить процесс сжатия, который занимает достаточно длительное время)
  2. Загрузите Windows PE 2.0
  3. Запустите программу Diskpart (при необходимости можно создать сценарий для действий 4 – 9 и передать diskpart следующий аргумент: /s имя_сценария
  4. SEL VOL 1 (или том для сжатия).
  5. SHRINK DESIRED=N MIN=N (указанный в мегабайтах, DESIRED — это цель, а MIN — абсолютный необходимый минимум).
  6. После завершения сжатия запустите SEL DIS 0.
  7. CRE PAR PRI (при необходимости указания размера, отличного от размера оставшегося на диске места, можно указать SIZE=N).
  8. ASSIGN LETTER=N: (эта буква предназначена для использования только средой Windows PE).
  9. Выйдите из программы Diskpart.
  10. FORMAT N: /Q /Y /FS:NTFS (форматирование нового раздела под NTFS).
  11. Запустите bootsect N: /nt60 для 2.0, /nt52 для 1.x).
  12. Скопируйте необходимые файлы Windows PE в раздел восстановления.
  13. Завершите работу системы.

Хотя ImageX — это бесплатное решение, вы можете уже пользоваться другим средством работы с образами. Вы можете использовать любое удобное для вас средство. При использовании ImageX необходимо отметить несколько преимуществ (кроме отличной цены). В частности, ImageX является очень конкурентным средством. Что также приятно, дополнение и изменение образа осуществляются довольно просто.

Мне также нравится, что ImageX позволяет безболезненно создать образ одного или нескольких томов, сохраняя данные пользователя простым перемещением. Другими словами, при восстановлении Windows удаление всего тома не требуется.

Затем, разумеется, необходимо определить место сохранения образа. Если допустить, что решение использует раздел восстановления, в нем можно сохранить файл WIM и другие файлы для работы с образами. Можно даже использовать службы развертывания Windows (WDS), создавая стандартный образ операционной системы и сохраняя его в сети. Это позволяет создать общее решение для восстановления, доступное во всей инфраструктуре. Конечно, если пользователи работают в географически удаленных регионах (как в упомянутой выше организации), необходимо обеспечить наличие у них собственных решений, когда сеть для них недоступна.

Ранее я упоминал, что можно использовать носители, например диски DVD, но существует ряд причин, по которым мне не нравится использование этого способа в качестве обычного. Например, размер образа может быстро увеличиться и превысить размер диска DVD, а такие диски не могут быть быстро обновлены. Это не означает, что оптические носители не используются; необходимо просто определить наилучший вариант для каждого типа пользователей. Я предпочитаю сохранять образ в разделе восстановления, на жестком диске USB или флэш-накопителе USB, или, если возможно, в сети с помощью WDS.

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

Вопросы данных и параметров пользователя

При создании решения восстановления необходимо учитывать несколько моментов. Ключевым аспектом планирования любого решения восстановления является обеспечение безопасности данных пользователя. Вам же не нужно, чтобы пользователь на месте выполнял восстановление только для того, чтобы узнать, что в результате этого он потерял все важные данные. В идеальном случае данные пользователя должны быть сохранены не в разделе C:, если вас беспокоит выполнение восстановления системы.

Я уже упоминал, что ImageX позволяет выполнять неразрушительное восстановление диска. Например, это средство переместит существующее дерево каталогов Documents and Settings (или Users) в другой каталог, чтобы пользователь или сценарий могли восстановить файлы вручную после выполнения восстановления. Пользователи, сохраняющие все свои файлы в своем профиле или использующие перемещаемые профили, в большинстве случаев должны иметь возможность восстановить систему без потери своих данных, но важно помнить, что, чтобы избежать потери некоторых данных пользователя, необходимо очень аккуратно создавать решение для восстановления или иметь отличное решение для резервного копирования.

Помните, что вопреки вашим ожиданиям некоторые пользователи будут сохранять данные не в своих профилях. Необходимо обеспечить, чтобы решение учитывало, что оно может случайно удалить данные пользователей, и заблаговременно предупреждать пользователей об этом.

При использовании файловой системы EFS убедитесь, что выполнен план восстановления ключей — вы же не хотите потерять данные из-за невозможности восстановления зашифрованных данных. Аналогично, в случае BitLocker вы должны быть подготовлены к восстановлению зашифрованных томов. Это означает, что нужно использовать Windows PE 2.0 (1.x не может взаимодействовать с BitLocker). Дополнительные сведения о восстановлении BitLocker приведены на веб-узле blogs.msdn.com/si_team.

Наконец, будьте готовы к тому, что некоторых пользователей будет огорчать потеря своих настроек или приложений. Настройки (приложений и самой системы Windows) сохраняются в случайных местах, не обязательно в профиле пользователя. При восстановлении всего раздела операционной системы некоторые пользователи будут спрашивать «куда исчезло приложение X?» или «Почему пропала кнопка Y в приложение Word?» Объясните пользователям, что среда может быть не совсем такой, какой была днем раньше.

Создание собственного решения при помощи Windows PE занимает некоторое время, и при планировании и создании решения необходимо думать о пользователях. Решение для восстановления не должно быть слишком сложным — оно просто должно обеспечивать пользователям выполнение восстановления и возврат к работе за минимальное количество времени с ограниченным обращением в службу технической поддержки.

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

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