Bcd00000000 в реестре что это
Перейти к содержимому

Bcd00000000 в реестре что это

  • автор:

Почему я не могу отредактировать системное хранилище BCD через regedit?

Итак, как вы, наверное, знаете, куст реестра HKEY_LOCAL_MACHINE\BCD00000000 на самом деле является системным хранилищем BCD; это та же информация, которую вы видите, когда запускаете команду BCDEDIT (от имени администратора).

Однако, если я попытаюсь запустить regedit от имени администратора и вручную отредактировать любое из значений в нем, вы получите ошибку Cannot edit <value_name>: Error writing the value’s new contents . Точно так же, если функция Windows API RegSetValueEx пытается изменить значения в этом подразделе, даже если она работает в приложении с правами администратора, это также приведет к сбою.

Тем не менее, команда BCDEDIT может вставлять, обновлять и удалять элементы из этого хранилища без проблем, и изменения также будут отображаться в реестре.

В чем разница между тем, что делает BCDEDIT , и редактированием реестра вручную?

4 ответа 4

Одним словом: разрешения.

Место нахождения

BCD хранится на загрузочном диске (обычно том NTFS

100 МБ). По умолчанию он скрыт, но вы можете назначить ему букву диска с помощью оснастки MMC «Управление дисками» ( diskmgmt.msc ). Затем вы можете заглянуть в каталог Boot и увидеть файл BCD который является обычным файлом формата реестра-куста, который содержит данные конфигурации загрузки.

обоснование

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

Так как загрузочные данные очень важны, Windows не позволяет легко возиться там. Использование редактора реестра для непосредственного редактирования загрузочных данных позволит установить недопустимые или конфликтующие значения, добавить недопустимые или недопустимые записи, удалить обязательные записи и т.д. Ограничение изменения BCD для bcdedit позволяет ограничивать изменения действительными значениями, которые помогает ограничить ущерб, который может быть нанесен (он не полностью устраняет проблемы; вы все равно можете убить систему, но, по крайней мере, он устраняет большую часть возможных проблем).

метод

Если вы изучите разрешения для ветви BCD00000000 , то увидите, что для учетной записи SYSTEM для нее установлен Full Control доступ, но у группы администраторов есть Special права доступа, доступные только для Read-Only и WriteDac которые предоставляют возможность устанавливать разрешения. (Возможно, вам придется нажать кнопку [Advanced] , потому что в основном диалоговом окне указано, что SYSTEM также имеет Special доступ, но в диалоговом окне « Дополнительные параметры безопасности » для него правильно установлено значение « Full Control доступ».)

Когда вы запускаете Regedit (который требует повышенных привилегий), он запускается в контексте вашей учетной записи пользователя и получает разрешения группы администраторов, поэтому вы не можете писать в него. Когда вы используете команду bcdedit , она запускается в контексте учетной записи SYSTEM, которая имеет права на запись. Если вы включите столбец « Имя пользователя» в диспетчере задач, то увидите, что Regedit запускается вашей учетной записью, а bcdedit — SYSTEM.

Обходные

Прямое редактирование BCD с помощью Regedit нежелательно и редко, но если это действительно необходимо, то один из способов — предоставить себе доступ на запись к ветви BCD00000000 . Конечно, это не рекомендуется, потому что вы должны помнить, чтобы отозвать разрешение позже. Более простой способ — просто запустить Regedit в контексте SYSTEM .

Все что необходимо знать о реестре Windows

Реестр Windows

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

ВАЖНО: если Вы решили работать с реестром Windows, то предварительно создайте его копию. Неосторожные действия легко могут стать причиной серьёзных системных сбоев. В результате придется восстанавливать ОС или даже осуществить её переустановку.

Реестр в операционных системах

Реестр Windows XP Реестр Windows 7Реестр Windows 8 Реестр Windows 10

Чтобы продемонстрировать важность реестра, требуется сказать о простой статистике. В ходе запуска ОС сюда осуществляется около тысячи обращений, а в течение одного дня количество может достигнуть 10.000 и даже более. Достаточно запустить какую-либо программу, задать настройки или выполнить иные действия, чтобы информация в реестре была отредактирована.

Где хранится реестр?

Довольно часто можно услышать вопрос о расположении файлов. Реестр Windows располагается по директории C\Windows\System32\config. Здесь в качестве диска указан С, но для Вашего устройства ситуация может быть иной. Все зависит от того, куда именно установлена система.

Если рассматривать наиболее популярную ОС Windows 7, то файлы реестра здесь располагаются в специальных местах. Подобный момент требует к себе отдельного внимания:

  • «HKEY_LOCAL_MACHINE\HARDWARE». Указанная ветка будет создаваться на основании того, какое именно подключено периферийное оборудование. Процесс является динамическим.
  • «HKEY_LOCAL_MACHINE\BCD00000000» использует для своего создания специальный файл «%SystemRoot%\Boot\BCD».
  • «HKEY_LOCAL_MACHINE\SYSTEM». Чтобы сформировать указанную ветку, применяется документ «%SystemRoot%\System32\config\ SYSTEM».
  • «HKEY_LOCAL_MACHINE\SOFTWARE». Создание происходит на основании документа «%SystemRoot%\System32\config\SOFTWARE».
  • «HKEY_LOCAL_MACHINE\SECURITY». В ветке происходит хранение параметров безопасности устройства и она создается из документа «%SystemRoot%\System32\config\SECURITY».
  • «HKEY_LOCAL_MACHINE\SAM». Для создания применяется информация из документа, находящегося по адресу «%SystemRoot%\System32\config\SAM».
  • «HKEY_USERS\DEFAULT». Формирование ветки реестра производится за счет документа «%SystemRoot%\System32\config\DEFAULT».
  • Ветки реестра «HKEY_USERS\S-1-5-18», «HKEY_USERS\S-1-5-19» и «HKEY_USERS\S-1-5-20». Для их создания используется документ NTUSER.DAT, который лежит в различных директориях. Это «%SystemRoot%\System32\config\systemprofile\», «%SystemRoot%\System32\config\systemprofile\» и «%SystemRoot%\ServiceProfiles\NetworkService\».
  • «HKEY_USERS\<SID_юзера>». С целью формирование происходит применение документа «%USERPROFILE%\NTUSER.DAT».
  • «HKEY_USERS\<SID_юзера>_Classes». В указанном случае, формирование производится в ходе использования документа «%USERPROFILE%\AppData\Local\Microsoft\Windows\UsrClass.dat».

Реестр имеет отдельные файлы, которые заслуживают к себе внимания – это резервные копии. Они необходимы в случае восстановления системы. Данные документы находятся по директории «%SystemRoot%\System32\config\RegBack». Если рассматривать ситуацию по умолчанию, то копия будет создавать один раз в 10 дней. Можно выполнить настройку подобного процесса – периодичности и времени запуска. Пользовательская часть реестра находится в документе %userprofile%\ntuser.dat.

Когда речь заходит о реестре ОС 32х и 64х разрядного типа, тут предусматриваются определенные особенности. В первом случае все папки являются единичными. Для 64х разрядов предусматривается разделение на 32х и, непосредственно, 64х разрядные разделы.

Как открыть реестр?

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

Через утилиту «Выполнить»

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

  1. Зажимаем сочетание клавиш Win+R или запускаем утилиту «Выполнить» другим способом.
  2. Производим ввод regedit и нажимаем подтверждение. Крайне важно, чтобы подобное действие проводилось от имени администратора.

Посредством поиска через меню «Пуск»

Тут могут быть определенные отличия при работе с различными ОС. Например, для Windows 8 отсутствует классическое меню «Пуск». В любом случае, необходимо получить доступ к строке поиска. В неё требуется ввести regedit и запустить выданную программу.

Посредством проводника Windows

Поставлена задача найти конкретный файл в системой папке C\Windows (ранее уже говорилось о возможности использования другой буквы диска, в зависимости от места установки ОС). Нас интересует regedit. Его нужно найти в общем перечне и запустить.

Структура реестра

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

  • HKEY_CLASSES_ROOT (HKCR). Здесь хранятся данные о многочисленных расширениях, что позволяет системе работать с файлами различного типа. Если каких-либо сведений нет, всегда можно внести дополнительные изменения для расширения возможностей.
  • HKEY_CURRENT_USER (HKCU). В указанной ветке находятся сведения об учетной записи. Сюда можно отнести различные настройки и элементы персонализации.
  • HKEY_LOCAL_MACHINE (HKLM). Здесь располагается все данные о подсоединённых устройствах и драйверах. Что особенно важно, тут находятся сведения, касающиеся загрузки ОС.
  • HKEY_USERS (HKU). Здесь представлены данные о полном списке пользователей для конкретного устройства.
  • HKEY_CURRENT_CONFIG (HKCC). Представлены сведения об оборудовании, которое применяет устройство в ходе запуска ОС. Как показывает практика, тут находится мало информации и почти вся она является копией из иных разделов.

В процессе работы с реестром Windows, интерес представляют HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Здесь находится большинство настроек, которые возникает необходимость изменять.

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

  • Двоичный. Получил наибольшее распространение и используется во всех разделах. При выдаче в редакторе реестра предусматривается применение 16х формата.
  • Dword. Используется значение с длиной 4 байта. Необходим для осуществления хранения параметров драйверов и различных программ.
  • Расширяемая строка данных. Основное отличие от строкового параметра заключается в отсутствии четкого фиксирования длины.
  • Многострочный. Используется более чем одна строка. Довольно часто применяется при необходимости хранения табличных данных.
  • Строковый. Строка текста, которая обладает фиксированной длиной.
  • Qword. Сведения указываются в виде 64х разрядного целого.
  • Ссылка. Используется символическая ссылка в формате Юникод.

Резервная копия всего реестра или отдельного раздела

Ранее уже говорилось об опасностях работы с реестром. Всегда имеется вероятность причинить вред системе и нужно заранее позаботиться о создании копии. Следует войти в редактор реестра Windows, где открыть раздел «Файл». В появившемся списке происходит выбор пункта «Экспорт». Теперь можно осуществить создание копии всего реестра или конкретного подраздела. Для удобства, процесс демонстрируется на скриншоте ниже.

Экспорт реестра Windows

С целью повышения надежности допускается сохранить копию не только на жёстком диске устройства, но внешнем носителе.

Восстановление реестра

Так, самое худшее случилось и в системе произошел сбой. Что необходимо сделать в такой ситуации? Стоит рассмотреть три способа восстановления, каждый из которых обладает своими особенностями. В любой ситуации требуется предварительно завершить работу всех программ и приложений. Не станет лишним отключение антивирусных средств.

Восстановление из файла

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

Восстановление реестра Windows из файла

Определенное время потребуется для восстановления, а сам процесс будет завершен после перезагрузки устройства.

Слияние

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

Слияние реестра Windows

Как и в предыдущем случае, восстановление завершится после перезагрузки.

Импорт

Необходимо открыть реестр Windows. Как это сделать уже рассматривалось ранее и было представлено несколько подходов. В самом редакторе нас интересует меню «Файл». Там следует выбрать «Импорт». Будет предложено указать путь до сохраненной копии.

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

Восстановление с использованием live CD

В некоторых ситуациях загрузка операционной системы не будет представляться возможной. Это наиболее сложный вариант и для решения такой проблемы рекомендуется использовать специальный способ. Он заключается в осуществлении загрузки через live CD. Когда это выполнено, необходимо проследовать дальше – посетить корень диска, где установлена Windows. Предусматривается следующая инструкция:

  1. Создаем на диске с системой временную папку. Ей требуется дать название tmp. Именно здесь будут располагаться дефектные файлы реестра.
  2. Теперь осуществляем вход в папку C:\WINDOWS\system32\config
  3. Все файлы, найденные здесь, должны быть перенесены в созданную ранее временную папку C:\tmp\
  4. Идем в папку восстановления, которая располагается в директории C:\System Volume Information\. В ней должно располагаться некоторое количество папок следующего типа — _restore<длинный символьный код с дефисами>. Проверяем дату создания подобных папок и находим в списке самую позднюю.
  5. Внутри будут находиться папки с названиями RP1, RP2 и так далее. Нас опять интересует самая последняя. Важно ознакомиться с датой и уточнить, работали ли ОС в указанное время стабильно. Если нет, выбираем последнее работоспособное сохранение.
  6. Переходим в папку Snapshot\. Именно здесь располагаются резервные копии файлов реестра.
  7. Требуется использовать _REGISTRY_USER_DEFAULT, _REGISTRY_MACHINE_SECURITY, _REGISTRY_MACHINE_SOFTWARE, _REGISTRY_MACHINE_SYSTEM и _REGISTRY_MACHINE_SAM
  8. Указанные в прошлом пункте файлы копируются и ими производится замена аналогичных файлов реестра в директории C:\WINDOWS\system32\config. Требуется выполнить смену названия на DEFAULT, SECURITY, SOFTWARE, SYSTEM и SAM
  9. Для того, чтобы изменения вступили в силу, необходимо перезагрузиться.

Чистка реестра

Нередко можно столкнуться с запросом о том, как очистить реестр на Windows (Виндовс). Здесь можно использовать специализированное ПО или ручной метод. В первом случае, можно порекомендовать достаточно большое количество приложений. К наиболее популярным следует отнести Reg Organizer, CCleaner и Windows Cleaner. Данные программы отлично себя зарекомендовали – их возможности по оптимизации работы системы находятся на весьма высоком уровне.

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

Непосредственно процесс очистки требует удалить любые сведения об уже удаленной программе. Подобные данные содержатся в «HKEY_CURRENT_USER» и именно туда лежит наш путь. В подразделе Software требуется найти необходимую папку. Ниже на скриншоте показан пример для программы Скайп.

чистка реестра Windows

Создание и удаление разделов и параметров через файл с расширением reg

Все reg файлы обладают строго установленным синтаксисом, который должен в обязательном порядке соблюдаться. Это является особенностью документов подобного типа. REG файлы допускается применять в качестве средства для создания или удаления подразделов, а также параметров.

Создание подразделов или изменение параметров

  1. Осуществляем доступ к редактору реестра
  2. Выбирается тот подраздел, изменения для которого должны быть проведены
  3. Происходит нажатие на вкладку «Файл», где надо нажать «Экспорт»
  4. В поле «Имя файла» прописывается название документа для сохранения REG-файла с изначальными элементами реестра и нажимается кнопку «Сохранить»

Удаление разделов реестра или параметров

Для выполнения поставленной задачи требуется поместить дефис перед путем реестра. Следует рассмотреть это на простом примере. Имеем:

Из него необходимо выполнить удаление раздела Program. Это будет выглядеть следующим образом:

Удаление значения имеет схожий способ. В данном случае, дефис должен располагаться непосредственно перед знаком равенства. Расширим прошлый пример – теперь нужно удалить параметр ProgramValue. Это выполняется следующим образом:

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

Bcd00000000 в реестре что это

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

Что такое HKEY_LOCAL_MACHINE?

Все низкоуровневые настройки Windows и настройки приложений хранятся в базе данных, называемой реестром Windows. В нем хранятся настройки драйверов устройств, пользовательского интерфейса, ядра, пути к папкам, ярлыки меню «Пуск», расположение установленных приложений, файлы DLL, а также все значения программного обеспечения и информация об оборудовании. Однако, если вы откроете реестр Windows, вы можете увидеть несколько корневых ключей, каждый из которых способствует определенной функции Windows. Например, HKEY_LOCAL_MACHINE, сокращенно HKLM, является одним из таких корневых ключей Windows. Он включает в себя детали конфигурации:

  • ОС Windows
  • Установленного ПО
  • Драйверов устройств
  • Конфигурации загрузки Windows 7/8/10/Vista
  • Служб Windows
  • Драйверов оборудования.

Как получить доступ к HKLM через редактор реестра

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

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

Вы можете открыть HKLM через редактор реестра следующим образом:

1. Запустите диалоговое окно Выполнить, нажав одновременно клавиши Windows + R.

2. Введите regedit, как показано ниже, и нажмите OK.

3. В левой боковой панели дважды щелкните Компьютер, чтобы развернуть его, и выберите папку HKEY_LOCAL_MACHINE.

4. Теперь снова дважды щелкните параметр HKEY_LOCAL_MACHINE, чтобы развернуть его.

Примечание. Если вы уже использовали редактор реестра раньше, он будет уже в развернутом состоянии.

Список ключей в HKEY_LOCAL_MACHINE

Есть много папок с ключами реестра, например, внутри папки с ключами HKEY_LOCAL_MACHINE:

Blog of Khlebalin Dmitriy

Вчера вечером мне по определенным причинам потребовалось поправить загрузчик Windows 7. И если в Windows XP я просто мог открыть TotalCom и быстренько блокнотом поправить файл boot.ini, то сейчас для этого Microsoft предлагает нам встроенную утилиту BCDEDIT. Но «заморачиваться» с ней вчера вечером у меня не было ни времени ни желанья, поэтому я решил найти для себя более легкий альтернативный вариант, ну а сегодня на работе поглубже вдался в теорию…

Существовавший еще с времен Windows NT, загрузчик операционной системы NTLDR, начиная с Windows Vista, заменен новым диспетчером загрузки BOOTMGR. Вызвано это тем, что старый добрый NTLDR уже не годился для выполнения загрузки системы на компьютерах, использующих спецификацию Extensible Firmware Interface (EFI), призванной заменить базовую систему ввода-вывода BIOS. Модель EFI является новым поколением реализации интерфейса между оборудованием компьютера и операционными системами, и в недалеком будущем полностью заменит просуществовавшую несколько десятилетий модель BIOS. Новый диспетчер загрузки ориентирован на использование специального хранилища конфигурации, приложений и данных спецификации EFI, а также обеспечивает поддержку загрузки операционных систем для предыдущего поколения компьютеров на базе BIOS.

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

Механизм загрузки операционной системы Windows 7.
Процесс загрузки любой операционной системы начинается всегда одинаково — после проверки оборудования, управление получает подпрограмма BIOS, (Basic Input/Output System), считывающая с устройства загрузки первый сектор, являющийся главной загрузочной записью MBR ( Master Boot Record ). Стандартно MBR располагается в первом секторе загрузочного диска и занимает 512 байт (стандартная длина сектора). Это не обязательное условие — MBR может занимать более одного сектора, что зависит от конкретной разновидности загрузчика. Хотя запись MBR не является строго зависимой от платформы загружаемой ОС, она отличается, например, для файловых систем DOS, Windows и Linux.

Структура MBR включает в себя 2 основных элемента — программный код первичного загрузчика и таблицу разделов. Обязательным признаком наличия записи MBR является специальный код (сигнатура) в двух последних байтах — 55AA. Наличие сигнатуры проверяется подпрограммой BIOS в первую очередь, и при ее отсутствии, диск считается не загрузочным. Многие программы работы с жесткими дисками позволяют просматривать и редактировать данные выбранных секторов. Так, например, выглядит запись MBR, просматриваемая с помощью бесплатной версии Victoria for Widows

snap1

Перед сигнатурой (по смещению 0x1BE относительно начала сектора) располагается таблица разделов (Partition Table), состоящая из 4-х элементов по 16 байт каждый, что определяет максимальное число (не более4-х) первичных разделов на одном жестком диске. Соответственно, размер таблицы разделов — 64 байта.

Каждый элемент таблицы описывает тип раздела (00h — раздел неопределенного типа, попросту — свободное место, 01h — 12 битный FAT, 05h — дополнительный раздел, 07h — NTFS и т.п.),признак активности (возможности загрузки) — код 80h, адрес начала, адрес конца, смещение относительно MBR и размер — количество блоков распределенное данному разделу.

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

— программный код и данные начального загрузчика. (446 байт.)
— таблица разделов диска (4 поля по 16 байт — 64 байта)
— сигнатура 55AA (2 байта)

snap2

После считывания в оперативную память компьютера, программный код начального загрузчика получает управление и выполняет поиск активного раздела (Active), — раздела, с которого может выполняться загрузка конкретной операционной системы. Такой раздел имеет свою загрузочную запись, называемую загрузочной записью раздела PBR ( Partition Boot Record ) . Содержимое загрузочной записи активного раздела зависит от загружаемой операционной системы и, обычно имеет размер более чем длина одного сектора.

В случае с загрузкой Windows 7 (а также Windows Vista / Server 2008 и последующих ОС семейства Windows) программный код загрузчика раздела выполняет подготовку и выполнение следующего этапа загрузки системы — считывание в оперативную память и передачу управления специальной программе — диспетчеру загрузки BOOTMGR .

Диспетчер загрузки bootmgr представляет собой файл небольшого размера, расположенный в корневом каталоге активного раздела. Основное его предназначение — обеспечение дальнейшей процедуры загрузки в соответствии с существующей конфигурацией, хранящейся в специальном хранилище — хранилище данных конфигурации ( BCDBoot Configuratin Data ), представляющем собой файл с именем BCD, находящийся в каталоге BOOT активного раздела. Следующий этап загрузки операционной системы обеспечивается уже диспетчером bootmgr в соответствии с существующей конфигурацией. В общем случае, диспетчер загрузки может выполнить не только загрузку ядра установленной на данном компьютере Windows, но и другие, имеющиеся в конфигурации варианты — загрузку Windows NT/2000/XP, операционных систем семейства Linux, загрузку ОС из образов ( файлов wim ) , виртуальных дисков ( файлов VHD ) и т.п.

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

При просмотре в Диспетчере логических дисков, активный раздел отображается под названием «Зарезервировано системой» :

snap3

Таким образом, для того, чтобы выполнилась загрузка Windows с диспетчером BOOTMGR, активный раздел, как минимум, должен содержать правильную загрузочную запись PBR, файл диспетчера bootmgr и конфигурационные данные в файле \BOOT\BCD, являющимся системным хранилищем конфигурации загрузки. В случае с загрузкой Windows, диспетчер bootmgrсчитывает из хранилища конфигурации данные, необходимые для загрузки ядра системы, и передает управление приложению, выполняющему следующий этап ( winload.exe ) .

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

Хранилище данных конфигурации загрузки (BCD Store).
Обычно файл bootmgr и каталог \Boot имеет атрибуты «скрытый» и «системный». Для получения доступа к активному разделу стандартными средствами, можно присвоить ему букву и включить отображение скрытых файлов, однако, нужно понимать, что любое неквалифицированное вмешательство в конфигурацию загрузки может привести к невозможности ее выполнения. При чем, неработоспособную конфигурацию загрузки можно получить даже без выполнения вышеперечисленных действий. Например, при неверном использовании стандартного редактора хранилища конфигурации — утилиты командной строки BCDEDIT. Поэтому, прежде чем вносить какие-либо изменения в конфигурацию загрузки, необходимо позаботиться о том, чтобы иметь возможность восстановления работоспособности системы в том случае, когда ее загрузка станет невозможной. Вопросам восстановления загрузки посвящен отдельный раздел статьи и, настоятельно рекомендую, прежде чем приступать к практическим действиям, внимательно ознакомиться с ним.

Программный код диспетчера загрузки , получив управление, выполняет поиск и обработку данных конфигурации загрузки (файл BCD в папке \BOOT\ активного раздела), в соответствии с которыми выполняется дальнейшие этапы загрузки ( отображение меню, выбор загружаемой ОС или средств диагностики, загрузка ядра и т.п. ). По своей структуре, файл \\boot\BCD является кустом реестра и отображается в редакторе реестра Windows как раздел HKEY_LOCAL_MACHINE\BCD0000000x

snap5 snap4

Таким образом, диспетчер загрузки bootmgr работает с данными хранилища конфигурации загрузки BCD как с обычным разделом реестра Windows. Поскольку, данный раздел реестра предназначен для использования загрузчиком BOOTMGR, при ручном просмотре c использованием редактором реестра, он имеет разрешение только на чтение, которое можно изменить с помощью контекстного меню, вызываемого правой кнопкой мышки. Естественно, на данный раздел реестра, как и на любой другой, распространяются все допустимые действия, выполняемые в редакторе — просмотр, изменение, удаление, импорт и экспорт.

Раздел конфигурации BCD содержит подраздел Description с параметрами описания и подраздел Objects с объектами конфигурации загрузки. Данные конфигурации загрузки можно условно разделить на 3 основных составляющих:

— хранилище BCD (Store)
— записи в хранилище (Entries)
— параметры записей (Entry Options)

Иерархически, хранилище конфигурации загрузки представляет собой совокупность объектов (Objects ), состоящих из отдельных элементов (Elements):

snap5

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

— приложения ( application objects)
— наследуемые объекты ( inheritable objects)
— устройства (device objects)

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

Некоторые объекты стандартных приложений конфигурации загрузки имеют предопределенные идентификаторы, связывающие некоторые из идентификаторов GUID с внутренними идентификаторами (псевдонимами) редактора bcdedit

snap6

Так например, псевдониму используемому в качестве параметра команды bcdedit всегда соответствует GUID, приведенный в таблице — <466f5a88-0af2-4f76-9038-095b170dc21c>.

Каждый из разделов подраздела Objects также состоит из двух подразделов — Descriptions с описанием типа объекта и Elements, определяющего набор элементов с параметрами объекта. В разделе Description имеется ключ Type типа REG_DWORD, значение разрядов 28-31 которого определяет тип объекта ( значение в старшей тетраде старшего байта ) :

0x1 — приложение
0x2 — наследуемый объект
0x3 — устройство.

Имена разделов реестра, связанных с элементами объекта, типы данных и значения параметров зависят от конкретной конфигурации загрузки, созданной для использования диспетчеромBootmgr. Если внимательно присмотреться к именам подразделов, то можно заметить, что имя подраздела связано с его содержимым, так например подраздел с именем 12000004 всегда содержит строковый параметр с текстовым описанием элемента :

Или для элемента конфигурации диспетчера загрузки bootmgr :

[HKEY_LOCAL_MACHINE\BCD00000000\Objects\<9dea862c-5cdd-4e70-acc1-f32b344d4795>\Elements\12000004]
«Element»=»Windows Boot Manager»

С назначением прочих имен подразделов раздела [HKEY_LOCAL_MACHINE\BCD00000000\Objects\. . . \Elements\ и их содержанием можно разобраться по описанию библиотеки элементов BCD на странице msdn.microsoft.com

Вполне понятно, что работать с данными конфигурации BCD в среде редактора реестра практически невозможно, поэтому в Windows Vista и более поздних ОС семейства Windows появилась специальная утилита bcdedit.exe предназначенная для работы с хранилищами конфигурации загрузки ( BCD EDITor ).
Раздел реестра HKEY_LOCAL_MACHINE\BCD00000000 используется, существующим в данной системе диспетчером BOOTMGR, и является системным хранилищем конфигурации ( System BCD Store ). Упоминаемая выше команда для редактирования конфигурации загрузки BCDEDIT может использоваться не только для редактирования системного хранилища, но и любого другого, задаваемого параметром командной строки /store

bcdedit /store D:\BCDBackup\bcdsave — команда BCDEDIT выполняется для хранилища конфигурации загрузки в файле bcdsave каталога BCDBackup на диске D:. Если в командной строкеbcdedit не задан ключ /store — то ее действие выполняется по отношению к системному хранилищу (активной конфигурации, используемой для данной загрузки).

Как уже упоминалось выше, при выполнении команд BCDEDIT к некоторым из объектов хранилища можно применять псевдонимы , например , (соответствует диспетчеру загрузки ) и (соответствует используемому по умолчанию загрузчику Windows). Для отключения использования псевдонимов в командной строке bcdedit предусмотрен ключ /v:

bcdedit /v /enum all — отобразить все ( all) записи конфигурации загрузки в системном хранилище без использования псевдонимов.

Более подробное описание команды BCDEDIT — можно найти здесь.

Кроме утилиты командной строки BCDEDIT, для работы с конфигурацией загрузки, возможно использование средств инструментария управления Windows — Windows Management Instrumentation (WMI). Провайдер WMI предоставляет программный интерфейс для доступа к элементам конфигурации загрузки и позволяет решать те же задачи, что и редактор bcdedit . Описание элементов WMI для работы с BCD на английском языке — можно найти на страницах Microsoft MSDN

Пример сценария на языке Visual Basic, выполняющего экспорт системного хранилища конфигурации загрузки в файл C:\wmistore:



‘Пример экспорта BCD Store в файл

‘Подключение к WMI
set oLocator = CreateObject( «WbemScripting.SWbemLocator» )
set oRootWMI = oLocator.ConnectServer( «.», «root\wmi» )
oRootWMI.Security_.ImpersonationLevel = 3
‘ Создание объекта BCD
set oBCD = GetObject( «winmgmts:!root/wmi:BcdStore»)
if Err.number <> 0 then
WScript.Echo «ERROR: Failed to connect to WMI BCD Object»
WScript.Quit(1)
end if

‘ Открытие системного хранилища конфигурации
if not oBCD.OpenStore( «», oBcdStore ) then
WScript.Echo «ERROR: Failed to open the system BCD store»
WScript.Quit(1)
end if
‘Экспорт системного хранилища в файл C:\wmistore
if not oBcdStore.ExportStore( «C:\WMISTORE» ) then
WScript.Echo «ERROR: Failed to export BCD Store»
end if

WScript.Echo «Finished Exporting System BCD»

При работе с системным хранилищем конфигурации, необходим запуск сценария от имени администратора. Это же требование относится и к использованию утилиты BCDEDIT.EXE . Выполнение экспорта системного хранилища конфигурации с помощью утилиты BCDEDIT выглядит немного проще:

bcdedit /export C:\Backup\bcb — выполнить экспорт в файл C:\backup\bcd

Для просмотра содержимого хранилища конфигурации можно воспользоваться командой:

bcdedit /enum all — отобразить все записи в BCD

bcdedit /enum all > C:\enum-all.txt — то же, что и в предыдущем случае, но с выводом результатов в текстовый файл enum-all.txt на диске C: .

Пример конфигурации для диспетчера загрузки:

идентификатор — псевдоним или GUID конфигурации диспетчера bootmgr
device — устройство загрузки. Либо буква диска, если она присвоена активному разделу, либо ссылка на раздел без буквы — partition=\Device\HardDiskVolume1 (Volume2 . . . )
description — текстовое описание элемента, в данном случае — диспетчера bootmgr.
locale — используемая локализация (язык элемента)
inherit — наследуемые установки.
default — псевдоним или GUID конфигурации загрузки системы, выполняемой по умолчанию.
resumeobject — GUID конфигурации для приложения, выполняемого при выходе из спящего режима (гибернации). В документации называется приложением возобновления (Windows Resume Application ).
displayorder — задает порядок отображения пунктов меню загрузчика для нескольких операционных систем.
toolsdisplayorder — задает порядок отображения пунктов меню загрузчика для нескольких вариантов средств диагностики.
timeout — время ожидания выбора одного из пунктов меню.

Пример конфигурации элемента загрузки операционной системы Windows Vista и более поздних ОС семейства Windows:

идентификатор — псевдоним или GUID конфигурации для загрузки данной ОС Windows
device — буква, соответствующая логическому диску с установленной ОС Windows.
path — путь приложения загрузки ядра системы.
description — текстовое описание элемента, в данном случае — загружаемой ОС Windows.
osdevice — буква диска для данной ОС
systemroot — корневой каталог загружаемой ОС.
resumeobject — GUID конфигурации для приложения, выполняемого при выходе из спящего режима (гибернации).
nx — настройки безопасности, задающие использование режима предотвращения выполнения данных (Data Execution Prevention, DEP)
detecthal — определение конфигурации оборудования и создание уровня программного доступа к нему.
Большинство параметров элементов конфигурации загрузки можно изменить с помощью утилиты bcdedit.exe с параметром /set:

bcdedit.exe /set nx AlwaysOff — отключить функцию DEP для текущей системы, независимо от наличия аппаратной поддержки DEP.
bcdedit.exe /set <6efb52bf-1766-41db-a6b3-0ee5eff72bd7>nx OptIn — включить функцию DEP для системы с указанным GUID

Примеры изменения конфигурации загрузки можно найти на странице с описанием утилиты командной строки BCDEDIT упоминаемой выше.

Очевидно, что стандартные средства конфигурирования загрузки Windows 7 (а также Windows Vista, Windows Server2008, Windows 8) не очень удобны и, кроме того, не имеют защиты от создания неработоспособной конфигурации для диспетчера загрузки <b<bootmgr< b=»»>. Один неверный параметр сценария WMI, или ошибка в командной строке bcdedit может легко сделать невозможной загрузку ядра системы. Именно поэтому, довольно большой популярностью пользуются программные продукты сторонних производителей с графическим интерфейсом пользователя, позволяющие в несколько щелчков мышью, выполнить наиболее востребованные действия по редактированию конфигурации загрузки. Одной из таких программ является бесплатная для частного некоммерческого использования программа EasyBCD разработанная компанией NeoSmart Technologies. Скачать последнюю версию EasyBCD можно на странице загрузки

Именно этой утилитой я и воспользовался вчера, поправил все что мне было необходимо за 5 сек.

EasyBCD позволяет довольно просто создавать элементы конфигурации загрузки для диспетчера bootmgr, необходимые при выполнении загрузки старых версий Windows, загрузки операционных систем семейства Unix/BSD/Linux, загрузки Windows PE, образов и виртуальных дисков. Имеется возможность сохранения текущей конфигурации загрузки, и ее восстановления из ранее сделанной копии. В целом, программа объединяет в себе возможности нескольких стандартных утилит командной строки Windows для работы с загрузочными данными (bcdboot.exe , bcdedit.exe , bootsect.exe ) . Кроме всего прочего, EasyBCD может использоваться не только в среде ОС Windows ориентированных на загрузку с помощью диспетчера bootmgr, но и в среде Windows XP и даже Windows PE с поддержкой .NET версии 2.0 и выше.

snap7

Программа очень проста в использовании и имеет поддержку нескольких языков, включая русский. В качестве примера приведу последовательность действий при создании конфигурации для загрузки ERD Commander из ISO-образа:

— нажимаем кнопку «Добавить запись»

— В правой нижней части окна, обозначенной как «Съемный внешний носитель» выбираем вкладку «ISO»

— Заполняем поле «Имя» — ERD Commander

— Выбираем путь к файлу ISO-образа ERD Commander. Хотя данное окно программы EasyBCD названо «Съемный внешний носитель», файл ISO-образа может быть на любом диске, в том числе и не съемном, например — на системном — C:\ISO\erdc.iso.

— Выбрать режим — «Load from Memory». Поскольку для загрузки из ISO образов, программа EasyBCD использует универсальный загрузчик GRUB, лучше выбирать загрузку из памяти, иначе, загрузка непосредственно с диска не будет выполнена, если файл образа фрагментирован. Это — особенность загрузчика GRUB .

— Нажать кнопку «Редактировать меню загрузки» в панели инструментов.

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

Важной особенностью программы является то, что кроме редактирования записей конфигурации, имеется возможность создания файлов, содержащих информацию загрузочных секторов для загрузки сторонних операционных систем (Linux / Unix Mac OS, BSD ), что невозможно сделать стандартными средствами Windows. Правда, при использовании ранних версий EasyBCD, некоторые из созданных конфигураций для приложений загрузочных секторов , работали некорректно. В качестве альтернативы EasyBCD, в подобных случаях можно воспользоваться менее функциональной, и не имеющей поддержки русского языка, программой Visual BCD Editor (VBCDE) . Основное окно программы VBCDE оформлено в стиле проводника Windows, а данные BCD отображаются в виде, наиболее соответствующем структуре хранилища.

snap8

Кроме вышеперечисленных программ, для создания и редактирования данных конфигурации загрузки, можно воспользоваться довольно продвинутой программой BCDTool.exe, не требующей инсталляции и работающей в среде любой версии Windows, в том числе и в среде средств восстановления системы на базе Windows PE ( ERD Commander, MSDaRT, прочие LiveCD ). При весьма скромных размерах, утилита BCDTool имеет поддержку русского языка и позволяет выполнить практически любые операции с данными хранилища BCD:

— редактировать существующее хранилище BCD и/или создавать новое пустое

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

— выполнять экспорт хранилища BCD в файл и импорт из файла в хранилище.

— создавать и редактировать отдельные элементы конфигурации для обеспечения загрузки Windows /XP/2000/Vista/7/8, а также для загрузки Real-Mode (Grub, Linux, DOS ) и загрузки с RAM-диска ( WinPE )

snap9

При всех прочих достоинствах данной программы, главным является возможность ее выполнения без установки в среде конкретной операционной системы, что делает ее наиболее подходящим средством , применяемом в комплектах переносимых программ дисков аварийного восстановления системы для устранения проблем с загрузкой Windows. Скачать утилитуBCDTool ver 1.1215 приблизительно 960кб

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

snap10

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

Следующий важный момент — для устранения проблем потребуется загрузка в какой-либо другой системе с компакт-диска, флешки, съемного USB-диска, или по сети. В крайнем случае, перенос диска с проблемной системой на другой компьютер. Самый простой вариант — создать диск аварийного восстановления стандартными средствами Windows 7:

— Перейти в Панель управления
— Выбрать «Архивация и восстановления»
— «Создать диск восстановления системы».

snap11

Вставить в привод чистый компакт диск и нажать кнопку «Создать диск»

Созданный диск восстановления системы содержит нужные для загрузки загрузочные записи, файл диспетчера загрузки bootmgr, каталоги BOOT и SOURCES . Диспетчер загрузки bootmgrиспользует конфигурацию из файла \BOOT\bcd с режимом загрузки из образа электронного диска, создаваемого в оперативной памяти. Для создания электронного диска используется файл\BOOT\boot.sdi, а в качестве загружаемого образа используется содержимое файла \SOURCES\boot.wim. Имея представление о механизме загрузки системы с использованием диспетчераbootmgr можно без особых усилий сделать загрузочную флэшку восстановления системы, скопировав на нее файлы и каталоги созданного компакт-диска, и создав необходимую конфигурацию загрузки. Например, следующим образом:

1. Создать загрузочные записи MBR и PBR. Используя командную строку, выполнить :

bootsect /nt60 D: /mbr /force — для флешки, которой присвоена буква D:

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

— в строке приглашения ввести команду для отображения списка дисков:

— выбрать в качестве текущего диска флешку:

select disk 3 — если флешка отображалась в списке дисков как «Диск 3»

— выбрать раздел на флешке:

select partition 1 — выбрать раздел 1

— сделать текущий раздел флешки активным :

Завершить работу с DISKPART командой exit

3. Скопировать содержимое компакт-диска восстановления системы на флешку.

Если флешка уже имела активный раздел ( отображалась в диспетчере логических дисков с признаком «Активный»), то в использовании DISKPART нет необходимости.

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

Рассмотренный выше пример создания загрузочной флешки можно считать демонстрацией случая, когда загрузка не выполняется при отсутствии признака активности раздела — если его нет, то загрузочная запись раздела PBR не получит управления, и далее, по цепочке, не будет загружен диспетчер bootmgr . Похожий случай наблюдается при установке Windows XP, после того, как на компьютере была установлена Windows Vista / Windows 7. При установке XP, выполняется изменение загрузочных записей для обеспечения загрузки ntldr , а не диспетчера bootmgr . Старый загрузчик, естественно, не поддерживает загрузку новых версий Windows, и после подобной установки, возможна загрузка только установленной системы, или других систем, загрузка которых возможна с использованием ntldr . Для того, чтобы вернуть возможность загрузки Windows 7, сохранив возможность загрузки установленной Windows XP, необходимо восстановить цепочку для загрузки bootmgr и изменить данные в хранилище конфигурации загрузки так, чтобы имелась возможность выбора любой из установленных операционных систем Windows :

— Для восстановления загрузочных записей, можно воспользоваться той же командой bootsect , что использовалась в предыдущем примере, что позволит восстановить передачу управления диспетчеру загрузки bootmgr вместо ntldr.

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

bcdboot C:\WINDOWS — скопировать в системный раздел файлы и каталоги, необходимые для загрузки Windows 7, из каталога C:\WINDOWS, и создать новую конфигурацию BCD

— Для добавления возможности загрузки Windows XP, необходимо создать нужную для загрузки ntldr, запись в хранилище конфигурации BCD, добавить в меню пункт для выбора данной ОС, определить порядок отображения пунктов, и систему, загружаемую по умолчанию. При установке предыдущей версии Windows ( WinXP ), необходимые загрузчику ntldr файлы уже имеются на диске ( boot.ini, ntdetect.com, bootfont.bin).

Пример создания конфигурации загрузки Windows XP с помощью команды bcdedit:

bcdedit /create /d «Microsoft Windows XP» — создать объект для загрузки Windows XP

bcdedit /set device partition=C: — указать устройство загрузки (активный раздел)

bcdedit /set path \ntldr — указать путь к загрузчику ntldr

bcdedit /displayorder /addlast — добавить в конец меню выбора вариантов загрузки новый пункт.

Если команда bcdedit выполняется в среде операционной системы, для которой не определено местонахождение хранилища конфигурации загрузки, или расположение системного хранилища отличается от того, которое будет использоваться диспетчером bootmgr при загрузке с жесткого диска, то необходимо указывать полный путь к файлу bcd в параметре /store :

bcdedit /store D:\BOOT\bcd /create /d «Microsoft Windows XP» — создать объект для загрузки Windows XP в хранилище конфигурации D:\BOOT\bcd

Если создание конфигурации загрузки для Windows XP выполняется с помощью EasyBCD, то файл загрузчика ntldr размещается в подкаталоге \NST активного раздела.

При отсутствии файла диспетчера загрузки bootmgr в корне активного раздела, загрузка завершится сообщением:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *