Как восстановить загрузчик EFI/GPT в Windows 10 или 11

В этой статье мы узнаем как восстановить загрузчик Windows на современном компьютере который использует UEFI вместо классического BIOS и таблицей разделов диска GPT (вместо MBR). Повреждение загрузчика Windows может произойти после установки второй ОС (в конфигурациях Dual Boot), повреждения файловой системы, неправильных действий при восстановлении Windows, удаления некоторых данных на скрытых разделах, вредоносного программного обеспечения (вирусов, ransomware и т. д.) и по некоторым другим причинам.

В этой статье содержится пошаговое руководство по восстановлению поврежденного или удаленного загрузчика в Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2 на компьютерах, работающих в родном (несовместимом) режиме UEFI. Это руководство можно использовать как для восстановления двоичных файлов загрузчика Windows, так и для восстановления конфигурации загрузчика \EFI\Microsoft\Boot\BCD файл (в случаях, когда Windows не загружается из-за отсутствия или повреждения файла конфигурации загрузки BCD).

Ошибка загрузки 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

ошибки конфигурации загрузки 0xc000000f или отсутствует файл \EFI\Microsoft\Boot\BCDошибки конфигурации загрузки 0xc000000f или отсутствующий файл \EFI\Microsoft\Boot\BCD

Эта ошибка указывает на то, что конфигурация загрузчика 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 был полностью удален. Следуйте инструкциям по ссылке.

Автоматическое восстановление загрузчика Windows с помощью WinRE

Процедура автоматического восстановления загрузчика EFI, используемая в среде восстановления Windows (WinRE), обычно бесполезна в таких случаях. Но попробовать ее все же стоит:

  1. Загрузите устройство с диска восстановления или установочного носителя Windows 10/11;
  2. Нажмите кнопку Восстановление системы на экране установки;
  3. Затем выберите Устранение неполадок -> Восстановление запуска и выберите ОС, загрузчик которой вы хотите попытаться восстановить;меню восстановления загрузчика windows10меню восстановления запуска windows10
  4. Но, скорее всего, результат будет отрицательным: Automatic Repair couldn’t repair your PC. Автоматическое восстановление не смогло восстановить ваш компьютерАвтоматическое восстановление не смогло восстановить ваш компьютер

Использование BCDBoot для ручного восстановления загрузчика EFI в Windows

Перейдем к процедуре ручного восстановления загрузчика EFI Windows на компьютере с UEFI.

Для восстановления конфигурации загрузчика (BCD) необходимо загрузиться с оригинального установочного носителя Windows (также можно использовать диск восстановления или специальный загрузочный USB-накопитель UEFI). После загрузки в среду восстановления необходимо открыть консоль командной строки: выберите Восстановление системы — > Устранение неполадок-> Командная строка).

Командную строку можно запустить, даже если у вас под рукой есть только установочный носитель Windows. Для этого достаточно нажать комбинацию клавиш Shift + F10 (или Shift + Fn + F10 на некоторых моделях ноутбуков) на первом экране настройки Windows (при выборе языка и раскладки клавиатуры).

режим восстановления системы win 8режим восстановления системы win 8

В открывшемся командном окне запустите инструмент управления дисками:

diskpart

Отобразите список дисков на компьютере:

list disk

На этом этапе очень важно определить тип таблицы разделов на диске, на котором установлена Windows: MBR или GPT. Дело в том, что загрузчик EFI используется только на дисках с таблицей разделов GPT.

Если звездочка (*) в столбце Gpt, то на диске используется таблица разделов GPT. Если нет, то используется MBR.

diskpart: GPT или MBR - проверка таблицы разделов диска diskpart: 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

структура таблицы разделов windows efiструктура таблицы разделов windows efi

В этом примере видно, что загрузочный раздел 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 в winpeопределить системный раздел windows в winpe

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

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

Таблица разделов также должна содержать раздел MSR (Microsoft System Reserved) размером 16 МБ в Windows 10/11 (или 128 МБ в Windows 8.1).

Если у вас нет отдельных разделов EFI или MSR, их можно воссоздать вручную. Ознакомьтесь со статьей Восстановление удаленных системных разделов EFI и MSR.

Назначьте скрытому тому 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\

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

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.
Подсказка. Если вы используете локализованную версию Windows 10/11, команда будет другой. Например, в версии Windows для Великобритании используйте следующую команду:
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 доступен здесь:

https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/available-language-packs-for-windows?view=windows-11

Теперь, если вы запустите программу bcdedit , вы увидите следующее :

В разделе диспетчера загрузки Windows должна появиться запись, содержащая полный путь к загрузочному файлу UEFI (\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI).В данном примере он расположен на томе 5 (partition=\Device\HarddiskVolume5).

bcdedit: менеджер загрузки windows bootmgfw.efibcdedit: менеджер загрузки windows bootmgfw.efi

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. В этом случае необходимо указать правильный код локального языка. файл шаблона bcd в windowsфайл шаблона bcd в 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

    bcdboot: ошибка bfsvcbcdboot: ошибка bfsvc
  • Сбой при инициализации системного тома библиотеки — убедитесь, что вы используете правильный раздел FAT32 с EFI (у вас может быть несколько одинаковых разделов);
  • Сбой при попытке скопировать загрузочные файлы — проверьте букву диска Windows в команде bcdboot. На скриншоте ниже видно, что ошибка возникла при попытке скопировать загрузочные файлы с диска C:. В этом случае, скорее всего, диску Windows присвоена другая буква, например D:. Найти диск Windows и присвоенную ему букву можно с помощью команд diskpart и dir (описаны выше).Ошибка bcdboot - Сбой при попытке скопировать загрузочные файлы Ошибка bcdboot - Сбой при попытке скопировать загрузочные файлы

Теперь необходимо перезагрузить компьютер и отключить загрузочный носитель. Если вы все сделали правильно, то Диспетчер загрузки Windows должен появиться в списке загрузочных устройств, где вы можете выбрать нужную операционную систему для загрузки. Загрузчик EFI и конфигурация BCD успешно восстановлены!

В некоторых случаях после восстановления загрузчика BCD при загрузке Windows появляется сообщение BAD SYSTEM CONFIG INFO появляется ошибка. Чтобы исправить ошибку, выполните следующие действия:

Убедитесь, что вы не вносили никаких последних изменений в настройки UEFI. Отмените все изменения.

Загрузите компьютер с установочного/загрузочного флеш-накопителя и измените конфигурацию загрузчика с помощью команд:

  • bcdedit /deletevalue {default} numproc
  • bcdedit /deletevalue {default} truncatememory

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

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