
В этой статье мы узнаем как восстановить загрузчик Windows на современном компьютере который использует UEFI вместо классического BIOS и таблицей разделов диска GPT (вместо MBR). Повреждение загрузчика Windows может произойти после установки второй ОС (в конфигурациях Dual Boot), повреждения файловой системы, неправильных действий при восстановлении Windows, удаления некоторых данных на скрытых разделах, вредоносного программного обеспечения (вирусов, ransomware и т. д.) и по некоторым другим причинам.
Ошибка загрузки Windows: Boot Configuration Data is Missing (EFI\Microsoft\Boot\BCD)
Компьютер с UEFI и Windows, установленной в родном режиме, не сможет загрузиться, если загрузчик EFI Windows поврежден. При попытке загрузки с диска с поврежденным или отсутствующим загрузчиком EFI появляется следующая ошибка BSOD (Blue Screen of Death):
The boot configuration data for your PC is missing or contains errors. File :\EFI\Microsoft\Boot\BCD Error code: 0xc000000f
или:
Error code: 0xc000014c
Эта ошибка указывает на то, что конфигурация загрузчика Windows (Boot Configuration Data, BCD) была повреждена или даже полностью удалена. Если вы попытаетесь восстановить загрузчик на компьютере с UEFI, используя bcdedit
, вы получите ошибку:
The boot configuration data store could not be found. The requested system device cannot be found.
Если Windows 10/11 установлена в родном режиме UEFI на GPT-диск, то загрузчик Windows EFI (Диспетчер загрузки Windows) хранит менеджер загрузки и конфигурацию BCD на отдельном диске скрытом томе EFI (размером 100 МБ с файловой системой FAT32). Утилита bcdedit не видит этот EFI-раздел и не может управлять конфигурацией загрузчика на нем.
Автоматическое восстановление загрузчика Windows с помощью WinRE
Процедура автоматического восстановления загрузчика EFI, используемая в среде восстановления Windows (WinRE), обычно бесполезна в таких случаях. Но попробовать ее все же стоит:
- Загрузите устройство с диска восстановления или установочного носителя Windows 10/11;
- Нажмите кнопку Восстановление системы на экране установки;
- Затем выберите Устранение неполадок -> Восстановление запуска и выберите ОС, загрузчик которой вы хотите попытаться восстановить;
- Но, скорее всего, результат будет отрицательным:
Automatic Repair couldn’t repair your PC
.
Использование BCDBoot для ручного восстановления загрузчика EFI в Windows
Перейдем к процедуре ручного восстановления загрузчика EFI Windows на компьютере с UEFI.
Для восстановления конфигурации загрузчика (BCD) необходимо загрузиться с оригинального установочного носителя Windows (также можно использовать диск восстановления или специальный загрузочный USB-накопитель UEFI). После загрузки в среду восстановления необходимо открыть консоль командной строки: выберите Восстановление системы — > Устранение неполадок-> Командная строка).
Shift + F10
(или Shift + Fn + F10
на некоторых моделях ноутбуков) на первом экране настройки Windows (при выборе языка и раскладки клавиатуры).В открывшемся командном окне запустите инструмент управления дисками:
diskpart
Отобразите список дисков на компьютере:
list disk
Если звездочка (*
) в столбце Gpt, то на диске используется таблица разделов GPT. Если нет, то используется MBR.
Если на вашем диске используется таблица разделов GPT, выполните следующие шаги в инструкции по восстановлению загрузчика Windows EFI.
Если на диске используется таблица разделов MBR, это руководство не подойдет для вашего компьютера. Скорее всего, у вас компьютер с включенной опцией BIOS или Legacy/Compatibility Support Mode (CSM) в настройках UEFI.
На MBR-дисках загрузчик Windows хранится в отдельном разделе System Reserved, а не в разделе EFI (в любом случае, не конвертируйте таблицу разделов MBR в GPT, пока не исправите загрузчик Windows !!!). Для восстановления загрузчика BCD на компьютере с BIOS и диском MBR (Master Boot Record) воспользуйтесь другим руководством.
Выберите диск, на котором установлена Windows (если в системе только один жесткий диск, его индекс должен быть 0):
sel disk 0
Отображение списка разделов и томов на этом диске: list partition
list volume
В этом примере видно, что загрузочный раздел EFI имеет вид раздел 2 индекс (он же том 5 с Скрытый label). Проще всего определить раздел EFI по файловой системе FAT32 и размеру 100 МБ (это стандартный минимальный размер раздела EFI для компьютеров под управлением Windows; в редких случаях размер раздела может отличаться). Чаще всего для него используется следующее обозначение Системный EFI или ESP/EFI System Partition).
В нашем примере основной раздел, на котором установлена Windows, имеет индекс тома 2, отформатирован в файловой системе NTFS, и ему присвоена буква диска C:.
dir C:\
Убедитесь, что этот диск содержит Windows
, Program Files
, Users
, и другие каталоги.
Если эти каталоги отсутствуют, значит, диск Windows имеет другую букву диска. Проверьте содержимое дисков, которым присвоены разные буквы.
Запишите букву диска, присвоенную разделу Windows. Чуть позже мы будем использовать ее в качестве одного из аргументов команды bcdboot.
Таблица разделов также должна содержать раздел MSR (Microsoft System Reserved) размером 16 МБ в Windows 10/11 (или 128 МБ в Windows 8.1).
Назначьте скрытому тому EFI букву диска K::
select volume 5
assign letter K:
Должно появиться сообщение об успешном назначении буквы диска разделу EFI:
DiskPart is successfully assigned the drive letter or mount point.
Закройте раздел диска:
exit
Перейдите в каталог загрузчика на скрытом томе:
cd /d K:\efi\microsoft\boot\
В данном случае K: — это буква диска, назначенная разделу EFI, о котором говорилось выше. Если каталог \EFI\Microsoft\Boot\ отсутствует (ошибка Система не может найти указанный путь), попробуйте выполнить следующие команды:
cd /d K:\Boot\
или
cd /d K:\ESD\Windows\EFI\Microsoft\Boot\
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
или даже:
bootrec /FixMbr
(подготовка записи MBR для GPT-диска выглядит странно)
Все эти команды можно использовать только для дисков на базе MBR. Если ваш компьютер загружается в режиме UEFI, то он использует таблицу разделов GPT (как в нашем случае). Поэтому, когда вы запускаете bootrec
команды, вы увидите ошибку: access is denied
Вам необходимо использовать BCDBoot.exe инструмент для восстановления файлов загрузчика и исправления загрузочных записей на разделе EFI путем их копирования из системного каталога на разделе Windows. Конфигурация загрузчика BCD создается заново с помощью функции %WINDIR%\System32\Config\BCD-Template
файл.
Используйте attrib команда для удаления скрытых, доступных только для чтения и системных атрибутов из файла BCD:
attrib BCD -s -h -r
Удалите текущий файл конфигурации BCD, переименовав его (при этом старая конфигурация загрузки будет сохранена в качестве резервной копии): ren BCD BCD.bak
Использование bcdboot Инструмент, необходимо скопировать критические файлы загрузочной среды UEFI из системного каталога в загрузочный раздел EFI и заново создать файл конфигурации загрузчика BCD:
bcdboot C:\Windows /l en-us /s k: /f ALL
- C:\Windows — путь к корневому системному каталогу Windows на диске (это ваш диск, на котором установлена Windows, мы определили его ранее с помощью команды diskpart);
- f ALL — означает, что вам нужно скопировать файлы среды загрузки Windows, включая файлы для компьютеров с UEFI и BIOS (теоретически можно загрузиться и с UEFI, и с BIOS). Чтобы скопировать только загрузчик EFI, используйте параметр /f UEFI команда;
- /l en-us -указывает системную локаль, которая используется при инициализации хранилища BCD. По умолчанию используется en-us — английский язык (США);
- /s K: — копирование файлов EFI загрузчика в указанный раздел;
- /c — это новая опция BCDBoot в Windows 10, которая позволяет перезаписывать существующие загрузочные записи (включая настройки отладки). Используйте этот параметр, чтобы игнорировать старые параметры загрузки и создать чистую конфигурацию BCD;
- /v — используется для включения подробного вывода BCDBoot.
bcdboot c:\Windows /l en-GB /s K: /f ALL
Windows 10 Dutch:
bcdboot c:\Windows /l nl-NL /s K: /f ALL
Windows 10 Deutch (немецкий):
bcdboot c:\Windows /l de-DE /s K: /f ALL
Полный список тегов языка/региона для Windows доступен здесь:
Теперь, если вы запустите программу bcdedit
, вы увидите следующее :
В разделе диспетчера загрузки Windows должна появиться запись, содержащая полный путь к загрузочному файлу UEFI (\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
).В данном примере он расположен на томе 5 (partition=\Device\HarddiskVolume5
).
Windows Boot Manager -------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume5 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit {globalsettings} bootshutdowndisabled Yes default {CURRENT} resumeobject {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} displayorder {default} toolsdisplayorder {memdiag} timeout 30 Windows Boot Loader ------------------- identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows 10 locale en-US inherit {bootloadersettings} recoverysequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Раздел диспетчера загрузки Windows должен содержать путь к разделу EFI (=\Device\HarddiskVolume5
) и путь к файлу менеджера загрузки (bootmgfw.efi). Раздел Windows Boot Loader содержит информацию о разделе Windows и путь к EFI-загрузчику Windows ( \Windows\system32\winload.efi
). При включении компьютер передаст управление загрузчику EFI, который запустит загрузчик Windows.
Возможные ошибки:
- Ошибка BFSVC: Не удалось открыть хранилище шаблонов BCD. статус — [c000000f] — проверка правильности введенной команды и наличия локализованной версии Windows. В этом случае необходимо указать правильный код локального языка.
Утилита bcdboot копирует файлы шаблонов BCD из каталога \Windows\System32\Config. Если файлы шаблона BCD в этой папке повреждены или удалены, попробуйте проверить целостность системных файлов в автономном режиме с помощью утилиты sfc.exe (в качестве источника необходим установочный диск Windows, в данном случае диск D:):
sfc /scanow /OFFBOOTDIR=C:\ /OFFWINDIR=D:\WINDOWS
- Ошибка BFSVC: Ошибка копирования загрузочных файлов с диска Last Error = 0x570 — попробуйте проверить диск с помощью команды
CHKDSK K: /F
- BFSVC Ошибка: Не удалось установить элемент устройства приложения. Статус = [c000000bb] — проверьте разделы EFI и Windows 10 с помощью chkdsk.exe. Убедитесь, что скрытый и системный атрибут файла BCD очищен:
attrib -s -h \EFI\Microsoft\Boot\BCD
del \EFI\Microsoft\Boot\BCD
- Сбой при инициализации системного тома библиотеки — убедитесь, что вы используете правильный раздел FAT32 с EFI (у вас может быть несколько одинаковых разделов);
- Сбой при попытке скопировать загрузочные файлы — проверьте букву диска Windows в команде bcdboot. На скриншоте ниже видно, что ошибка возникла при попытке скопировать загрузочные файлы с диска C:. В этом случае, скорее всего, диску Windows присвоена другая буква, например D:. Найти диск Windows и присвоенную ему букву можно с помощью команд diskpart и dir (описаны выше).
Теперь необходимо перезагрузить компьютер и отключить загрузочный носитель. Если вы все сделали правильно, то Диспетчер загрузки Windows должен появиться в списке загрузочных устройств, где вы можете выбрать нужную операционную систему для загрузки. Загрузчик EFI и конфигурация BCD успешно восстановлены!
BAD SYSTEM CONFIG INFO
появляется ошибка. Чтобы исправить ошибку, выполните следующие действия:
Убедитесь, что вы не вносили никаких последних изменений в настройки UEFI. Отмените все изменения.
Загрузите компьютер с установочного/загрузочного флеш-накопителя и измените конфигурацию загрузчика с помощью команд:
bcdedit /deletevalue {default} numproc
bcdedit /deletevalue {default} truncatememory