Глава 6

Реестр, загрузка системы и предотвращение сбоев

Как говорилось в главе I, реестр операционной системы Windows XP играет исключительно важную роль — фактически он управляет всей конфигурацией компьютера. Помимо этого, также как и в Windows NT/2000, информация, хранимая в реестре, управляет и процессом загрузки. Понимание того, как информация реестра влияет на последовательность загрузки Windows XP, позволяет решать многие проблемы с невозможностью запуска или некорректным запуском этих операционных систем.

Примечание 

Как уже отмечалось, процесс загрузки Windows XP очень напоминает загрузку Windows NT/2000. И это неудивительно, поскольку система Windows XP была создана на основе ядра Windows NT/2000. Однако в этой области имеется несколько усовершенствований, которые будут отмечены в этой главе. К ним относятся использование логического упреждения (logical prefetching) для ускорения загрузки, модернизация загрузчика, а также усовершенствование процесса загрузки системы в целом.

Важность роли системного реестра невозможно переоценить, поскольку он нужен уже на этапе работы загрузчика. Так, если на этапе работы загрузчика улей \SYSTEM, необходимый в том числе и для загрузки драйверов, не будет обнаружен (или окажется поврежденным), то на экране появится то самое сообщение об ошибке, которое было приведено в начале главы 1:

Windows 2000 Could not start because the following 
 file is missing or corrupt: 
 \WINNT\SYSTEM32\CONFIG\SYSTEM 
 You can attempt to repair  this file by Starting
 Windows 2000 Setup using
 the original Setup floppy  disk of CD-ROM. 
 Select 'r' at the first screen to repair. 

Улей реестра \SYSTEM в работающей системе видим для пользователей в составе дерева HKEY_LOCAL_MACHINE. Этот улей определяет порядок загрузки всех драйверов системы, и доступ к нему получают как загрузчик операционной системы (NTLDR), так и Диспетчер ввода/вывода (I/O Manager).

Каждый драйвер, существующий в системе, имеет свой ключ в составе ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Любой из таких ключей, в свою очередь, имеет в своем составе параметр start. Значение, присвоенное параметру start, имеющемуся в составе ключа каждого конкретного драйвера, определяет, на каком этапе загрузки системы производятся загрузка и инициализация данного драйвера. Более подробную информацию об этом параметре можно найти в следующих разделах данной главы.

 

Реестр и загрузка системы

Процессы, имеющие место при успешном запуске компьютера, работающего под управлением Windows NT/2000/XP, перечислены ниже:

 Примечание

Процесс запуска начинается, когда пользователь выполняет одно из следующих действий:

Однако, эта последовательность не применима к возобновлению работы после спящего (hibernate) и ждущего режимов (standby).

Рис. 6.1. Окно Завершение работы Windows

Для Windows XP, функционирующей на базе системы Itanium, можно выделить следующие этапы загрузки:

К тому моменту, когда производится регистрация пользователя в системе, компьютер уже завершает загрузку Windows NT/2000/XP и большую часть процесса инициализации. Однако полностью все процессы будут завершены только после успешной регистрации пользователя в системе.

Для начала успешной загрузки Windows NT/2000/XP необходимо соблюдение следующих условий:

 

Процесс самотестирования при включении

При включении питания или перезагрузке компьютер проходит стадию самотестирования при включении (Power On Self Test, POST), представляющую собой набор тестов, предназначенных для определения правильности функционирования аппаратных средств. В случае возникновения проблем с аппаратными средствами или настройкой компьютера уже на стадии самозагрузки, POST сигнализирует об этом серией звуковых сигналов. Для подобных случаев следует иметь под рукой сопроводительную документацию, полученную от поставщика в комплекте с компьютером.

Программа POST решает описанные ниже задачи.

При обнаружении проблем, связанных с аппаратными средствами или установками BIOS, программа POST выдает серию звуковых сигналов. Программа POST управляется системной BIOS компьютера и зависит от конкретного компьютера. Поэтому документацию на компьютер рекомендуется всегда иметь под рукой.

Тема отыскания и устранения неисправностей в аппаратном обеспечении компьютера выходит за рамки данной книги. Фактически, она заслуживает отдельного исчерпывающего тома. Однако можно порекомендовать обратиться к полезным ресурсам по данному вопросу в сети, которые помогут получить представление о кодах ошибок BIOS:

Примечание 

Процессы выполнения POST для систем, функционирующих на основе Itanium, подобны процессам, выполняемым в системах на базе процессоров х86. Расширяемый интерфейс встроенных программных средств (Extensible Firmware Interface, EFI) осуществляет элементарную проверку аппаратного обеспечения, подобную той, которую осуществляет BIOS, и проверяет наличие устройств, необходимых для запуска системы. Спецификация EFI, в настоящее время реализованная лишь для систем на базе Itanium, определяет новую модель интерфейса между операционными системами и встроенным программным обеспечением платформы. Для получения более подробной информации о спецификации EFI см. ссылку EFI на странице Web Resources по адресу: http://www.microsoft.com/windows/reskit/webresources.

 

Файлы, необходимые для запуска системы

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

Файлы, необходимые для успешного запуска Windows NT/2000/XP на компьютерах х86, перечислены в табл. 6.1.

Таблица 6.1. Файлы, необходимые для запуска Windows NT/2000/XP

Файлы

Местоположение

NTLDR

Корневой каталог системного раздела

Boot.ini

Корневой каталог системного раздела

Bootsect.dos*

Корневой каталог системного раздела

Ntdetect.com

Корневой каталог системного раздела

Ntbootdd.sys (только для SCSI)

Корневой каталог системного раздела

Ntoskrnl.exe

%SystemRoot%%\System32

Hal.dll

%SystemRoot%\Sysiem32

Улей реестра \SYSTEM

%SystemRoot%\System32\Config

Драйверы устройств

%SystemRoot%Sysiem32\Dr\vers

* Только в системах с двойной загрузкой, где в качестве альтернативной операционной системы используются MS-DOS, Windows 3.1.x или Windows 9x. Этот файл необходим для загрузки альтернативной операционной системы. Для построения мультизагрузочной системы, где в качестве альтернативных ОС используются UNIX и Linux, можно скопировать первый сектор раздела, на котором установлена эта операционная система, в файл на системном разделе NT/2000, и назвать этот файл, например, C:\Bootsect.inx или C:\Bootsect.bsd (по аналогии с C:\Bootsect.dos), а затем отредактировать файл Boot.ini, добавив в раздел [operating systems] строки типа

С:\BOOTSECT.LNX="Linux"  
 С:\BOOTSECT.BSD="FreeBSD" 

 Примечание 

Ввиду отличий между системами на базе Itanium и системами х86, некоторые файлы, которые необходимы для запуска систем х86, для систем на базе Itanium не нужны. К этим файлам относятся: Boot.ini, Ntdetect.com и NTLDR.

Файл Boot.ini не требуется, поскольку информация, которая раньше хранилась в нем, теперь хранится в NVRAM. Необходимость в файле Ntdetect.com также отпала, поскольку в отличие от систем х86, системы Itanium являются полностью совместимыми со спецификацией ACPI, и поэтому нет необходимости в определении основного аппаратного обеспечения. Все аппаратное обеспечение определяется и инициализируется операционной системой Windows XP в соответствии с требованиями спецификации ACPI. Файл NTLDR представляет собой загрузчик для систем х86. Он не нужен, т. к. в системе на базе Itanium используется другой загрузчик— IA64ldr.efi.

Файлы, необходимые для запуска Windows XP на системах Itanium, перечислены в табл. 6.2. Они размещены в системном разделе EFI — первом разделе загрузочного диска.

Таблица 6.2. Файлы, необходимые для запуска Windows XP на системах Itanium

Имена файлов и папок

Местоположение

Описание

FPSWA.efi

Корневой каталог системного раздела EFI

Поддерживает операции с плавающей точкой EFI

MSUtil (папка)

Находится в корневом каталоге системного раздела EFI

Содержит инструментальные средства EFI

IA64ldr.efi

Папка EFI\Microsoft\WinNT50.x в ESP

Загрузчик операционной системы. Указанный путь зависит от количества инсталлированных операционных систем

Ntoskrnl.exe

%SystemRoot% System32

Ядро (kernel) операционной системы Windows XP. Программный код операционной системы, являющийся частью ядра, выполняется в специальном привилегированном процессорном режиме, с прямым доступом к системным данным и аппаратным средствам

Hal.dll

%SystemRoot% System32

Файл динамически загружаемой библиотеки уровня аппаратных абстракций (Hardware Abstraction Layer, HAL). HAL обеспечивает изолирование или абстрагирование операционной системы от низкоуровневой аппаратной ее части и предоставляет общий программный интерфейс для однотипных устройств (например, видеоадаптеров)

Файл реестра System

%SystemRoot%\ System32\Config\System

Ключ реестра

HKEY_LOCAL_MACHINE \SYSTEM

Драйверы устройств

%SystemRoo1°A System32\Drivers

Файлы драйверов для различных устройств

 Примечание

В Windows NT, Windows 2000 и Windows XP, в отличие от других операционных систем, такие понятия как "системный раздел" (system partition) и "загрузочный раздел" (boot partition) различаются. Это очень важно знать. В системном разделе находятся файлы, которые необходимы для запуска Windows NT/2000/XP. Загрузочный раздел, в котором содержатся каталоги %SystemRoot% и %Sysfemf?oof%\System32, может располагаться на этом же или другом физическом диске. %SystemRoot% является переменной окружения.

 

Процесс инициализации при запуске

После успешного завершения процедуры POST начинается процесс инициализации при запуске, в ходе которого системная BIOS пытается обнаружить загрузочный диск. Порядок поиска загрузочного диска (флоппи-дисководы, жесткие IDE- и SCSI-диски, устройства CD-ROM) задается BIOS, которая позволяет переконфигурировать этот порядок, называемый последовательностью загрузки (boot sequence). Подробную информацию о редактировании последовательности загрузки можно найти в сопроводительной документации к вашему компьютеру. Если при этом дисковод А: включен в последовательность загрузки первым, и в нем находится дискета, системная BIOS попытается использовать эту дискету в качестве загрузочной. Если дискеты в дисководе нет, системная BIOS проверяет первый жесткий диск, который к этому времени уже инициализировался. Для процесса запуска огромное значение играет первый сектор жесткого диска, который содержит главную загрузочную запись (Master Boot Record, MBR) и таблицу разделов (Partition Table).

Системная BIOS считывает главную загрузочную запись и загружает ее в память, а затем передает ей управление. Код, содержащийся в главной загрузочной записи, сканирует таблицу разделов в поисках системного раздела. Найдя системный раздел, MBR загружает в память его нулевой сектор и исполняет код, содержащийся в этом секторе. Сектор 0 на системном разделе, так называемый загрузочный сектор раздела (partition boot sector), содержит загрузочный код операционной системы. Этот код и осуществляет запуск операционной системы определенным для нее способом.

Примечание

Для успешной загрузки Windows NT/2000/XP с дискеты требуется, чтобы ее первым сектором был загрузочный сектор раздела. Кроме того, на этой дискете должны присутствовать все файлы, необходимые для загрузки Windows NT/2000/XP.

Если на первом жестком диске нет системного раздела, главная загрузочная запись отобразит одно из следующих сообщений об ошибках:

Как правило, главная загрузочная запись не зависит от конкретной операционной системы. Например, на компьютерах х86 одна и та же главная загрузочная запись служит для запуска Windows NT/2000/XP, Windows 9x, а также комбинации "MS-DOS/Windows ЗЛУ. Что касается загрузочного сектора раздела, то он зависит как от операционной системы, так и от используемой файловой системы. На компьютерах х86 загрузочный сектор раздела Windows NT/2000/XP отвечает за выполнение перечисленных ниже действий.

На компьютерах х86 системный раздел должен находиться на первом физическом жестком диске. Загрузочный раздел (тот, что содержит системные файлы операционной системы Windows NT/2000/XP) может совпадать с системным разделом, но допустимо также его размещение и в другом разделе того же жесткого диска или даже на другом жестком диске.

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

Если в дисководе А: имеется дискета, системная BIOS загрузит в память первый сектор этой дискеты. Если дискета является системной, то ее первый сектор представляет собой загрузочный сектор раздела (Partition Boot Sector). Если дискета не является загрузочной, то вы увидите на экране примерно следующее сообщение об ошибке:

Non-System disk or disk error 
 Replace and press any key  when ready 

если дискета отформатирована в формате DOS, или же

Ntldr is missing 
 Replace and press any key when ready

если диск отформатирован в Windows NT/2000/XP.

Если необходимо загрузить систему с загружаемого компакт-диска (например, для инсталляции Windows XP с дистрибутивного CD или для использования консоли восстановления с компакт-диска (CD-based Recovery Console)), то вам следует установить CD-ROM в качестве основного загрузочного устройства — первым пунктом в списке порядка загрузки. При загрузке системы с загрузочного компакт-диска с системой Windows ХР, программа Setup проверяет жесткий диск на наличие установленной копии Windows XP. Если программа Setup обнаружит, что на диске имеется установленная система, то она предложит опцию обхода запуска с CD-ROM (для этого достаточно не отреагировать на предложение системы Press any key to boot from CD-ROM). Если в течение трех секунд вы не нажмете какую-либо клавишу, то программа Setup выполняться не будет и компьютер передаст управление от CD-ROM к жесткому диску.

 Примечание 

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

 

Работа загрузчика

Загрузчик (boot loader) позволяет выбрать операционную систему, которую требуется запустить, и загружает файлы операционной системы из загрузочного раздела. В системах на базе процессоров х86 и системах на базе RISC-процессоров загрузчик работает по-разному. Общие задачи, выполняемые на данном этапе, сводятся к установке 32-разрядной модели памяти с прямой (плоской) адресацией (flat memory space), сбору данных об аппаратной конфигурации, построению ее описания в памяти и передаче указателя на это описание в блок загрузчика. После этого NTLDR загружает образ ядра (kernel image), HAL и драйверы для устройств и файловой системы тома, с которого производится загрузка системы. Помимо всего прочего, на данном этапе производится также и загрузка некоторых драйверов, для которых равен нулю параметр реестра start, расположенный под следующим ключом реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ 
Services\ServiceName

Здесь serviceName представляет собой имя сервиса, например:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\atapi

 

Функции загрузчика NTLDR

NTLDR управляет процессами выбора операционной системы и распознавания аппаратных средств перед инициализацией ядра Windows NT/2000/XP. Загрузчик NTLDR должен находиться в корневом каталоге системного диска. Помимо этого, в системном разделе должны присутствовать файлы, перечисленные в табл. 6.1.

Когда NTLDR начинает выполнение, он очищает экран и выполняет перечисленные ниже действия.

 Примечание

Одним из наиболее важных усовершенствований, представленных в Windows XP является возможность так называемой быстрой загрузки (Fast Boot), которая была реализована путем увеличения производительности загрузчика. Версия загрузчика NTLDR, входящая в состав Windows XP, оптимизирована для выполнения быстрого считывания диска. Когда система загружается впервые, вся информация о конфигурации диска, включая системные метаданные, помещается в кэш. Программа упреждающей выборки— Logical Prefetcher, появившаяся в Windows XP, записывает большую часть этих данных в системный кэш, обладающий возможностью выполнения эффективных дисковых операций ввода/вывода в асинхронном режиме, что существенно снижает время поиска. Во время начальной загрузки, программа предварительной выборки завершает большинство операций ввода/вывода, необходимых для запуска системы, параллельно с инициализацией устройства, обеспечивая ускоренную начальную загрузку и регистрацию пользователя. Более того, каждый системный файл во время начальной загрузки считывается только один раз, за одну операцию. В результате, загрузчик Windows XP работает примерно в 4-5 раз быстрее загрузчика Windows 2000.

Как вы, вероятно, предполагаете, параметры программы предварительной выборки также хранятся в реестре. Их можно найти под следующим ключом (рис. 6.2):

HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\ Control\Session Manager 
\MemoryManagement\PrefetchParameters 

Нас интересуют, прежде всего, параметры RootDirPath (тип данных- REG_SZ, значение ПО умолчанию — Prefetch) и EnablePrefetcher (тип данных — REG_DWORD). Параметр EnablePrefetcher может иметь следующие значения:

Если активизированы обе опции, то значение параметра будет 0x00000003. Данные установки вступают в силу немедленно. Обратите внимание, что на серверных системах по умолчанию установлена лишь опция предварительной выборки при начальной загрузке. Предварительная выборка приложений может быть активизирована в реестре, о чем уже упоминалось. Файл предварительной выборки системной начальной загрузки расположен в каталоге %SystemRoot%\Prefetch (и путь к нему задан параметром RootoirPath). Хотя эти файлы могут быть открыты с помощью Блокнота (Notepad), в них содержатся двоичные данные, которые имеет смысл просматривать шестнадцатеричным редактором, а не Блокнотом (Notepad). Если вы хотите их просмотреть, то сначала сделайте копию с защитой от записи, или скопируйте их в другой каталог.

Рис. 6.2. Установки Logical Prefetcher в реестре

 

Выбор запускаемой операционной системы

NTLDR отображает на экране меню, из которого можно выбрать запускаемую операционную систему. Вид этого экрана зависит от информации, содержащейся в файле Boot.ini, формат и параметры которого были подробно описаны в zjiaee 4. Например, экран может выглядеть следующим образом:

Please select the operating system to start: 
 Windows XP Professional 
 Windows 2000 Professional 
 Windows NT Server Version 4.0 
 Windows NT Server Version  4.0(VGA mode) 
Use -> and <- keys to move   the highlight to your
 choice. 
Press Enter to choose.      
 Seconds until highlighted  choice will be
 started automatically: 29
 For troubleshooting and  advanced startup 
options for Windows, press F8 

 Выбор операционной системы, которую требуется запустить, ничем не отличается от аналогичного процесса при работе с Windows NT (например, 3.51 и 4.0). Операционная система, указанная в приведенном списке первой, выбирается по умолчанию, и изначально курсор установлен на этой строке. Чтобы выбрать для запуска другую операционную систему, воспользуйтесь клавишами перемещения курсора (<Т> и <!>), выберите нужную операционную систему и нажмите клавишу <Enter>.

Если вы не выберете ни один из пунктов меню к тому моменту, когда счетчик, указанный в строке

Seconds until highlighted choice will be 
started automatically: 29 

достигнет нуля, то NTLDR загрузит операционную систему, указанную в файле Boot.ini по умолчанию. Программа установки Windows NT/2000/XP задает в качестве параметра по умолчанию копию последней инсталлированной копии Windows NT/2000/XP. Файл Boot.ini можно отредактировать, указав в качестве загружаемой по умолчанию операционной системы любую из установленных. Подробная информация о формате файла Boot.ini и методах его редактирования была приведена в главе 4.

 Примечание

Если на компьютере установлена только одна копия системы Windows XP, то меню начального запуска отображаться не будет. В этом случае, Windows ХР игнорирует значение таймаута, указанное в файле Boot.ini, и запускается сразу же.

 

Опции отладочного меню при загрузке Windows XP

Любой пользователь, имеющий хотя бы небольшой опыт работы с предыдущими версиями Windows NT, сразу же заметит одно небольшое, но существенное отличие экранов загрузчика Windows 2000/XP и Windows NT 4.0 — это строка, расположенная в нижней части экрана:

For troubleshooting and advanced startup options
 for Windows, press F8

Аналогичная клавиша — <F8> — имелась в системах Windows 95/98. Если загрузка Windows 2000 и Windows XP завершается неудачей, возможно, вам помогут опции отладочного меню, выводимого по нажатию клавиши <F8>.

Данное меню выглядит следующим образом:

Меню дополнительных вариантов 
        загрузки Windows
 Выберите одну из следующих возможностей 
 Безопасный режим 
 Безопасный режим с загрузкой сетевых 
        драйверов 
 Безопасный режим с поддержкой командной
        строки 
 Включить протоколирование загрузки
 Включить режим VGA 
 Загрузка последней удачной конфигурации
 (с работоспособными параметрами)*
 Восстановление службы каталогов
 (только для контроллеров домена Windows)
 Режим отладки 
 Обьиная загрузка Windows**
 Перезагрузка** 
 Возврат к выбору операционной системы** 
 Windows Advanced Options Menu
 Please select an option:
 Safe Mode 
 Safe Mode with Networking 
 Safe Mode with Command Prompt 
 Enable Boot Logging 
 Enable VGA Mode 
 Last Known Good Configuration (your most recent
 settings that worked)* 
 Directory Services Restore Mode (Windows 
domain controllers only) 
 Debugging Mode 
 Start Windows Normally**
 Reboot** 
 Return to OS Choices Menu**

 Примечание 

* — опция усовершенствована, по сравнению с Windows 2000.

** — опция впервые появилась в Windows XP.

Это меню останется на экране до тех пор, пока не будет выбрана одна из опций.

При загрузке в безопасном режиме (Safe Mode) Windows 2000/XP использует стандартные параметры настройки (монитор VGA, без сетевых средств, с минимальным количеством драйверов — фактически, запускаются только драйверы, необходимые для загрузки Windows). Идея, лежащая в основе безопасного режима загрузки, заключается в том, что одной из наиболее распространенных причин, препятствующих успешной загрузке, является несовместимый с системой или поврежденный сервис/драйвер. Таким образом, безопасный режим повышает вероятность успешной загрузки, поскольку загружается усеченная версия операционной системы с минимальным набором сервисов и драйверов. Например, если после инсталляции нового программного обеспечения Windows 2000/XP перестала запускаться, то вполне возможно, что попытка загрузки в безопасном режиме завершится удачно. После загрузки вы сможете изменить параметры настройки компьютера, не позволяющие выполнить корректную загрузку ОС, или удалить программное обеспечение, вызвавшее эти проблемы.

Опции дополнительного меню загрузки Windows XP с их краткими описаниями перечислены ниже:

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

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

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

Такая опция существовала и в Windows NT 4.0/2000. Однако ее усовершенствование в Windows XP заслуживает особого упоминания. При выборе данной опции, Windows 2000 запускается с использованием информации реестра, сохраненной после того, как система в последний раз была успешно загружена. (В Windows NT/2000/XP начальная загрузка считается успешной, если в системе зарегистрировался, по крайней мере, один пользователь.) Следует сразу же отметить, что эта опция позволяет исправить только ошибки конфигурирования системы, да и то не всегда. Ее рекомендуется использовать только в тех случаях, когда точно известно о допущенной конфигурационной ошибке. Проблемы, вызванные отсутствием или повреждением системных файлов или драйверов, этим способом не исправить. Кроме того, следует помнить, что в случае применения этой опции все изменения, внесенные позже последней успешной загрузки Windows 2000, будут потеряны.

В Windows XP функциональные возможности этой опции были расширены. В отличие от Windows NT/2000, Windows XP создает резервные копии драйверов перед обновлением текущего набора драйверов. Кроме восстановления самых последних установок реестра, опция начальной загрузки Загрузка последней удачной конфигурации (Last Known Good Configuration)1 также восстанавливает самый последний набор драйверов, который использовался после последней успешной регистрации пользователя. Это позволяет избавиться от системных ошибок, вызванных неверно установленными приложениями и драйверами, препятствующими запуску Windows XP.

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

Эта опция запускает Windows XP и устанавливает режим отладки. 

Эта опция впервые появилась в Windows XP. Позволяет запускать ОС в обычном режиме.

Когда пользователь выбирает эту опцию, процесс загрузки запустится сначала (с выполнением процедуры POST). Как и предыдущая, данная опция впервые представлена в Windows XP.

 Новая опция, появившаяся в Windows XP, позволяющая вернуться к экрану загрузчика, на котором предлагается выбрать операционную систему.

Как уже отмечалось, последние три опции впервые появились в Windows XP. Разумеется, они не предлагают чего-то совершенно нового, и представляют собой чисто "косметическую" модификацию. Однако, с их появлением, стало гораздо удобнее работать с Меню дополнительных вариантов загрузки Windows (Advanced Startup Options), чем в Windows 2000.

Где же хранятся настройки, используемые при загрузке, когда пользователь выбирает одну из опций безопасного режима загрузки? Вероятно, ответ не покажется слишком уж неожиданные — как и все в системе, эти параметры тоже находятся в реестре. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM \Currentcontroiset\Control\safeBoot (рис. 6.3) содержит параметры конфигурации при загрузке в безопасном режиме. В его составе имеются вложенные ключи Network и Minimal. Как несложно догадаться, ключ Network содержит информацию, необходимую для загрузки при выборе опции Безопасный режим с загрузкой сетевых драйверов (Safe Mode with Networking), а ключ Minimal — ту же самую информацию, за исключением данных о сетевых параметрах. Помимо этого, в составе ключа safeBoot имеется параметр Aiternatesheii, указывающий имя профаммы, которая используется вместо фафической оболочки Windows. Как правило, значение этого параметра устанавливается равным cmd.exe (командный процессор Windows 2000/XP), что соответствует опции отладочного меню Безопасный режим с поддержкой командной строки (Safe Mode with Command Prompt).

Рис. 6.3. Опции отладочного меню в Windows 2000/XP заданы ключом реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\SafeBoot

 

Распознавание аппаратных средств

Если в меню загрузчика выбрана одна из версий Windows NT/2000/XP (или начала загружаться система по умолчанию, когда истек срок действия таймера), то NTLDR вызывает Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру. Ntdetect.com возвращает полученную информацию загрузчику NTLDR.

Данный этап инициализации систем Windows NT 4.0 и Windows 2000/XP имеет некоторые отличия. Как говорилось в главе 5, в Windows 2000/XP включены две новых подсистемы исполняющей среды (Executive) — Диспетчер Plug and Play (Plug and Play Manager) и Диспетчер управления электропитанием (Power Manager). Подсистема Диспетчер Plug and Play (Plug and Play Manager) интегрирована с Диспетчером ввода/вывода (I/O Manager) и в инициализации участия не принимает. Однако в Windows 2000/XP часть работы по распознаванию аппаратных средств выполняется драйверами, обладающими возможностями Plug and Play (PnP-aware drivers). Коренное отличие от Windows NT 4.0 заключается в том, что Windows NT 4.0 вследствие ограниченности поддержки Plug and Play, выполняет распознавание только с помощью NTDETECT. Именно поэтому в Windows 2000 и появился новый параметр файла Boot.ini — /FASTDETECT, используемый, если на компьютере установлены системы Windows NT 4.0 и Windows 2000/XP. Во всех случаях такой конфигурации в процессе загрузки обеих операционных систем будет использоваться версия Ntdetect.com из состава Windows 2000/XP. Если параметр /FASTDETECT установлен, то NTDETECT не пытается распознавать устройства Plug and Play. Во всех остальных случаях (параметр /FASTDETECT не установлен) NTDETECT будет выполнять нумерацию аппаратных средств в полном объеме. Таким образом, если вы имеете систему с двойной загрузкой, где на одном компьютере установлены Windows NT 4.0 и Windows 2000/XP, параметр /FASTDETECT в обязательном порядке должен быть установлен для строк файла Boot.ini, содержащих команду запуска Windows 2000/XP, и пропущен для строк, осуществляющих запуск Windows NT 4.0.

 

Выбор конфигурации (аппаратного профиля)

Если для загрузки выбрана операционная система Windows 2000/XP, и в ней имеется только один профиль аппаратной конфигурации, то загрузчик, получив информацию об аппаратных средствах компьютера, продолжит процедуру загрузки, запустив ядро операционной системы Ntoskrnl.exe и передав ему информацию, собранную программой Ntdetect.com.

Если в Windows 2000/XP создано несколько профилей аппаратной конфигурации, то на экране появится следующая информация:

Меню выбора конфигурации оборудования
 Данное меню позволяет выбрать   
   конфигурацию оборудования, которая будет
 использоваться при запуске Windows.
 Если система не запускается,    
  то можно переключиться на использование
 предыдущей конфигурации системы, и тем 
самым обойти проблемы запуска.
 ВНИМАНИЕ: Изменения конфигурации
системы, внесенные после последнего
 удачного запуска, будут потеряны.
 Profile 1
 Profile 2
 Profile 3 
 Используйте клавиши со стрелкой для 
перемещения выделенной строки и
 выбора нужного элемента, а затем нажмите
 клавишу ВВОД. 
 Для переключения на последнюю удачную 
конфигурацию нажмите клавишу 'L'.
 Для выхода из этого меню  и перезагрузки 
компьютера, нажмите клавишу F3.
 Выбранная конфигурация будет
 автоматически загружена через: 5 
 Hardware Profile/Configuration Recovery Menu 
 This menu allows you to select a hardware profile
 to be used when Windows 2000 Professional is 
started 
 If your system is not starting correctly, then you 
may switch to a 
 previous system configuration, which may 
overcome startup problems.
 IMPORTANT: System configuration changes
 made since the last successful 
 startup will be discarded 
 Profile 1 
 Profile 2 
 Profile 3 
Use the up and down arrow keys to move the highlight
 to the selection you want.Then press ENTER.
To switch to the LastKnownGood  Configuration, 
press 'L'.
 To Exit this menu and restart your computer,press F3.
Seconds until highlighted     
 choice will be started automatically:5

После этого загрузчик в течение нескольких секунд ожидает, давая пользователю возможность выбрать один из существующих профилей аппаратной конфигурации, опцию Загрузка последней удачной конфигурации (Last Known Good Configuration) или опцию выхода из меню с перезагрузкой компьютера.

Первый аппаратный профиль выделен курсором. Чтобы использовать для загрузки другой аппаратный профиль, переместите курсор к нужной опции и нажмите клавишу <Enter>.

Кроме того, пользователю предоставляется возможность выбора между конфигурацией по умолчанию и последней успешно загруженной конфигурацией (Last Known Good Configuration).

Как правило, если не выбрана опция Загрузка последней удачной конфигурации (Last Known Good Configuration), Windows 2000/XP загружает конфигурацию по умолчанию. При загрузке конфигурации по умолчанию загрузчик использует информацию реестра, сохраненную Windows 2000/XP при последней остановке системы.

Если вы выберете опцию Загрузка последней удачной конфигурации (Last Known Good Configuration), нажав последовательно клавиши <L> и <Enter>, то загрузчик для конфигурирования опций запуска будет использовать информацию реестра, сохраненную под ключом HKEY_LOCAL_MACHINE\SYSTEM \Select после того, как система в последний раз была успешно загружена.

Более подробную информацию об управляющих опциях, последней успешно загруженной конфигурации (LastKnownGood Configuration) и конфигурации по умолчанию (Default Configuration) можно найти далее в этой главе.

 Примечание

Windows XP для настольных компьютеров создает профиль аппаратных средств для использования по умолчанию. Этот профиль включает в себя все аппаратное обеспечение, которое было определено в ходе инсталляции системы. Для портативных компьютеров создается два профиля по умолчанию: один профиль для работы с док-станцией — Docked Profile, а другой — для работы без нее — Undocked Profile. Обратите внимание: несмотря на то, что полная поддержка Plug and Play устраняет надобность ручной настройки аппаратных профилей, именно ручной способ позволяет устранить проблемы, связанные с функционированием аппаратных средств.

 

Загрузка ядра

Получив информацию об аппаратных средствах компьютера и выбранном аппаратном профиле, загрузчик запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.

Информация о выбранном аппаратном профиле передается загрузчику, когда пользователь нажимает клавишу <Enter> в Меню выбора конфигурации оборудования (Hardware Profile/Configuration Recovery Menu). Помимо этого, загрузчик может сделать выбор автоматически при истечении таймера (или в том случае, если в системе существует только один аппаратный профиль).

О начале фазы загрузки ядра сигнализирует появление на экране индикатора степени завершенности загрузки в память ядра Windows NT/2000 (Ntoskrnl.exe) и уровня аппаратных абстракций (Hal.dll). На данном этапе эти программы еще не инициализированы. Далее загрузчик просматривает реестр, извлекает информацию о заданных по умолчанию или определенных пользователем размерах резидентного пула памяти (nonpaged pool) и реестра (registry quota) (только для Windows NT/ 2000) и загружает улей реестра HKEY_LOCAL_MIACHINE\SYSTEM из каталога %SystemRoot%\System32\Colifig\System.

На данном этапе загрузчик активизирует API для работы с реестром и создает набор опций управления (control set), который будет использоваться для инициализации компьютера. Эти задачи являются подготовительными для загрузки драйверов. Значение, заданное в ключе реестра HKEY_LOCAL_ MACHINE\SYSTEM\Seiect (рис. 6.4), определяет, какой набор опций управления из перечисленных в ключе HKEY_LOCAL_MACHINE\SYSTEM должен быть задействован при загрузке. По умолчанию загрузчик выбирает набор опций управления, определяемый значением Default. Если пользователь выбрал последнюю успешно загруженную конфигурацию Загрузка последней удачной конфигурации (Last Known Good Configuration), то загрузчик использует набор опций управления, определяемых значением LastKnownGood. На основании сделанного пользователем выбора и значений подключа select загрузчик определяет, какой из наборов опций управления (controlsetoox) будет активизирован. После этого загрузчик устанавливает значение Current подключа реестра select на номер набора управляющих опций, который он будет использовать.

Рис. 6.4. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\Select

Далее загрузчик сканирует все сервисы (службы), определенные ключом реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и ищет драйверы устройств, для которых значение start равно 0x0 (это означает, что драйверы должны быть загружены, но не инициализированы). Как правило, драйверы с такими значениями представляют собой низкоуровневые драйверы устройств, например, драйверы дисков. Значение Group для каждого драйвера устройства определяет порядок, в котором загрузчик должен его загружать. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\ServiceGroupOrder определяет порядок загрузки.

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

 

Инициализация ядра

В системах Windows NT 4.0 о начале инициализации ядра сигнализирует появление текстового сообщения, подобного приведенному ниже:

Microsoft ® Windows NT (TM) Version 4.0 (Build 1345)  
 1 System Processor (64 MB Memory) 

Это сообщение свидетельствует об успешности всех предыдущих этапов загрузки. Одним из видимых отличий между загрузкой Windows 2000/XP и Windows NT 4.0 является то, что при загрузке Windows NT 4.0 сообщения выводятся в текстовом режиме 80x50, a Windows 2000/XP отображает эти сообщения в режиме VGA. В Windows NT 4.0 установку данного режима и вывод сообщений осуществляет уровень аппаратных абстракций (HAL). В Windows 2000 поддержку установки режима VGA и вывода сообщений о ходе загрузки осуществляет специальный драйвер — Bootvid.sys. В системах Windows 2000 и Windows XP об инициализации ядра сигнализирует появление графической заставки. Это — чисто "косметическое" отличие от Windows NT 4.0, которое не меняет принципов загрузки Windows 2000/XP по сравнению с предыдущей версией системы.

Хотите убедиться в справедливости сказанного? Нет ничего проще. Добавив ключ /sos в строку файла Boot.ini, управляющего содержимым меню загрузчика и режимом загрузки операционной системы, перезагрузите компьютер. При этом пользователь увидит всю последовательность загрузки драйверов. На фоне красивой графической заставки, сигнализирующей о начале инициализации ядра, вы увидите нечто очень похожее на сообщение, приведенное ниже:

Microsoft ® Windows XP Professional (TM)
(Build 2600) 
  1 System Processor (256 MB Memory)

Ядро создает ключ HKEY_LOCAL_MACHINE\HARDWARE на основании информации, полученной от загрузчика. Ключ HKEY__LOCAL_MACHINE\HARDWARE содержит данные об аппаратных средствах, распознавание которых осуществляется каждый раз при запуске системы. В состав этих данных входит информация об аппаратных компонентах на системной плате и о прерываниях, используемых конкретными аппаратными устройствами.

Ядро создает набор опций управления clone, копируя в него опции управления ИЗ набора CurrentControlSet.

 Примечание 

В NT 4.0 набор clone был виден в составе реестра, но после успешной загрузки становился недоступным (при попытке его открыт ия выводилось сообщение о невозможности это сделать). В Windows 2000/XP он просто не отображается редакторами реестра.

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

На стадии инициализации ядро выполняет следующие операции:

 

Загрузка и инициализация драйверов устройств

Теперь ядро инициализирует низкоуровневые драйверы устройств, которые были загружены на стадии загрузки ядра. В случае ошибки при инициализации одного из драйверов система предпринимает корректирующее действие, основываясь на данных, определенных параметром реестра HKEY_LOCAL_MACHINE\ SYSTEMXCurrent ControlSet\Services\DriverName\ErrorControl.

Далее Ntoskrnl.exe сканирует реестр, на этот раз — в поисках драйверов устройств, для которых значение ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\DriverWarae\Start установлено как 0x01. Значение Group для каждого драйвера устройства определяет порядок, в котором производится их загрузка. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\ServiceGroupOrder определяет порядок загрузки.

В отличие от фазы загрузки ядра, драйверы устройств, для которых параметр start имеет значение 0x01, загружаются не за счет вызовов BIOS, а с помощью драйверов устройств, загруженных на стадии загрузки ядра и только что инициализированных на этой стадии. Обработка ошибок в процессе инициализации этой группы драйверов устройств также основана на значении элемента ErrorControl для соответствующих драйверов устройств.

Примечание 

Windows XP осуществляет одновременную инициализацию драйверов, что сокращает время загрузки. Системе не нужно ожидать окончания инициализации каждого устройства, т. к. многие устройства позволяют проводить параллельную инициализацию. При этом на время загрузки определяющее влияние оказывает самое "медленное" устройство.

 

Загрузка сервисов

Диспетчер сеансов (Smss.exe) запускает высокоуровневые подсистемы и сервисы (службы) операционной системы. Информация, предназначенная для диспетчера сеансов, находится под ключом реестра HKEY_LOCAL_MACHINE \SYSTEM\ CurrentControlSet\Control\SessionManager. Диспетчер сеансов исполняет инструкции, которые содержатся в следующих элементах реестра:

 

Параметр реестра BootExecute

Параметр реестра BootExecute содержит одну или несколько команд, которые диспетчер сеансов (Smss.exe) выполняет перед загрузкой сервисов. Значением по умолчанию для этого элемента является Autochk.exe, т. е. версия Chkdsk.exe для Windows NT/2000/XP. Приведенный ниже пример показывает установку этого значения, задаваемую по умолчанию:

BootExecute: REG_MULTI_SZ: autochk autochk* 

Диспетчер сеансов может запустить несколько программ. Приведенный ниже пример показывает запуск утилиты Convert, которая при следующем запуске системы преобразует том х из формата FAT в формат NTFS:

BootExecute: REG_MULTI_SZ:    
autochk autochk* autoconv \DosDevices\x: /FS:ntfs

После того как диспетчер сеансов выполнит все указанные команды, ядро осуществит загрузку остальных ключей реестра из %SystemRoot%\System32\ Config.

 

Ключ Memory Management

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

PagedPoolSize: REG_DWORD 0 
 NonPagedPoosSize: REG_DWORD 0 
 PagingFiles: REG_MULTI_SZ: c:\pagefile.sys 32

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

Механизм упреждающей выборки в Windows XP выполняет следующие функции.

Как уже упоминалось, параметры упреждающей выборки хранятся в реестре под ключом KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session ManagerX Memory Management\PrefetchParameters.

 

Ключ DOS Devices

Затем диспетчер сеансов создает символические ссылки. Эти ссылки направляют определенные классы команд на корректные компоненты файловой системы. Конфигурационная информация для перечисленных ниже устройств DOS содержится в следующих значимых элементах реестра:

PRN: REG_SZ:\DosDevices\LPT1
 AUX: REG_SZ:\DosDevices\COM1
 NUL: REG_SZ:\Device\Null 
 UNC: REG_SZ:\Device\Mup 
 PIPE:\REG_SZ:\Device\NamedPipe 
 MAILSLOT:\REG_SZ\Device\MailSlot

 

Ключ Subsystems

Поскольку архитектура подсистем базируется на сообщениях, необходимо запустить подсистему Windows (Win32), которая управляет всем вводом/выводом и доступом к видеодисплею. Процесс этой подсистемы носит имя CSRSS. Подсистема Win32 запускает процесс winlogon, который, в свою очередь, запускает несколько других важных подсистем.

Конфигурационная информация для необходимых подсистем определяется значением элемента Required в ключе реестра HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems.

 

Регистрация в системе

Подсистема Win32 автоматически запускает процесс Winlogon.exe, который, в свою очередь, запускает процесс распорядителя локальной безопасности (Local Security Autority, LSA) — Lsass.exe. По завершении инициализации ядра необходимо произвести регистрацию пользователя в системе. Процедура регистрации может быть произведена автоматически на основании информации, хранящейся в реестре, или вручную. При ручной регистрации пользователя на экране появляется диалоговое окно Вход в Windows (Enter Password), в котором содержится текст "Press Ctrl+Alt+Delete to log on" ("Для входа нажмите Ctrl+Alt+Delete) — в Windows XP появляется окно приветствия. Компонент Graphical Identification and Authentication (GINA) принимает ваше регистрационное имя и пароль и безопасным способом передает эту информацию в LSA для аутентификации. Если эта информация является действительной, то вам предоставляется доступ либо с помощью аутентификации Kerberos V5 (для сети) или NTLM (локальный компьютер).

 Примечание 

Windows NT/2000 может продолжить инициализацию сетевых драйверов, а вы можете в это время зарегистрироваться в системе. Что касается Windows XP, • если ваш компьютер не является участником домена, то инициализация сети будет произведена одновременно с загрузкой. Те же компьютеры, которые участвуют в домене будут ожидать.

На данном этапе Диспетчер управления сервисами (Service Control Manager) выполняет загрузку автоматически стартующих сервисов, для которых значение параметра start, расположенного в ключе реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\DriverName, установлено равным 0x2. На этом этапе сервисы загружаются с учетом установленных для них зависимостей, поскольку их загрузка осуществляется параллельно. Зависимости описываются значимыми элементами DependOnGroup и DependOnService, расположенными под ключом реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\DriverName.

 Примечание 

Загрузка Windows XP, как и в Windows NT/2000 не считается успешной до тех пор, пока в системе не зарегистрируется пользователь. После этого набор управляющих опций clone копируется в элемент LastKnownGood.

Сервисы, перечисленные в следующих ключах реестра, запускаются и выполняются асинхронно при помощи экрана приветствия (Welcome to Windows) и диалогового окна Вход в систему (Log On to Windows):

HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\ CurrentVersion\RunServicesOnce
 HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\ CurrentVersion\RunServices

Процесс определения устройств Plug and Play также производится асинхронно с процессом регистрации и зависит от встроенного программного обеспечения системы (firmware), аппаратных средств, драйверов устройств и возможностей операционной системы по определению и энумерации новых устройств. Когда эти компоненты соответствующим образом скоординированы, механизм Plug and Play позволяет определять устройства, производить распределение системных ресурсов, установку драйверов и устройств с минимальным участием пользователя. Подробная информация о процессе определения устройств Plug and Play была рассмотрена в главе 5.

После вашей регистрации происходят описанные ниже события

Примечание 

Два последних каталога %Windir% существуют лишь на тех системах Windows 2000/ХР, которые инсталлировались как обновление Windows NT 4.0.

 

Загрузка остальных сервисов и драйверов

Как уже говорилось, к моменту регистрации пользователя в системе все еще может продолжаться загрузка и инициализация некоторых сервисов и драйверов. Последующие несколько разделов более подробно описывают следующие важные вопросы:

 

Наборы управляющих параметров в реестре

Набор управляющих параметров (Control Set) содержит системную конфигурационную информацию, включая сведения о загружаемых драйверах устройств и запускаемых сервисах. Наборы управляющих опций хранятся в реестре в виде вложенных подключей ключа HKEY_LOCAL_MACHINE\SYSTEM. В системе может существовать несколько наборов управляющих опций, количество которых зависит от того, насколько часто выполняется модификация настройки системы или как часто в ней возникают проблемы. Типичная установленная копия Windows NT/2000/XP содержит следующие наборы управляющих опций:

Подключ Currentcontroiset представляет собой указатель на один из подключей Controisetoox. Управляющий набор clone — это точная копия (клон) набора управляющих опций, использованного для запуска и инициализации компьютера (Default или LastKnownGood) и создается процессом инициализации ядра при каждом запуске компьютера. После того как в системе успешно зарегистрируется хотя бы один пользователь, управляющий набор clone станет недоступным.

Для понимания методов и целей применения этих наборов управляющих опций необходимо ознакомиться с ключом реестра HKEY_LOCAL_MACHINE\ SYSTEM\select, который содержит следующие значимые элементы:

Каждый из этих параметров хранит данные типа REG_DWORD, которые относятся к конкретному управляющему набору. Например, если значение current установлено равным oxi, то параметр Currentcontroiset указывает на controisetooi. Аналогично, если параметр LastKnownGood установлен равным 0x2, то он указывает на управляющий набор Controisetoo2. Значение Default обычно совпадает со значением current. Параметр Failed ссылается на набор управляющих опций, на который указывал параметр Default в тот момент, когда пользователь последний раз выполнял загрузку компьютера с использованием набора LastKnownGood.

Ранее в данной главе в разделе, посвященном выбору конфигурации, была описана инициализация системы с помощью конфигураций По умолчанию (Default) и последней удачно загруженной (LastKnownGood). При выборе конфигурации Default ядро использует значение (Default) для определения набора опций управления, который должен применяться для инициализации компьютера.

Ядро пытается использовать конфигурацию LastKnownGood только в двух ситуациях.

Запуск системы с применением управляющего набора LastKnownGood предоставляет способ восстановления, если имеют место:

Набор LastKnownGood полезен при устранении конфигурационных ошибок.

Внимание

Если вы полагаете, что те изменения, которые вы внесли с момента последней успешной регистрации в системе, вызовут проблемы, не спешите зарегистрироваться вновь. Вместо этого перезагрузите компьютер и в соответствующий момент нажмите клавишу <F8>. В меню загрузки, Меню дополнительных вариантов загрузки Windows (Advanced Startup Options), выберите опцию Загрузка последней удачной конфигурации (Last Known Good Configuration). Если при загрузке выбрана указанная опция, то все конфигурационные изменения, внесенные с момента последней загрузки системы, будут потеряны.

Сразу же после того, как пользователь зарегистрируется в системе, любые изменения, вносимые в конфигурацию системы средствами Панели управления (Control Panel), отражаются только в наборе currentcontroiset. Поэтому, если по той или иной причине необходимо вносить изменения в управляющий набор, currentcontroiset является единственным набором, который имеет смысл редактировать.

Если вы не уверены, где конкретно в управляющем наборе currentcontroiset находится тот или иной ключ, требующий модификации, воспользуйтесь командой Найти (Find) меню Правка (Edit) Редактора реестра (Registry Editor).

 

Параметр Start

В каждом из ключей, содержащихся под ключом реестра HKEY_LOCAL_ MACHINE\SYSTEM\<control set>\Services\DriverName присутствует параметр start, определяющий порядок запуска драйвера или сервиса. Он может иметь описанные ниже значения.

 

Параметр ErrorControl

Ниже перечислены все возможные значения, которые способен принимать значимый элемент ErrorControl, находящийся под ключом реестра HKEY_LOCAL_MACHINE\SYSTEM\<control set>\Services\DriverName.

 

Обеспечение запуска системы при любых обстоятельствах

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

Регулярное выполнение плановых профилактических процедур позволит предотвратить возможные проблемы или свести к минимуму их последствия. Наиболее общие рекомендации сводятся к следующему.

Подробные инструкции по выполнению этих операций приведены в главе 2.

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

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

 

Защита системных файлов Windows 2000/XP

Все системные файлы и драйверы в Windows 2000/XP защищены с помощью цифровой подписи, гарантирующей их совместимость с операционной системой. Цифровая подпись Microsoft удостоверяет, что файл, снабженный ею, тестировался на совместимость с Windows 2000/XP и не был модифицирован или переписан во время установки дополнительного программного обеспечения.

В зависимости от опций настройки, Windows 2000/XP может либо игнорировать драйверы, не имеющие цифровой подписи, либо выводить предупреждение при обнаружении таких драйверов (эта опция используется по умолчанию), или же просто не допускать их установки. Чтобы установить опции защиты системных файлов в Windows 2000/XP, проделайте следующее:

1. Запустите утилиту Система (System) из Панели управления (Control Panel) и в раскрывшемся диалоговом окне Свойства системы (System Properties) перейдите на вкладку Оборудование (Hardware) - рис. 6.5.

2. Нажмите кнопку Подписывание драйверов (Driver Signing). На экране появится диалоговое окно Параметры подписывания драйвера (Driver Signing Options) — рис. 6.6. В этом окне имеется группа Какие действия от системы Windows вы ожидаете (What action do you want Windows to take?), позволяющая установить следующие опции:

Рис. 6.5. Вкладка Оборудование окна Свойства системы

Рис. 6.6. Диалоговое окно Параметры подписывания драйвера

 Примечание 

Пользователи, зарегистрированные в системе от имени Администратора (Administrator) или являющиеся членами группы Администраторы (Administrators), имеют возможность установить режим, при котором выбранная ими опция будет применяться по умолчанию для всех пользователей, регистрирующихся на данном компьютере. Для этого следует установить флажок Использовать действие в качестве системного по умолчанию (Make this action the system default) в группе Административный параметр (Administrator option).

 

Механизм защиты драйверов цифровой подписью

Каким образом обычно происходит установка драйверов в Win-dows 2000/XP? Есть два способа.

Как UMPNPMGR, так и мастер установки аппаратных средств используют интерфейс прикладного программирования установки (SETUPAPI — %SystemRoot%\System32\Setupapi.dll) для чтения информации, содержащейся в файле с расширением INF. Помимо обработки инструкций по установке драйвера, в Windows 2000/XP в обязательном порядке проводится проверка значения параметра реестра Policy, расположенного под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing (рис. 6.7). Если такой параметр отсутствует, то выполняется проверка параметра Policy, расположенного В составе ключа HKEY_CURRENT_USER\Software\Microsoft \Driver Signing (рис. 6.8).

Рис. 6.7. Ключ реестра HKEY_LOCAL_MACHINE\ SOFTWARE \Microsoft\Driver Signing

Рис. 6.8. Ключ реестра HKEY_CURRENT_USER\ Software\Microsoft\DriverSigning

Это именно те параметры, которые устанавливаются в диалоговом окне Параметры подписывания драйвера (Driver Signing Options). Если вы зарегистрировались в системе под именем Администратор (Administrator) и даете указание использовать установленную опцию по умолчанию, то параметр Policy будет установлен под ключом HKEY_LOCAL_MACHINE; в противном случае — под ключом HKEY_CURRENT_USER. В первую очередь выполняется проверка параметра Policy, расположенного в составе ключа HKEY_LOCAL_MACHINE (если установлено, именно оно будет иметь приоритет перед значениями, заданными индивидуально для каждого пользователя). Если параметр Policy имеет значение, равное 0, это соответствует опции установки драйверов, не имеющих цифровой подписи. Если для этого параметра установлено значение 1, то такие драйверы будут устанавливаться с выводом предупреждающего сообщения, а если установлено значение 2, все драйверы, не имеющие цифровой подписи, станут игнорироваться.

Если политика, действующая в отношении установки драйверов, не имеющих цифровой подписи, диктует необходимость проверки цифровой подписи, то библиотека Setupapi.dll обращается к криптографическим сервисам CryptoAPI для расшифровки цифровой подписи с использованием открытого ключа VeriSign.

Где же хранятся цифровые подписи, защищающие драйверы и системные файлы Windows 2000/XP? Microsoft хранит цифровые подписи драйверов, входящих в состав дистрибутива Windows 2000, в файлах каталога (catalog files), хранящихся в папке %SystemRoot%\System32\CatmoL Драйверы устройств OEM должны поставляться вместе с их собственными файлами каталога, которые Microsoft предоставит фирме-разработчику после успешного тестирования устройства и включения его в список совместимых аппаратных средств (Hardware Compatibility List, HCL). В каталоге \Catroot содержится мастер-индекс файлов каталога драйверов (sysmast.cbd и sysmast.cbk) и вложенная папка, имя которой представляет собой длинную комбинацию букв и цифр. Раскрыв эту папку, вы обнаружите файлы каталога для всех встроенных компонентов. Особого внимания заслуживают файлы NT5.CAT и NT5INF.CAT, которые хранят цифровые подписи для системных файлов Windows 2000/XP.

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

 

Другие средства защиты системных файлов Windows 2000/XP

Кроме того, в состав Windows 2000/XP входят следующие функциональные возможности по защите драйверов и системных файлов, гарантирующие их неизмененное состояние:

 

Защита системных файлов

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

В Windows 2000 впервые за всю историю Windows сделана попытка исправления этой ситуации. Разумеется, эта функциональная возможность также предусмотрена и в Windows XP. Она называется Windows File Protection и включает в себя два компонента:

Сервис Windows File Protection (WFP) основывается на принципе определения цифровых подписей всех защищенных системных файлов (SYS, DLL, OCX, TTF, FON, EXE) и защищает их от случайного изменения или перемещения. WFP выполняется в фоновом режиме и защищает все файлы установленные программой Setup в ходе инсталляции операционной системы.

WFP выявляет все попытки других программ выполнить замену или перемещение защищенных системных файлов, осуществляя проверку наличия у файла цифровой подписи, свидетельствующей, что версия, предназначенная на замену, совместима с Windows XP. В случаях, когда новая версия системного файла не корректна, System File Protection замещает этот файл резервной копией из папки %SystemRoot%\System32\D\lcache или с компакт-диска Windows XP. Если функция System File Protection не может обнаружить надлежащей версии файла, она предлагает пользователю указать путь к каталогу, из которого такая версия может быть скопирована, а также регистрирует попытку замещения файла в системном журнале событий. По умолчанию эта функция всегда активизирована, и позволяет выполнять замену системных файлов только в случае установки следующих видов программного обеспечения:

 

Проверка системных файлов

В состав Windows 2000/XP включено средство проверки системных файлов (System File Checker, Sfc.exe), которое представляет собой утилиту командной строки. Эта утилита сканирует все установленные системные файлы и выполняет проверку их версий при перезагрузке компьютера. Если данная утилита обнаружит, что один из защищаемых системных файлов был замещен, она найдет корректную версию этого файла в каталоге %SystemRoot%\Sys,tem32\D\\cache, и запишет ее поверх измененного файла.

Утилита командной строки имеет следующий синтаксис:

sfc [/scannow] [/scanonce]  
  [/scanboot] [/cancel] [/quiet] [/enable]
 [/purgecache] [/cachesize=x]      

где:

Примечание 

Чтобы получить возможность применять утилиту Sfc.exe, необходимо зарегистрироваться на компьютере от имени администратора или пользователя, являющегося членом группы Администраторы (Administrators).

Если содержимое папки %SysfemRoot%\System32\Dllcache окажется поврежденным, воспользуйтесь командами Sfc /scanonce, sfc /scannow или sfc /scanboot, которые позволят восстановить содержимое папки \Dllcache.

Снова зададимся вопросом: а где же хранятся параметры, управляющие работой System File Checker (SFC)? Наверняка, никто не удивится, когда окажется, что и они располагаются именно в реестре. Все параметры реестра, управляющие поведением SFC, располагаются под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT\CurrentVersion\Winlogon. Вот они:

Примечание 

Все перечисленные параметры реестра не являются обязательными. Если они отсутствуют в реестре, то SFC ведет себя так, как если бы все они существовали, но имели значения, принятые по умолчанию (для SFCQuota значение по умолчанию равно -1, что соответствует неограниченному объему проверяемых данных).

 

Верификация цифровой подписи файлов

Как уже говорилось, в некоторых случаях установка нового программного обеспечения приводит к замещению системных файлов некорректными или несовместимыми версиями (которые, естественно, не имеют цифровой подписи). Такая замена, как уже неоднократно упоминалось, как раз и может послужить источником нестабильности системы (в том числе ошибок типа "синий экран" и проблем с загрузкой системы).

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

Чтобы запустить средство верификации цифровых подписей файлов, нажмите кнопку Пуск (Start), выберите команду Выполнить (Run) и введите sigverif.

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

1. Запустите программу sigverif, и в появившемся на экране окне Проверка подписи файла (File Signature Verification) — рис. 6.9 — нажмите кнопку Дополнительно (Advanced).

2. В раскрывшемся диалоговом окне Дополнительные параметры проверки подписи файла (Advanced File Signature Verification Settings) перейдите на вкладку Ведение журнала (Logging) — рис. 6.10 — и установите флажок Сохранять результаты проверки подписи в журнале (Save the file signature verification results to a log file).

Рис. 6.9. Начальное окно программы Проверка подписи файла

Рис. 6.10. Вкладка Ведение журнала окна Дополнительные параметры проверки подписи файла

3. Перейдите в группу Параметры журнала (Logging options), где имеется возможность установить по выбору следующие опции ведения файла журнала:

4. Нажмите кнопку ОК. Вы вернетесь в окно Проверка подписи файла (File Signature Verification). Чтобы начать операцию сканирования, нажмите в этом окне кнопку Начать (Start). Степень завершенности процесса сканирования будет отражаться индикатором Просмотр файлов... (Scanning files...) — рис. 6.11. Для отмены сканирования нажмите кнопку Остановить (Stop). По окончании сканирования на экране появится окно Результаты проверки подписи (Signature Verification Results) — рис. 6.12, в котором будет отображен список всех обнаруженных файлов, не имеющих цифровой подписи.

Рис. 6.11. Идет процесс сканирования системных файлов на наличие цифровой подписи

Рис. 6.12. Окно Результаты проверки подписи

 

Запуск системы с конфигурационными проблемами

Когда операционные системы Windows NT 4.0/2000/XP выявляют серьезную ошибку, которую не могут самостоятельно устранить, они, в зависимости от типа ошибки, генерируют соответствующие системные сообщения, которые известны под собирательным названием "синих экранов". "Синий экран смерти" (Blue Screen of Death) может появиться в том числе и в ситуациях, когда Windows NT/2000 останавливается в процессе загрузки, чтобы предотвратить дальнейшее разрушение данных. Типичные образцы таких экранов приведены ниже: на рис. 6.13 представлен вид "синего экрана" Windows NT 4.0, а на рис. 6.14 — "синий экран" Windows 2000 и Windows XP.

Рис. 6.13. Типичный вид "синего экрана" в Windows NT 4.0

В отличие от предыдущих версий Windows NT, где экран STOP-сообщения состоит из пяти основных частей, такой же экран сообщения в Windows 2000/XP (рис. 6.14) содержит только три части, а именно: информацию кода ошибки (bugcheck information), рекомендации пользователю (recommended user action) и информацию отладочного порта (debug port information). Тем не менее, выяснение истинных причин ошибки все равно остается сложной задачей. Если STOP-сообщение ("синий экран") появляется в процессе загрузки операционной системы, то, как правило, события развивались по одному из описанных ниже путей.

 

Рис. 6.14. Типичный пример "синего экрана" в Windows 2000 и Windows XP

Примечание 

Активное применение обсуждавшихся в предыдущем разделе средств защиты системных файлов Windows 2000/XP представляет собой надежный метод предотвращения подобных ситуаций. Именно поэтому они и обсуждались настолько подробно. Хотите избежать проблем с загрузкой Windows 2000/XP? Пользуйтесь этими средствами и не дожидайтесь возникновения проблемы. Поверьте, эта рекомендация надежна!

Однако что же делать, если проблема все же возникла? Иногда сообщения, выводимые в случае возникновения проблем с загрузкой, явным образом ссылаются на поврежденный файл реестра (возьмем, например, сообщение о поврежденном или отсутствующем файле улья SYSTEM, приведенное в начале данной главы). В некоторых случаях и STOP-сообщения тоже указывают на повреждение реестра, препятствующее успешной загрузке или дальнейшей работе, и также ссылаются на поврежденный файл реестра. Однако, к сожалению, так бывает не всегда. Если имеются основания подозревать, что проблемы с загрузкой связаны именно с реестром, можно начать восстановление с использованием варианта загрузки предыдущей конфигурации (LastKnownGood Configuration).

Загрузчик NTLDR отображает на экране меню, из которого можно выбрать запускаемую операционную систему. Для компьютеров на базе процессоров х86 вид этого экрана зависит от информации, которая содержится в файле Boot.ini. Чтобы воспользоваться опцией последней успешно загруженной конфигурации в Windows NT 4.0, следует нажать клавишу <Пробел> при появлении меню загрузки и затем выбрать опцию Загрузка последней удачной конфигурации (Last Known Good Configuration). B Windows 2000/XP появились дополнительные возможности устранения проблем с загрузкой, к числу которых относится отладочное меню, появляющееся после нажатия клавиши <F8>. Опции этого отладочного меню были подробно описаны ранее в этой главе.

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

ОС Windows 2000/XP, как и Windows NT 4.0, тоже могут быть выведены из строя установкой несовместимого драйвера. Загрузка в безопасном режиме (Safe Mode), концепция которого была позаимствована из Windows 9x, предоставляет более удобные средства быстрого восстановления системы после подобных ошибок, нежели Windows NT 4.0.

Если несовместимый драйвер вызывает проблему при первой же перезагрузке, то вам очень повезло, потому что, как правило, в этом случае действительно помогает опция Загрузка последней удачной конфигурации (Last Known Good Configuration). Когда пользователь выбирает из меню безопасного режима эту опцию, система при загрузке использует информацию ключа реестра HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet и восстановит всю конфигурационную информацию, сохраненную после предыдущей успешной загрузки компьютера. В ряде случаев, если использование опции Загрузка последней удачной конфигурации (Last Known Good Configuration) не помогло, но вам известен драйвер, вызвавший проблему (список таких драйверов можно получить с помощью утилиты sigverif, описанной ранее в этой главе), то вы можете попробовать другие способы быстрого восстановления. Например, можно попытаться применить такие опции меню безопасного режима, как Безопасный режим (Safe Mode), Безопасный режим с загрузкой сетевых драйверов (Safe Mode with Networking) или Безопасный режим с поддержкой командной строки (Safe Mode with Command Prompt), при выборе которых Windows 2000/XP загружается с минимальным набором драйверов и сервисов. После загрузки системы можно удалить из системы проблемный драйвер штатными средствами Windows — такими, как Мастер установки оборудования (Hardware Wizard) или Диспетчер устройств (Device Manager). (Чтобы вызывать Мастер установки оборудования (Hardware Wizard), выберите из меню Пуск (Start) опции Настройка | Панель управления | Установка и удаление программ (Settings Control Panel Add/Remove Hardware), а для вызова Диспетчера устройств (Device Manager) — опции Пуск | Настройка | Панель управления | Система (Start | Settings | Control Panel | System), перейдите на вкладку Оборудование (Hardware) и нажмите кнопку Диспетчер устройств (Device Manager).) Если системный и загрузочный разделы отформатированы для файловой системы FAT, можно попытаться загрузить компьютер с помощью загрузочной дискеты MS-DOS (или Windows 9x) и вручную удалить или переименовать файл проблемного драйвера.

 Примечание 

Опция Загрузка последней удачной конфигурации (Last Known Good Configuration) предоставляет самый быстрый и легкий способ устранения проблем с поврежденным реестром как в Windows NT 4.0, так и в Windows 2000/XP (если, конечно, он срабатывает). К сожалению, этот вариант имеет и свои ограничения: так, он ограничивается восстановлением только одной части реестра (а именно, ветви controisetoox в ключе HKEY_LOCAL_MACHINE\SYSTEM). Таким образом, восстановить систему этим способом можно, только если проблема ограничена данной ветвью реестра, и вы сразу использовали вариант Загрузка последней удачной конфигурации (Last Known Good Configuration). Помимо этого, все конфигурационные изменения, внесенные в систему после ее предыдущей успешной загрузки, будут потеряны.

Если приведенные выше рекомендации не помогли решить проблему, вспомните о методах восстановления поврежденного реестра, подробно описанных в главе 2. В частности, в Windows NT 4.0 можно попытаться выполнить процедуру восстановления с помощью ERD и воспользоваться опцией Inspect Registry Files, после выбора которой на экране появится список файлов реестра, из которого можно выбрать те из них, которые требуется заменить.

В отличие от процесса аварийного восстановления в Windows NT 4.0, как ручное, так и автоматическое восстановление Windows 2000 с помощью ERD не устраняют ошибки реестра (вернее, устраняют, но делают это своеобразно — для восстановления реестра используется его резервная копия, созданная программой Setup при установке системы и расположенная в каталоге %SystemRoot%\Repair). Поэтому для устранения ошибок реестра в Windows 2000/XP пользуйтесь возможностями Консоли восстановления (Recovery Console) (и не забывайте иметь его качественную резервную копию). Как уже упоминалось в главе 2, целиком посвященной разнообразным методам резервного копирования и восстановления реестра, резервная копия реестра создается при выполнении резервного копирования данных из набора System state и сохраняется в папке %SystemRoot%/Repair/Regback. В случае затирания или повреждения файлов реестра резервные копии его файлов, сохраненные в этой папке, могут использоваться для восстановления системы без применения полной процедуры восстановления системных конфигурационных данных.

Не следует также пренебрегать и резервным копированием реестра с помощью утилит из состава Resource Kit (Regback и Regrest в Windows NT 4.0 и REG — из состава Resource Kit для Windows 2000 и Windows XP).

 Примечание 

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

 

Консоль восстановления

Консоль восстановления Windows 2000/XP (Recovery Console) представляет собой утилиту с интерфейсом командной строки, предоставляющую администраторам и пользователям с административными правами необходимый минимум средств, позволяющих выполнить восстановительные процедуры в системе, имеющей проблемы с загрузкой. Используя Консоль восстановления (Recovery Console), можно запускать и останавливать сервисы, форматировать диски, выполнять чтение и запись данных на локальные жесткие диски (включая и те, которые отформатированы для использования файловой системы NTFS), устранять проблемы с поврежденной главной загрузочной записью (MBR) и поврежденными загрузочными секторами, а также выполнять другие административные задачи.

Особенно полезной эта новая возможность Windows 2000/XP может оказаться в том случае, когда для восстановления системы требуется скопировать на жесткий диск один или несколько системных файлов (с дискеты или компакт-диска) или же переконфигурировать сервис или драйвер, некорректная конфигурация которого мешает загрузить Windows 2000/XP.

Примечание 

Для применения Консоли восстановления (Recovery Console) необходимо зарегистрироваться в выбранной операционной системе, введя пароль администратора.

Способы запуска, установка и удаление Консоли восстановления (Recovery Console) были описаны в главе 2, поэтому в данной главе мы остановимся именно на применении этого средства для восстановления системы с ошибками конфигурации.

 

Применение Консоли восстановления

Консоль восстановления (Recovery Console) предоставляет полноэкранный интерфейс командной строки (как в MS-DOS). Ориентироваться в работе с Консолью восстановления (Recovery Console) вам поможет команда help, которая, как несложно догадаться, выводит список команд, доступных при работе с консолью. Помимо этого, полный список команд Консоли восстановления (Recovery Console) можно найти в справочной системе Windows 2000/XP (достаточно выполнить поиск по словам "Консоль восстановления" ("Recovery Console")). Консоль восстановления поддерживает следующие команды:

Чтобы вывести информацию по работе с конкретной командой, используйте следующий синтаксис:

HELP  command name 

(например,HELP FIXBOOT) или

command name /?

(например, LISTSVC /?).

Примечание 

Существует ряд ограничений на использование Консоли восстановления (Recovery Console). Так, например, в Win2K RC2 build 2128 можно копировать на жесткий диск файлы с дискет, но попытка скопировать файл с жесткого диска на дискету закончится неудачей. Создавать каталоги можно только в пределах каталога %SystemRoot% (например, \WINNT), но не на корневом уровне (С:\). Копирование файлов допустимо выполнять только в корневой каталог и каталог %SystemRoot%. Наконец, команда копирования не поддерживает символов шаблона (wildcard characters), и, следовательно, не позволяет скопировать несколько файлов за одну операцию.

 

Отчет об ошибках

В Windows XP появилась новая функциональная возможность — Error Reporting service (сервис создания отчетов об ошибках). Согласно заявлениям Microsoft, она предназначена для оказания помощи пользователям при отыскании причин отказов и сбоев в системе и при этом помогает разработчикам Windows XP в работе над будущей версией системы. Сервис Отчет об ошибках (Error Reporting) отслеживает неполадки, возникшие в режиме пользователя (user mode) и в режиме ядра (kernel mode), влияющие на работу компонентов Windows XP и приложений.

Если ошибка возникает в режиме пользователя (например, из-за ошибки приложения), сервис Отчет об ошибках (Error Reporting) выполняет следующие действия.

Рис. 6.15. Сервис Отчет об ошибках отображает сообщение об обнаруженной ошибке в режиме пользователя (в работе приложения)

Когда ошибка возникает в режиме ядра (STOP-сообщение, которое мы кратко обсудили в предыдущем разделе), Windows XP создает компактный файл дампа (small memory dump) на диске. После перезагрузки системы в обычном или безопасном режиме, с поддержкой сети и регистрацией, сервис Отчет об ошибках (Error Reporting) выполняет описанные ниже действия.

Рис. 6.16. Сервис Отчет об ошибках отображает предупредительное сообщение о том, что Windows XP обнаружила серьезную проблему (в данном случае, STOP-сообщение)

Опции сервиса Отчет об ошибках (Error Reporting) можно настроить вручную. Для этого необходимо выполнить следующие действия:

1. Запустите утилиту Система (System) в Панели управления (Control Panel). Перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Отчет об ошибках (Error Reporting). На экране появится окно Отчет об ошибках (Error Reporting) — рис. 6.17.

Рис. 6.17. Окно Отчет об ошибках

2. В этом окне вы можете установить следующие опции отчета об ошибках:

При появлении STOP-сообщений система Windows XP всегда создает файл дампа. Таким образом, сервис Отчет об ошибках (Error Reporting) может отправить отчет о проблеме с информацией из этого компактного дампа, даже если в системе задана генерация полного дампа памяти (complete memory dump) или дампа ядра (small memory dump).

Для того чтобы настроить сервис Отчет об ошибках (Error Reporting) для отслеживания ошибок в работе конкретных приложений, выполните следующее:

1. Откройте окно Отчет об ошибках (Error Reporting) — см. рис. 6.17. Если генерация отчетов отключена, включите этот сервис, установив переключатель Включить отчет об ошибках (Enable error reporting), при этом должен быть установлен флажок Программ (Programs).

2. Нажмите кнопку Выбор программ (Choose Programs), чтобы открыть окно Выбор программ (Choose Programs) — рис. 6.18. В нем отображены следующие опции:

 

Рис. 6.18. Окно Выбор программ

При необходимости, можно изменить адрес (путь), по которому будет отправлен отчет (по умолчанию, он отправляется в Microsoft), изменив установки в групповой политике (Group Policy) или же путем редактирования реестра.

Для изменения адреса (пути), по которому будет отправлен отчет:

1. Запустите программу Regedit.exe и раскройте ключ HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\PCHealth\ErrorReporting (рис. 6.19). Если в нем нет вложенного ключа DW, его надо создать.

Рис. 6.19. Значения опций ErrorReporting в реестре

2. Создайте другой вложенный ключ DWNoSecondLeveicoiiection, а под ним — строковое значение ER_Report_path. Укажите новый путь направления отчета. Например, \\myserver\myshare\my_dir.

3. Нажмите кнопку OK и закройте Редактор реестра (Registry Editor).

4. Чтобы восстановить исходную конфигурацию для направления отчетов непосредственно в Microsoft, элемент ER_Report_Path необходимо удалить.

 

Резюме

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

Используются технологии uCoz