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

Секреты Windows: статьи о реестре, rundll32.exe, программах Работа с загрузочным меню Windows Vista, окончание


Уважаемые подписчики, на нашем сайте (http://www.onestyle.com.ua) организован опрос, тема которого: 'Содержимое какой из книг вы бы хотели прочитать в будущих статьях на нашем сайте?'. Голосуйте на сайте за одну из книг, содержимое которой вы хотели бы видеть в номерах данной рассылки: 'Оптимизация и автоматизация работы на ПК. На 100%', 'Реестр Windows Vista. На 100%', 'Недокументированные и малоизвестные возможности Windows Vista. Для профессионалов'.
Другие наши рассылки:
  • Новости IT-мира: Ежедневно ссылки на новости и статьи сайтов ixbt.com, thevista.ru, xakep.ru, securitylab.ru, oszone.ru, inattack.ru, ht.ua, overclockers.ru, центр загрузки Microsoft, softportal.com, realcoding.net, 3dcenter.ru, ladoshki.com, smti.ru, seonews.ru, ibm.com и др.

Данная статья была написана для журнала Мой компьютер.

Содержимое блоков загрузочного меню

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

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

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

Значение идентификатора указывается в виде GUID-номера (автоматически генерируется при создании нового элемента загрузочного меню). Кроме того, существует несколько предопределенных идентификаторов, которые имеют символьные названия. Например, следующие.

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

Скорее всего, из представленного выше списка вы будете использовать только три предопределенных идентификатора. Это идентификаторы {current}, {default} и {ntldr}.

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

Как правило, значение атрибута device указывается в формате partition=[буква диска]:.

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

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

Как правило, для операционной системы Windows Vista значение данного параметра равно \Windows\system32\winload.exe. Значение же данного параметра для блока, запускающего загрузчик предыдущих версий Windows, равно \ntldr.

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

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

Osdevice Применяется в блоке Загрузка Windows и определяет букву системного раздела для данной операционной системы.

Как правило, значение атрибута osdevice указывается в формате partition=[буква диска]:.

Systemroot Применяется в блоке Загрузка Windows и определяет каталог, в котором находятся системные файлы данной операционной системы (без буквы раздела, на котором находится каталог).

Как правило, значение атрибута systemroot равно \Windows.

Resumeobject Применяется во всех блоках и определяет GUID-номер объекта возобновления, связанного с данным элементом загрузочного меню.

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

По умолчанию загружается последняя установленная вами операционная система Windows Vista.

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

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

По умолчанию вам доступна только одна программа поддержки — программа диагностики состояния оперативной памяти (Windows Memory Diagnostics).

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

Атрибуты device и osdevice

Выше мы с вами рассмотрели атрибуты device и osdevice, а также узнали их основной синтаксис — partition [буква диска]. Однако помимо данного синтаксиса существуют и другие варианты синтаксиса значений данных атрибутов. Всего таких вариантов синтаксиса три.

  • PARTITION=буква диска. Данный синтаксис используется при описании загрузки операционной системы, расположенной на жестком диске компьютера.
  • FILE=[[boot|буква диска]]путь. Данный синтаксис используется для запуска операционной системы Windows Vista из образа.
  • RAMDISK=[[boot|буква диска]]путь,идентификатор. Данный синтаксис используется для запуска операционной системы Windows Vista из образа, расположенного на внешнем диске.

Опция boot в синтаксисах RAMDISK= и FILE= определяет букву раздела диска, на котором находится загрузочное меню, отображаемое в данный момент. Например, если синтаксис RAMDISK= используется для запуска операционной системы с компакт-диска, опция boot указывает на букву диска соответствующего привода компакт-дисков.

Лучше понять варианты использования синтаксиса RAMDISK= можно при помощи загрузочного меню установочного диска Windows Vista. Загрузите это загрузочное меню в программу bcdedit.exe и просмотрите его содержимое. Сделать это можно при помощи команды вида bcdedit.exe /store [буква привода с установочным диском Windows]:\boot\bcd. Ниже представлен пример того, что вы увидите.

Диспетчер загрузки Windows
--------------------
идентификатор           {bootmgr}
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Загрузка Windows
-------------------
идентификатор           {default}
device                  ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path                    \windows\system32\boot\winload.exe
description             Windows Setup
locale                  en-US
inherit                 {bootloadersettings}
osdevice                ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot              \windows
detecthal               Yes
winpe                   Yes
ems                     Yes
Администрирование загрузочного меню

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

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

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

Делается это очень просто — при помощи команды bcdedit /export [файл].

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

Создание нового загрузочного меню. Иногда вам может потребоваться возможность создания нового загрузочного меню с нуля. Делается это также просто, как и импортирование/экспортирование загрузочного меню. Для этого достаточно воспользоваться командой bcdedit /createstore [файл, в котором будет создано новое пустое загрузочное меню].

Копирование элемента загрузочного меню. Если вы решили изменить определенный элемент загрузочного меню (при помощи описанных ниже примеров), пожалуйста, воспользуйтесь перед этим командой вида bcdedit /copy [идентификатор] /d [значение атрибута description].

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

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

Редактирование загрузочного меню

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

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

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

Делается это при помощи одной команды — bcdedit /set [идентификатор] [атрибут] [значение]. С помощью данной команды изменяется значение атрибута элемента текущего загрузочного меню. Если же вы хотите изменить элемент загрузочного меню, отличный от текущего, нужно воспользоваться командой вида bcdedit /store [файл загрузочного меню] /set [идентификатор] [атрибут] [значение].

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

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

Создание элементов загрузочного меню

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

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

Если вы решили, что на этом создание нового элемента загрузочного меню окончено, вы отчасти правы. Новый элемент действительно будет создан — найти его настройки вы сможете при помощи описанных выше команд вида bcdedit /enum [фильтр], однако вы так и не сможете найти его в загрузочном меню Windows Vista.

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

  • bcdedit /displayorder [идентификатор] /addfirst. Добавить идентификатор созданного элемента загрузочного меню в начало списка загрузочного меню.
  • bcdedit /displayorder [идентификатор] /addlast. Добавить идентификатор созданного элемента загрузочного меню в конец списка загрузочного меню.
  • bcdedit /displayorder [идентификатор] /remove. Удалить элемент из списка загрузочного меню.

При помощи описанных выше команд изменяется структура верхнего списка загрузочного меню Windows Vista (то есть, списка операционных систем, которые можно загрузить). Если же нужно модифицировать содержимое нижнего списка загрузочного меню (списка программ, которые можно запустить), следует воспользоваться командами вида bcdedit /toolsdisplayorder [идентификатор] {/addfirst | /addlast | /remove}.

Удаление элементов загрузочного меню

Удаление элемента загрузочного меню такое же простое действие, как и его создание. Для выполнения этого действия достаточно воспользоваться командой вида bcdedit /delete [идентификатор] /f {/cleanup | /nocleanup}.

Если вы укажете опцию /cleanup, тогда помимо самого элемента будут удалены все существующие ссылки на него.

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

Примеры использования программы bcdedit.exe

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

Изменение названия текущей загруженной операционной системы: bcdedit /set {current} description [новое название]

Изменение названия операционной системы, загружаемой по умолчанию: bcdedit /set {default} description [новое название]

Изменение названия загрузчика предыдущих версий Windows: bcdedit /set {ntldr} description [новое название]

Изменение названия остальных пунктов меню: bcdedit /set [{GUID-номер}] description [новое название]

Если вы установили несколько языковых пакетов и при этом захотели, чтобы загрузочное меню использовало локализацию, отличную от лакализации по умолчанию, изменить локализацию вы сможете так: bcdedit /set {bootmgr} locale [локализация, например, ru-RU, en-US, FI-FI, DE-DE]

Установить операционную систему, загружаемую по умолчанию, очень просто:

bcdedit /default <{GUID-номер}>
bcdedit /timeout <интервал ожидания выбора пользователя>

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

bcdedit /create {ntldr} /d "Загрузчик ОС прежних версий"
bcdedit /set {ntldr} device partition <буква диска, содержащего загрузчик ntldr>:
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addlast

Опция PAE используется в 32-битных системах для расширения доступного им адресного пространства. Включить ее можно так: bcdedit /set [{GUID-номер}] pae ForceEnable. Отключить же данную опцию можно при помощи следующей команды: bcdedit /set [{GUID-номер}] pae ForceDisable

Создание записи в списке программ поддержки загрузочного меню (находится под списком установленных версий Windows, и перейти к нему можно при помощи клавиши TAB) проще всего выполнить методом копирования стандартной записи с идентификатором {memdiag}. Для этого достаточно воспользоваться следующей командой, после выполнения которой перед вами отобразится сообщение об успешном создании нового элемента списка, который имеет идентификатор [{идентификатор}]. В дальнейшем значение [{идентификатор}] нам еще пригодится.

bcdedit /copy {memdiag} /d "Наша новая запись"
#настраиваем созданную нами запись.
bcdedit /set <{идентификатор}> path <путь к запускаемой программе без указания раздела диска>
bcdedit /set <{идентификатор}> device partition=<буква диска, на которой находится 
запускаемая при помощи данной записи программа>
#добавляем созданный нами элемент к текущему списку загрузочного меню.
bcdedit /toolsdisplayorder <{идентификатор}> /addlast

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

Получение справки о программе bcdedit.exe

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

Общую справку об этой программе можно получить при помощи стандартной команды bcdedit.exe /?.

Более подробную справку по определенной команде и ее использованию (а также примеры ее использования) можно получить при помощи команды bcdedit.exe /? [команда]. Например, команда bcdedit.exe /? /set отобразит описание опций редактирования значений атрибутов элемента загрузочного меню.

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

bcdedit /? FORMATS Отображает описание типов значений, которые могут принимать атрибуты, используемые элементами загрузочного меню Windows Vista.

bcdedit /? TYPES Отображает описание основных атрибутов, которые можно устанавливать при помощи программы bcdedit.exe. Описание дополнительных атрибутов можно получить при помощи следующих команд.

  • bcdedit /? TYPES BOOTAPP. Описание атрибутов приложения загрузки.
  • bcdedit /? TYPES BOOTMGR. Описание атрибутов диспетчера загрузки.
  • bcdedit /? TYPES BOOTSECTOR. Описание атрибутов программ загрузочного сектора.
  • bcdedit /? TYPES CUSTOMTYPES. Описание дополнительных атрибутов, которые поставляются как расширения программы bcdedit.exe.
  • bcdedit /? TYPES DEVOBJECT. Описание атрибутов объекта-устройства.
  • bcdedit /? TYPES FWBOOTMGR. Описание атрибутов микропрограммного диспетчера загрузки.
  • bcdedit /? TYPES MEMDIAG. Описание атрибутов приложения диагностики памяти.
  • bcdedit /? TYPES NTLDR. Описание атрибутов загрузчика более ранних версий Windows.
  • bcdedit /? TYPES OSLOADER. Описание атрибутов загрузчика Windows Vista.
  • bcdedit /? TYPES RESUME. Описание атрибутов приложения выхода из спящего режима.

bcdedit /? ID Отображает описание основных предопределенных идентификаторов, которые можно использовать в программе bcdedit.exe.

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=98

В избранное