Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах


Глава 2. Настройка компонентов. 2.9. Загрузочное меню Windows Vista - начало
Дата: 13 июля 2009, понедельник

У вас возникли вопросы по Windows? Задайте их нам на Форуме (http://www.onestyle.com.ua/q.php). Вам достаточно просто зарегистрироваться!

В конец записи

Операционная система Windows Vista использует новое загрузочное меню (рис. 2.07), настройка и работа которого отличается от загрузочного меню предыдущих версий Windows, формируемого при помощи файла boot.ini. Его основные достоинства состоят в поддержке символов Unicode, а также объединения поддержки архитектур загрузочной записи MBR и EFI.

Подробнее о boot.ini можно прочитать в разделе «Что произошло с файлом boot.ini?», который имеет CLSID-номер 4d7d08ba-d61c-4c02-9f94-6d2c0e34ae73.


Рис. 2.07. Загрузочное меню Windows Vista

Хранение сведений о загрузочном меню Сведения о загрузочном меню Windows Vista хранятся в кусте реестра BCD, расположенном в каталоге «системный диск»:\BOOT. После загрузки Windows Vista данный куст реестра проецируется на ветвь реестра HKLM\BCD00000000. Чтобы можно было редактировать данную ветвь реестра, необходимо изменить права доступа к ней, перед этим став ее владельцем. Все изменения данной ветви реестра после перезагрузки компьютера будут сохранены в кусте BCD.

В ветвь реестра HKLM\BCD00000000 содержится два подраздела: description и objects.

Подраздел description определяет глобальные настройки загрузочного меню, например, с его помощью можно запретить Windows Vista отображение ветви реестра HKLM\BCD00000000. После этого никто не сможет редактировать ее настройки (хотя загрузочное меню и дальше будет работать стабильно).

Подраздел objects хранит в себе настройки всех элементов загрузочного меню Windows Vista (команды запуска операционных систем, команды запуска диагностических средств и т.д.), а также самого загрузочного меню. Для этого в подразделе objects находится множество дополнительных подразделов (их названия формируются на основе CLSID-номеров), каждый из которых определяет настройки определенного элемента загрузочного меню. Подразделы элементов загрузочного меню содержат в себе подраздел Elements, который, в свою очередь, содержит набор подразделов, каждый из которых определяет определенную настройку элемента загрузочного меню. Для этого используется параметр Element.

Возможно, понять структуру ветви реестра HKLM\BCD00000000\objects будет проще на шаблоне. Параметр Element хранится в ветви реестра следующего вида HKLM\BCD00000000\objects\{CLSID-номер элемента загрузочного меню}\Elements\номер_элемента.

Далее в этой главе мы рассмотрим назначения отдельных параметров Element.

Программа bcdedit.exe Для редактирования нового загрузочного меню Windows Vista используется программа командной строки bcdedit.exe. при запуске данной программы без параметров перед вами отобразится текущая структура загрузочного меню. Иногда это бывает очень полезно. Например, в листинге 2.01 представлен пример части отображаемого после запуска программы bcdedit.exe без параметров загрузочного меню.

Листинг 2.01. Запуск программы bcdedit.exe без параметров
Диспетчер загрузки Windows
--------------------
идентификатор           {bootmgr}
device                  partition=C:
default                 {current}
resumeobject            {407ac6a5-de7f-11db-8f5b-806e6f6e6963}
displayorder            {a5e3acee-de7e-11db-b1b7-8bff7bf0e4c7}
                        {a5e3acef-de7e-11db-b1b7-8bff7bf0e4c7}
                        {current}
                        {ntldr}
timeout                 4

Загрузка Windows
-------------------
идентификатор           {a5e3acee-de7e-11db-b1b7-8bff7bf0e4c7}
device                  partition=J:
path                    \Windows\system32\winload.exe
description             Windows Vista (TM) Ultimate
osdevice                partition=J:
systemroot              \Windows
resumeobject            {cb993e8f-de7e-11db-ab59-806e6f6e6963}

Идентификатор записи

Прежде чем начать описание работы с программой bcdedit.exe следует сказать несколько слов об идентификаторах записи. Идентификатором записи называется CLSID-номер элемента загрузочного меню — то есть, именно в честь идентификаторов записи названы подразделы рассмотренной нами выше ветви реестра HKLM\BCD00000000\objects.

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

Иногда бывает необходимо отобразить истинное GUID-имя записи, а не стандартный идентификатор, который ей присвоен, в этом случае используется опция /v. Например, команда bcdedit /enum ACTIVE /v отобразит GUID-номера всех записей загрузочного меню.

Таблица 2.41. Стандартные идентификаторы записи

  • {bootmgr}. Запись диспетчера загрузки Windows.
  • {fwbootmgr}. Запись диспетчера загрузки микропрограмм (применяется в 64-разрядных системах).
  • {memdiag}. Запись приложения диагностики памяти.
  • {ntldr}. Запись загрузчика предыдущих версий Windows.
  • {current}. Запись, определяющая Windows, которая запущена в данный момент.
  • {default}. Запись, определяющая Windows, которая запускается по умолчанию.
  • {ramdiskoptions}. Дополнительные параметры, требуемые диспетчером загрузки для устройств электронных дисков.
  • {dbgsettings}. Глобальные параметры отладки, наследуемые любой записью приложения загрузки.
  • {emssettings}. Глобальные параметры служб аварийного управления, наследуемые любой записью приложения загрузки.
  • {badmemory}. Список дефектов RAM, наследуемый любой записью.
  • {globalsettings}. Параметры, наследуемые записями приложений загрузки.
  • {bootloadersettings}. Параметры, наследуемые записями приложений загрузки Windows.
  • {resumeloadersettings}. Параметры, наследуемые при выходе из спящего режима.

Работа с хранилищем

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

  • bcdedit /createstore «файл». Создает новое пустое хранилище, помещая его в указанный вами файл.
  • bcdedit /export «файл». Экспортирует содержимое текущего хранилища в файл.
  • bcdedit /import «файл». Восстанавливает текущее хранилище на основе данных, расположенных в файле.

Порядок отображения элементов хранилища

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

С помощью команды bcdedit /displayorder «идентификатор записи» "опции" можно изменить порядок отображения элементов в хранилище. Данная команда поддерживает следующие варианты синтаксиса.

  • bcdedit /displayorder «идентификатор записи1» «идентификатор записи2» «идентификатор запис3»…. Установить порядок отображения записей хранилища в соответствии с указанным в команде.
  • bcdedit /displayorder «идентификатор записи» /addfirst. Переместить (либо добавить, если запись не отображается) запись в начало списка записей.
  • bcdedit /displayorder «идентификатор записи» /addlast. Переместить (либо добавить, если запись не отображается) запись в конец списка записей.
  • bcdedit /displayorder «идентификатор записи» /remove. Удалить запись из списка записей.

Предыдущая команда предназначалась для изменения порядка отображения записей, связанных с загрузкой операционных системы. Если же нужно изменить порядок отображения записей, связанных с запуском дополнительных диагностических программ, тогда следует воспользоваться командой bcdedit /toolsdisplayorder. Ее синтаксис аналогичен синтаксису рассмотренной ранее команды bcdedit /displayorder: bcdedit /toolsdisplayorder «идентификатор записи» /addfirst | /addlast | /remove.

Также вы можете указать однократную последовательность загрузки, которая будет использоваться диспетчером загрузки. Для этого применяется команда bcdedit /bootsequence. Ее синтаксис аналогичен командам, описанным выше.

В таблице ниже представлены подразделы ветви реестра HKLM\BCD00000000\objects\{CLSID-номер элемента загрузочного меню}\Elements, параметры Element которых хранят в себе настройки, изменяемые данными командами. Эти параметры имеют тип REG_MULTI_SZ.

Таблица 2.42. Подразделы ветви HKLM\BCD00000000\objects\{CLSID-номер элемента}\Elements

  • 24000001 - Порядок расположения элементов загрузочного меню (команда Displayorder).
  • 24000010 - Порядок расположения элементов нижнего загрузочного меню (команда Toolsdisplayorder)

Работа с отдельной записью

Отдельные записи можно удалять, создавать, копировать, перечислять. Синтаксис этих операций представлен ниже.

  • bcdedit /copy «идентификатор» /d «описание». Создать копию записи в текущем хранилище, присвоив ей указанное в опции /d «человеческое» имя.
  • bcdedit /store «файл» /copy «идентификатор» /d «описание». Создать копию записи в хранилище, хранящемся в указанном файле.
  • bcdedit /create "опции". Создать новую запись. Опции данной команды представлены в таблице 2.39.
  • bcdedit /delete «идентификатор» /f /cleanup | /nocleanup. Удалить данную запись из текущего хранилища. Опция /cleanup используется для того, чтобы указать Windows также выполнить удаление всех существующих ссылок на запись, которая будет удалена. Опция /f применяется в том случае, когда необходимо удалить запись, имеющую стандартный идентификатор.
  • bcdedit /store «файл» /delete «идентификатор» /f /cleanup | /nocleanup. Удалить данную запись из хранилища, расположенного в указанном файле.
  • bcdedit /enum тип. Выполнить перечисление всех записей хранилища, имеющих указанный тип. Возможные типы записей представлены в таблице 2.43. Также можно указать дополнительную опцию /store «файл», чтобы выполнить перечисление записей, расположенных в хранилище указанного файла.

Таблица 2.43. Опции команды bcdedit /create

  • «идентификатор». Определяет запись, настройки которой нужно использовать при создании новой записи. При использовании данной опции все другие опции (кроме опции /d), указывать нельзя.
  • /d «описание». Определяет «человеческое» имя новой записи, которое будет отображаться в загрузочном меню.
  • /application OSLOADER|RESUME| BOOTSECTOR|STARTUP. Выполнить создание записи приложения указанного типа.
  • {/inherit: BOOTMGR|BOOTSECTOR| FWBOOTMGR|MEMDIAG|NTLDR|OSLOADER|RESUME|DEVICE} | /device. Выполнить создание наследуемой записи, которая будет наследовать параметры от указанного типа приложений.

Таблица 2.44. Типы записей, используемые в команде bcdedit /enum

ACTIVE Все записи в порядке их отображения
  (используется по умолчанию).
FIRMWARE Приложения микропрограмм.
BOOTAPP Приложения среды загрузки.
BOOTMGR Диспетчер загрузки.
OSLOADER Записи загрузчика операционной системы.
RESUME Записи о выходе из спящего режима.
INHERIT Записи о наследовании.
ALL Все записи.

Продолжение следует

Рейтинг: 0 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=585

В избранное