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

Bcd что это

  • автор:

Восстановление загрузчика BCD и записи MBR в Windows 10/ 11

date

09.02.2022

user

itpro

directory

Windows 10, Windows 11

comments

комментариев 97

В современных версиях Windows информация для запуска операционной системы храните в файле конфигурации загрузки BCD (Boot Configuration Data). В этом файле хранятся данные об установленной Windows и параметрах ее загрузки. Если файл BCD удален или поврежден, Windows перестает загружаться. Также вы не сможете загрузить Windows, если повреждена MBR запись на жестком диске. В этой статье мы покажем, как корректно пересоздать файл хранилища данных конфигурации загрузки BCD и Master Boot Record (MBR) на примере Windows 10 и 11.

Ошибка “The boot configuration data file is missing some required information”

Если файл BCD поврежден, отсутствует, если вы удалили / отформатировали отдельный раздел диска с меткой System Reserved (и размером 500Мб), специальный OEM раздел, то скорее всего при попытке загрузить Windows появится такое сообщение:

Your PC needs to be repaired The Boot Configuration Data file is missing some required information File: \Boot\BCD Error code: 0xc0000034

The Boot Configuration Data file is missing some required information

Также ошибка может выглядеть так:

The Boot Configuration Data for your PC is missing or contain errors. File: \boot\bcd Error Code: 0xc000000f

При повреждении MBR может быть ошибка No operating system found.

ошибка 0xc000000f отсутсвует файл boot\bcd при загрузке Windows 10bcd-

Если в ошибке есть упоминание файла winload.efi, перейдите к статье Отсутствует файл winload.efi в Windows 10.

Автоматическое восстановление конфигурации загрузчика Windows

При появлении такой ошибки, в первую очередь попробуйте исправить проблему с загрузкой ОС с помощью режима автоматического восстановления (Startup Repair), который можно запустить из среды восстановления Windows RE.

Совет. Желательно периодически проверять работоспособность среды WinRE, и если она не работает, воспользоваться для ее восстановления методикой из статьи Восстановление среды WinRE в Windows.

Если автоматическое восстановление с помощью Startup Repair не помогло решить проблему, вам нужно загрузиться с загрузочного или установочного диска с Windows или в среде WinRe (Repair your computer -> Troubleshoot -> Advanced options -> Command Prompt), запустить командную строку и попробовать полностью пересоздать файл конфигурации загрузчика BCD и обновить MBR запись.

В этом примере я буду использовать установочный диск с Windows 10. Выберите в настройках BIOS первичным загрузочным устройство DVD диск или USB флешку с дистрибутивом Windows (в зависимости от того, с какого устройства вы хотите загрузить компьютер). Загрузитесь с установочного диска и на экране выбора языка установки нажмите сочетание клавиш Shift+F10. Перед вами откроется консоль командной строки.

Попробуйте восстановить BCD файл автоматически, выполнив команду:

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

Идентификация разметки дисков и букв томов

Очень важно. Все инструкции, описанные ниже, подходят для обычных компьютеров с BIOS (или загружающихся в режиме UEFI legacy) и MBR таблицей разделов. На компьютерах с UEFI прошивками для пересоздания BCD нужно использовать следующе инструкци: восстановлению EFI загрузчика в Windows 10 или восстановление удаленного EFI раздела в Windows.

Как понять, используется ли у вас BIOS или UEFI система? Проще всего проверить тип таблицы разделов на диске, на котором установлена Windows: GPT или MBR. Для этого выполните команду:

  • Если у диска в столбце Gpt указана звездочка (*), значит на диске используется таблица разделов GPT. Это значит, что у вас компьютер с UEFI, и для восстановления загрузчика нужно использовать статью по ссылке выше.
  • Если в столбце GPT звездочка отсутствует, значит у вас на диске таблица разделов MBR, и вы можете продолжить следовать данной инструкции.

проверить тип разметки диска gpt или mbr

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

diskpart: list volumes

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

  • Раздел SystemReserved размером 500 Мб, которому назначена буква диска C:. На этом небольшом служебном разделе по-умолчанию хранится файл конфигурации загрузки BCD (подробнее)
  • NTFS раздел размером 39 Гб, которому назначена буква D:. На этом разделе находится установленная Windows, программы и данные пользователя.

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

Восстановление загрузочного сектора MBR в Windows 10/11

С помощью утилиты bootrec.exe можно перезаписать данные в MBR и загрузочном секторе, поместим в них ссылки на загрузчик Windows (bootloader).

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

Добавьте в загрузочные секторы диска код для загрузки файла bootmgr ( диспетчера загрузки Windows):

bootsect.exe /nt60 all /force

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

bootrec /FixBoot – команда создает новый загрузочный сектор на системном разделе (перезаписывает загрузочную запись раздела PBR).
bootrec /ScanOs – просканировать диски и найти установленные копии Window, которых нет в хранилище конфигурации загрузки

В случае успешного сканирования появится запрос на добавление записей о найденный Windows в BCD:

Scanning all disks for Windows installations. Please wait, since this may take a while. Successfully scanned Windows installations. Total identified Windows installations: 1 [1] D:\Windows Add installation to boot list? Yes/No/All:

bootrec /RebuildBcd – пересоздать хранилище конфигурации загрузкика, добавить в BCD найденные на компьютере копии Windows/

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

bootsect.exe nt60 all force

Если команда bootsect.exe не найдена, попробуйте указать полный путь к ней:
X:\boot\bootsect.exe /nt60 all /force

Пересоздание BCD файла загрузчика Windows 10

Далее с помощью команды BCDedit нужно создать новый файл с конфигурацией загрузчика (предполагается, что у вас нет резервной копии BCD).

Ваши дальнейшие действия зависят от того, есть ли на диске отдельный раздел System Reserved или нет. В командной строке выполните:

Проверьте, есть ли на диске компьютера системный раздел System Reserved. Его можно идентифицировать по метке тома, либо более точнее по размеру (500 Мб для Windows 10+, 350 Мб для Windows 8.1 и 100 Мб для Windows 7).

проверить есть ли раздел system reserved в Windows

  • Если раздела нет (вы случайно удалили его), можно хранить конфигурацию загрузчика BCD на основном диске, где находится каталог Windows. Чтобы создать конфигурационные файл загрузчика BCD и Bootmgr на указанном диске, выполните команду:
    bcdboot C:\Windows /S C:
    Должно появится сообщение Boot files successfully created .
  • Если раздел System Reserved у вас имеется, удалите старый (поврежденный) файл BCD и создайте вместо него новый:
    del c:\boot\bcd

Если разделу System Reserved не назначена буква диска (по-умолчанию), вы можете сами назначить ее с помощью diskpart.

Выберите диск (в моем случае в компьютере имеется всего один жесткий диск, а вы можете вывести список дисков командой list disk): select disk 0

На скриншота выше видно, что раздел с меткой System Reserverd называется Volume 1. Выберите его: select volume 1

Назначьте букву диска (я назначил букву C:, но вы можете использовать любую другую букву, в этом случае измените путь в следующих командах): assign letter C:

Создайте временный пустой файл bcd.tmp:
bcdedit /createstore c:\boot\bcd.tmp

Создайте запись для диспетчера загрузки bootmgr:
bcdedit.exe /store c:\boot\bcd.tmp /create /d «Windows Boot Manager»

Импортируйте в BCD настройки из файла bcd.tmp:
bcdedit.exe /import c:\boot\bcd.tmp

Если команда bcdedit возвращает ошибку ( Ошибка создания хранилища. Отказано в доступе, access denied ) при доступе к файлу BCD, попробуйте снять с него атрибуты скрытый, read-only и системный:

attrib C:\Boot\BCD -s -h -r

Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )
bcdedit.exe /set device partition=c:

Настройте время ожидания при выборе ОС:
bcdedit.exe /timeout 10

Удалите временный файл:
del c:\boot\bcd.tmp

bcdedit.exe /set <bootmgr></p>
<p> device partition=c:» width=»774″ height=»271″ />Итак, вы создали пустой BCD файл с параметрами загрузчика. Теперь в него нужно добавить записи об установленных на диске Windows .<br />Создайте в хранилище BCD новую запись для Windows 10: <br />bcdedit.exe /create /d «Windows 10» /application osloader</p>
<p>Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика:</p>
<pre>The entry was successfully created.</pre>
<p>Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания при выборе ОС, для загрузки будет используется именно эта запись).</p><div class='code-block code-block-13' style='margin: 8px 0; clear: both;'>
<!-- 13finas -->
<script src=

Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows 10. Ранее мы определили, что в среде WinPE диску с установленной Windows присвоена буква D:. Используйте эту букву диска в следующих командах:

bcdedit.exe /set device partition=d:
bcdedit.exe /set osdevice partition=d:
bcdedit.exe /set path \Windows\system32\winload.exe
bcdedit.exe /set systemroot \Windows
Осталось сделать данную загрузочную запись в BCD видимой (по умолчанию она скрыта):
bcdedit.exe /displayorder /addlast

Итак, мы полностью пересоздали загрузчик Windows 10 (обновили файл BCD и перезаписали загрузочный сектор MBR).

Теперь нужно сделать раздел, на котором находится файл BCD с конфигурацией загрузчика активным (BIOS передает управлению загрузчику ОС с активным MBR раздел). Допустим, разделы на вашем диске распределены так.

  • Volume 0 – загрузочная/установочная флешка (ISO образ) диск, с которого вы загрузили компьютер
  • Volume 1 – раздел System Reserved с BCD загрузчиком (размер 500 Мб)
  • Volume 2 – раздел с файлами Windows (здесь находятся каталог Windows, Program Files, Users и т.д.)

diskpart список разделов на диске

В этом примере нужно сделать активным раздел Volume 1 (в вашем случае определите номер раздела самостоятельно). Сделать раздел активным можно с помощью diskpart:

diskpart
list disk
sel disk 0
list vol
select volume 1 (файлы bootmgr и «\Boot\BCD» находятся на этом разделе)
active
exit

Проверьте, что раздел volume 1 теперь активный:

select vol 1
detail partition

Все верно ( Active: Yes ).

diskpart сделать раздел активным active:yes

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

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Пересоздание файла хранилища данных конфигурации загрузки (BCD)

Файл BCD (Boot Configuratin Data) — преемник boot.ini начиная с Windows Vista. Он содержит информацию о загрузчиках операционных систем (и их параметрах), доступных на компьютере и располагается на активном разделе в папке boot.

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

В работающей ОС параметры BCD файла можно редактировать так:

  • Пуск
  • Компьютер
  • Свойства (контекстное меню)
  • Дополнительные параметры системы (меню слева)
  • Дополнительно (вкладка)
  • Загрузка и восстановление (раздел)
  • Параметры (кнопка)

В не загружающейся ОС файл BCD придётся восстанавливать с помощью команд BCDboot [1] или BCDEdit [2]

Возможное сообщение о повреждении BCD может выглядеть так:

File: \Boot\BCD Status: 0xc0000034 Info: The Windows Boot Configuration Data file is missing required information
  • Для восстановление или пересоздания BCD файла загружаемся с дистрибутива Windows, выбираем язык и открываем командную строку Shift+F10.
    • Если восстанавливаем BCD на RAID, то проходим дальше в процедуре установки ОС до момента, когда установщику можно будет передать драйвера RAID контроллера. Когда контроллер определён и RAID опознан появятся разделы.
    • Проверить доступность дисков и файлов на них можно запустив notepad.exe и использовать его как файловый менеджер через Файл — Открыть (Ctrl+O). Кстати, на этом этапе можно скопировать на флэшку важную информацию с повреждённого диска, используя для этого навигацию по папкам и комбинацию Ctrl+C и Ctrl+V.
    • Пробуем восстановить BCD файл автоматически:
    bootrec /RebuildBCD
    • Если это не помогло, то создаём BCD файл заново с помощью BCDEdit[2] :
      • Создаём пустой файл,
      • добавляем (импортируем) его,
      • создаём запись для диспетчера загрузки bootmgr (приемник ntldr до Windows Vista),
      • указываем, что он будет отвечать за загрузку
      • указываем время ожидания при выборе ОС
      • создаём запись в списке доступных ОС
      bcdedit /createstore bcd bcdedit /import bcd bcdedit /create bcdedit /set device boot bcdedit /timeout 10 bcdedit /create /d "Windows 2012" /application osloader
      • После выполнения последней команды программа вернёт глобальный уникальный идентификатор диска (GUID), который используем для определения записи по-умолчанию, т.е. та ОС, которая будет загружаться когда выйдет время ожидания загрузчика.
      bcdedit /default >
      • Если мы не уверены на каком томе у нас находится ОС, то ищем папку Windows. Это можно делать перебирая диски:
      C: dir D: dir E: dir

      или открыв Ноутпад (notepad.exe) как описано выше. Обычно системная папка называется Windows и находится она на томе (диске) D. В работающей ОС этот том имеет букву С, т.к. первый раздел, который сейчас определился как С, обычно скрыт, имеет метку «System Reserved» и не имеет буквы, чтобы не быть доступным для пользователя.

      • Определяем параметры созданной записи
      bcdedit /set device partition=d: bcdedit /set path\windows\system32\boot\winload.exe bcdedit /set osdevice partition=d: bcdedit /set systemroot \Windows bcdedit /set detecthal yes
      • Закрываем список ОС

      bcdedit /displayorder /addlast

      • На этом всё. Перезагружаем компьютер и загружаемся в штатном режиме.
      1. ↑BCDboot — параметры команды
      2. ↑ 2,02,1BCDEdit — параметры команды

      См. также

      • Официальная инструкция на английском языке по восстановлению BCD файла в Windows 7, можно прочесть машинный перевод на русский язык
      • Изменение хранилища BCD с помощью Bcdedit

      Двоично-десятичный код (англ. binary-coded decimal) или BCD

      Java-университет

      Всем добрый день! Говорю сразу, статья не претендует на научную статью, я не уверен в оптимальности решения этой задачи, данная статья больше для джунов которые впервые столкнутся с bcd форматом на работе. Сам по себе bcd формат уже мало где используется и вероятность того, что java разработчик столкнется с данным форматом близится к нулю, однако я столкнулся у себя на работе из-за использования в нашей системе древнего оборудования. Также попытаюсь объяснить что такое bcd формат: Это запись числа в десятичной системе счисления где каждый символ занимает ровно 4 бита. Таким образом получается, что в 1 байт можно записать число от 0 до 99 и все. Теперь поподробнее, допустим у нас есть число 291 в десятичной системе счисления, в двоичной системе счисления оно записывается как 0001 0010 0011, а в шестнадцатеричной системе счисления оно записывается как 123. Теперь главное не запутаться, чтобы записать число 123 в десятичной системе счисления нужно записать 0001 0010 0011. То есть если мы в памяти имеем число 291 то в bcd формате оно будет равно 123. Я покажу еще один пример: допустим у нас есть число 6842 5898 которое надо записать в память в bcd формате (зачем это может понадобиться не знаю, я показываю этот пример для наглядности). Мы раскладываем данное число на цифры 6, 8, 4, 2, 5, 8, 9, 8. Теперь запишем каждую цифру в двоичной системе счисления по отдельности: 6 = 110, 8 = 1000, 4 = 0100, 2 = 10, 5 = 0101, 8 = 1000, 9 = 1001, 8 = 1000. Теперь важный момент, в bcd Формате число записывается в 4 бита, значит во всех значениях должно быть 4 символа всегда, итого получаем: 6 = 0110, 8 = 1000, 4 = 0100, 2 = 0010, 5 = 0101, 8 = 1000, 9 = 1001, 8 = 1000. У нас поменялось значение цифры 6 и цифры 2, теперь нам надо весь этот двоичный код объединить в один: 0110 1000 0100 0010 0101 1000 1001 1000 Данное значение в обычном формате будет равно 1 749 178 520, но в bcd Формате оно равно 6842 5898. Также можно быстро переводить формат записи используя шестнадцатеричную систему счисления, просто переводим наше число из двоичной системы счисления в шестнадцатеричную систему счисления: 0110 1000 0100 0010 0101 1000 1001 1000 в двоичной системе счисления = 6842 5898 в шестнадцатеричной системе счисления. Как Вы уже скорее всего догадались если в 4 битах будет записано значение больше чем 1001 то это будет ошибкой записи. Хотя в телефонах все значения больше 1001 используют для записи символов. Мой коллега на работе переводил числа из bcd формата используя String, сначала просто в String записывал значение используя метод toHexString() класса Integer, а потом с помощью метода parseInt() того-же класса Integer переводил String в int. Мне данный способ не понравился совсем, это вылилось в следующий код:

       public static int BCDToInt(int bcd, int bitUnits, int index) < int result = 0; if (bcd == 0) return result; int number = bcd >> index; result = result + ((number & 0xf) * bitUnits); return result + BCDToInt(number, bitUnits * 10, index + 4); > public static int BCDToInt(int bcd)

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

      Диаметр окружности болтов

      На шатунной системе — диаметр окружности, на которой распологаются крепёжные бонки.

      В системах с двумя ведущими звёздами существуют два стандартных диаметра: 130 мм и 110 мм.

      В системах с тремя звёздами задействованы сразу два разных диаметра — большой для крепления внешней и средней звёзд и маленький для бонок крепления третей «тракторной» звезды. Как правило, это 110 мм и 74 мм или 130 мм и 74 мм для современных шоссейных систем. Компания Campagnolo использует системы с диаметрами 135 мм и 74 мм соответственно. Диаметр окружности болтов в компактных шатунных системах с тремя звёздами обычно равен 94 мм и 58 мм.

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

      Принцип измерения BCD:

      На рисунке у шестерёнки с диаметром окружности болтов (BCD) 104 мм межосевое расстояние крепёжных бонок равно 73,6 мм.

      То есть для получения BCD в 4−болтовом креплении звезды к шатунам нужно межосевое расстояние умножить на 1,4.

      В 5−болтовом варианте умножать нужно на 1,7.

      4−болтовые шатуны

      BCD, мм Маленькая звезда Межосевое расстояние, мм Применение
      146 44 103,2 Shimano XTR M960 Hollowtech, большая звезда
      112 34 79,2 Shimano XTR M950, M952, средняя или большая звезда
      104 32 73,6 Shimano XTR M960, XT, LX, большая звезда
      68 22 48,1 Shimano XTR M950, M952, маленькая звезда
      64 22 45,3 Shimano XTR M960, XT, LX, маленькая звезда

      5−болтовые шатуны

      BCD, мм Маленькая звезда Межосевое расстояние, мм Применение
      151 44 88,8 Устаревший стандарт Campagnolo (до 1967 года)
      144 41 84,6 Старый стандарт Campagnolo. Всё ещё используется для трековых систем
      135 39 79,5 Основной стандарт Campagnolo
      130 38 76,4 Шоссейный стандарт для 2 и 3 звёзд
      128 38 75,2 Nervar (устаревший)
      122 38 71,7 Stronglight 93 и другие (устаревший)
      118 36 69,4 Ofmega, SR (устаревший)
      116 35 68,2 Стандарт Campagnolo (устаревший)
      110 33 64,7 Туристский стандарт для 2 звёзд, стандарт для большой звезды 3-звёздной системы
      94 29 55,4 Большая звезда 3-звёздной компактной системы
      92 30 53,3 Shimano Dura-Ace, маленькая звезда 3-звёздной системы
      86 28 50,5 Stronglight 99, некоторые триплеты SR (устаревший)
      74 24 43,5 Стандарт для маленькой звезды полноразмерной 3-звёздной системы, совместим со звёздами 110 мм, 130 мм или 135 мм
      58 20 34,3 Маленькая звезда компактной системы
      56 20 32,9 Маленькая звезда компактной системы Sun Tou (устаревший)

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

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