Как вы, наверное, заметили из предыдущей главы, использование программы bcdedit.exe является довольно сложным занятием. Именно для облегчения этой процедуры сторонними разработчиками и была создана программа VistaBootPRO.

Данная программа распространяется бесплатно, весит 1,41 Мбайт и ее можно скачать с официального сайта http://www.pro-networks.org/vistabootpro.

Как и рассмотренную нами ранее программу bcdedit.exe, данную программу нужно запускать только от имени администратора (фактически, VistaBootPRO является графическим интерфейсом для программы bcdedit.exe).

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

После нажатия кнопки VIEW SETTINGS можно просмотреть текущие параметры настройки загрузочного меню. Фактически, нажатие кнопки VIEW SETTINGS эквивалентно выводу команды bcdedit без параметров.

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

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

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

С помощью кнопки BACKUP/RESTORE можно выполнить архивирование загрузочного меню или восстановление из уже созданного архива.

И, наконец-то, с помощью кнопки BOOTLOADER можно заново создать загрузочное меню, используемое по умолчанию, или восстановить загрузочное меню, применяемое в ранних версиях операционной системы Windows (на основе файла boot.ini).

Программа msconfig.exe

В стандартную поставку Windows Vista входит программа msconfig.exe, с помощью которой также можно выполнить настройку некоторых параметров загрузки операционных систем. Для этого нужно запустить данную программу и перейти на вкладку ЗАГРУЗКА (рис. 1.10). Как можно заметить из рисунка, данная программа позволяет настраивать лишь опции запуска установленных на компьютере операционных систем Windows Vista, а также указывать таймаут ожидания выбора пользователем запускаемой операционной системы.

С помощью программы msconfig.exe можно установить или снять следующие опции: /NOGUIBOOT, /BOOTLOG, /BASEVIDEO, /SOS, /SAFEBOOT, /NUMPROC, /MAXMEM, /PCILOCK, /DETECTHAL, /DEBUG, /BAUDRATE, /CHANNEL, /DEBUGPORT. Более подробно эти опции описываются ниже в главе о файле boot.ini.

Диалог Загрузка и восстановление

Также некоторые параметры работы загрузочного меню можно изменить с помощью диалога ЗАГРУЗКА И ВОССТАНОВЛЕНИЕ. К ним относится запускаемая по умолчанию операционная система, таймаут ожидания выбора операционной системы пользователем, а также уникальный параметр — таймаут ожидания перед выбором способа загрузки операционной системы в меню ДОПОЛНИТЕЛЬНЫЕ ВАРИАНТЫ ЗАГРУЗКИ.

Для отображения диалога ЗАГРУЗКА И ВОССТАНОВЛЕНИЕ, сначала нужно вызвать диалог СВОЙСТВА СИСТЕМЫ. Для этого нужно выполнить команду SystemPropertiesAdvanced.exe. После этого нужно перейти на вкладку ADVANCED диалога SYSTEM PROPERTIES, и в поле ЗАГРУЗКА И ВОССТАНОВЛЕНИЕ нажать на кнопку ПАРАМЕТРЫ….

Хранение содержимого загрузочного меню в реестре

Как уже упоминалось ранее, теперь загрузочное меню операционной системы хранится не в файле boot.ini, а в реестре. Для этого служит ветвь реестра HKLM\BCD00000000. Несмотря на то, что способ хранения загрузочного меню в реестре операционной системы выглядит довольно странно (например, как понять, в реестре какой операционной системы хранится загрузочное меню, ведь на момент его отображения, ни одна из операционных систем загружена не была), этот способ работает, и вы можете редактировать загрузочное меню непосредственно из реестра операционной системы, загружаемой по умолчанию.

Также сведения о настройках загрузочного меню хранятся в каталоге boot, расположенном на системном разделе диска. В этом каталоге хранится файл bcd, который является кустом ветви реестра HKLM\BCD00000000.

Но перед тем как редактировать содержимое ветви HKLM\BCD00000000, нужно изменить права доступа к ней. Для этого в контекстном меню данной ветви реестра нужно выбрать команду РАЗРЕШЕНИЯ… и в появившемся диалогом окне выбрать свою учетную запись и разрешить ей полный доступ к ветви реестра. Более того, так нужно делать после каждой перезагрузки компьютера, так как после перезагрузки данной ветви присваиваются права доступа по умолчанию.

Вся информация об элементах загрузочного меню хранится в ветви реестра HKLM\BCD00000000\objects. Данная ветвь реестра содержит набор подразделов, названных в честь CLSID-номеров поля идентификатор элементов загрузочного меню. При этом в данной ветви реестра содержится намного больше подразделов, чем элементов загрузочного меню — ветвь реестра HKLM\BCD00000000\objects содержит не только настройки элементов загрузочного меню, но и описание различных связей и элементов загрузочного меню, которые никогда в нем не отображаются, но влияют на его работу. Мы рассмотрим только содержимое подразделов, которые определяют отображаемые элементы загрузочного меню. Все они содержат в себе дочерний подраздел Elements, который, в свою очередь, содержит набор подразделов, определяющих значения полей данного элемента загрузочного меню (например, поля description, locale и т.д.). Например, в ветви реестра HKLM\BCD00000000\objects\{CLSID-номер элемента}\Elements можно встретить такие подразделы.

* 12000002 — хранит значение поля Path. * 12000004 — хранит значение поля Description. * 12000005 — хранит значение поля locale. * 22000002 — хранит значение поля Systemroot. * 23000003 — если вы переименовывали элемент загрузочного меню, тогда данный подраздел содержит CLSID-номер предыдущего элемента загрузочного меню (при переименовании элемента загрузочного меню, фактически, вы делаете копию этого элемента, которая отображается в загрузочном меню). В блоке данных ДИСПЕТЧЕР ЗАГРУЗКИ WINDOWS, как и в остальных элементах загрузочного меню, данный подраздел определяет значение поля resumeobject. * 23000006 — в блоке данных ДИСПЕТЧЕР ЗАГРУЗКИ WINDOWS определяет значение поля default. * 24000001 — хранит значение поля Displayorder блока данных ДИСПЕТЧЕР ЗАГРУЗКИ WINDOWS. * 24000010 — хранит значение поля Toolsdisplayorder блока данных ДИСПЕТЧЕР ЗАГРУЗКИ WINDOWS. * 25000004 — в блоке данных ДИСПЕТЧЕР ЗАГРУЗКИ WINDOWS определяет значение поля timeout. * 12000016 — параметр строкового типа Element данного подраздела определяет название порта USB, который будет использоваться при передаче отладочной информации на удаленный компьютер. * 15000007 — параметр REG_BINARY типа Element данного подраздела определяет количество оперативной памяти, установленной на компьютере, которое будет использоваться при работе в данной операционной системе. То есть, значение данного параметра эквивалентно значению опции /MAXMEM.

Описание опций запуска операционной системы приведено ниже в главе о файле boot.ini. * 15000011 — параметр REG_BINARY типа Element данного подраздела определяет порт, по которому будет передаваться удаленному компьютеру отладочная информация. То есть, значение данного параметра эквивалентно значению опции /DEBUGPORT. Значение 1 определяет порт IEEE1394. Значение 2 определяет порт USB. Остальные значения опции /DEBUGPORT определяются в подразделе 15000013. * 15000013 — параметр REG_BINARY типа Element данного подраздела определяет порт, по которому будет передаваться удаленному компьютеру отладочная информация. То есть, значение данного параметра эквивалентно значению опции /DEBUGPORT. Значения от 1 до 4 определяют порты от COM1 до COM4. Остальные значения опции /DEBUGPORT определяются в подразделе 15000011. * 15000014 — параметр REG_BINARY типа Element данного подраздела определяет скорость в бодах, которая будет использоваться при передаче отладочной информации на удаленный компьютер. То есть, значение данного параметра эквивалентно значению опции /BAUDRATE. * 15000015 — параметр REG_BINARY типа Element данного подраздела определяет канал порта IEEE1394, который будет использоваться при передаче отладочной информации на удаленный компьютер. То есть, значение данного параметра эквивалентно значению опции /CHANNEL. * 25000061 — параметр REG_BINARY типа Element данного подраздела определяет количество процессоров, установленных в компьютере, которые будут использоваться при работе в данной операционной системе. То есть, значение данного параметра эквивалентно значению опции /NUMPROC. * 25000080 — значение параметра REG_BINARY типа Element данного подраздела определяет значение опции /SAFEBOOT. Возможны следующие значения данного параметра: o 00 00 00 00 00 00 00 00 — эквивалентно значению MINIMAL опции /SAFEBOOT; o 01 00 00 00 00 00 00 00 — эквивалентно значению NETWORK опции /SAFEBOOT; o 02 00 00 00 00 00 00 00 — эквивалентно значению DSREPAIR опции /SAFEBOOT. * 26000081 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться со значением MINIMAL(ALTERNATESHELL) опции /SAFEBOOT. При этом значение параметра Element подраздела 25000080 должно быть равно 00 00 00 00 00 00 00 00. * 26000010 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /DETECTHAL. * 26000040 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /BASEVIDEO. * 26000041 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /NOGUIBOOT. * 26000070 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /PCILOCK. * 26000090 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /BOOTLOG. * 26000091 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /SOS. * 260000a0 — если значение параметра REG_BINARY типа Element данного подраздела равно 01, тогда данная операционная система будет запускаться с установленной опцией /DEBUG.

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

Выполнение команды rundll32.exe sysdm.cpl, EnableExecuteProtectionSupportW приводит к установке значения параметра REG_BINARY типа Element, расположенного в ветви реестра HKLM\BCD00000000\Objects\{50c73d4c-e6b3-11da-bc73-d30cdb1ce216}\Elements\25000020, равным 00 00 00 00.

Также в ветви реестра HKLM\BCD00000000 содержится подраздел description. Он определяет глобальные настройки загрузочного меню и содержит два интересных параметра REG_DWORD-типа: System и TreatAsSystem. Значение обоих этих параметров по умолчанию равно 1. Если вы присвоите им значение 0, тогда программа bcdedit больше не сможет редактировать настройки загрузочного меню, а ветвь реестра HKLM\BCD00000000 будет удалена. Тем не менее, загрузочное меню будет и дальше отображаться и работать корректно.

Команда Windows Memory Diagnostic

В нижней части нового загрузочного меню Windows Vista появилась команда WINDOWS MEMORY DIAGNOSTIC, с помощью которой вы сможете выполнить диагностику оперативной памяти компьютера (чтобы перейти на эту команду, нужно нажать клавишу TAB). Если в процессе выполнения диагностики система определила, что оперативная память содержит поврежденные ячейки данных, тогда она запретит доступ к этим ячейкам данных. Это единственный способ прекратить возникновение ошибок работы программ или экранов BSOD, если оперативная память повреждена. Конечно, после запрета доступа к памяти, количество доступной в операционных системах Windows Vista оперативной памяти сократится, но зато работа операционной системы будет более стабильной.

Если после диагностики оперативной памяти, доступ к определенным ячейкам был заблокирован, тогда вы сможете воспользоваться командой bcdedit /enum {badmemory}, чтобы просмотреть список заблокированных ячеек.

Сведения о результатах диагностики оперативной памяти заносятся в журнал Applications and Services/Microsoft/Windows/MemoryDiagnostics-Results.

Также программу диагностики оперативной памяти вы можете запустить непосредственно из операционной системы. Для этого нужно воспользоваться программой MdSched.exe, расположенной в каталоге %systemroot%\system32. После запуска данной программы перед вами отобразится диалог WINDOWS MEMORY DIAGNOSTICS TOOL, который позволяет выбрать одну из следующих возможностей.

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

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

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

Дополнительные варианты загрузки

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

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

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

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

Ведение журнала загрузки При запуске операционной системы создается файл ntbtlog.txt (в каталоге %systemroot%), содержащий в себе сведения обо всех драйверах и службах, которые были запущены или, наоборот, запуск которых не произошел из-за ошибок.

Включение видеорежима с низким разрешением (640x480) Операционная система запускается при разрешении монитора, равном 640 на 480 пикселей. Если ошибка возникает при загрузке графической оболочки операционной системы, можно попробовать воспользоваться этим режимом.

Последняя удачная конфигурация (дополнительно) Операционная система запускается с использованием заведомо работоспособной ветви реестра HKLM\System\ControlSet00N. При каждом успешном запуске операционной системы создается копия ветви реестра HKLM\System\ControlSet00N, ссылка на которую используется при выборе данного элемента меню, если загрузка с использованием текущей версии данной ветви реестра приводит к ошибке. Это может пригодиться, если вы только что установили какой-нибудь драйвер или службу, а после перезагрузки компьютера, операционная система больше не загружается.

Режим восстановления служб каталогов При запуске операционной системы происходит восстановление службы каталогов контроллера домена Active Directory.

Режим отладки При запуске операционной системы активизируется отладчик ядра операционной системы. При возникновении ошибки BSOD сведения отладчика передаются на удаленный компьютер через подключенный нуль-модемный кабель или службу RAS (с помощью модема).

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

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

Обычная загрузка Windows Выполняется стандартный запуск операционной системы.