Відновлення EFI завантажувача у Windows 10/11

Розглянемо три варіанти відновлення завантажувач Windows 10 або 11, на якому використовується UEFI інтерфейс замість класичного BIOS і таблиця розділів диска GPT (замість MBR).
Ця стаття містить докладну покрокову процедуру відновлення пошкодженого або віддаленого завантажувача ОС у Windows 11/10/8.1 та Windows Server 2022/2019/2016/2012R2 на комп’ютерах, які працюють у нативному (не legacy) режимі UEFI. Інструкцію можна використовувати як для відновлення бінарних файлів завантажувача Windows, так і конфігураційного файлу завантажувача EFI\Microsoft\Boot\BCD (у випадках, коли Windows не завантажується через відсутність або пошкодження файлу конфігурацією завантаження BCD).

Не завантажується Windows: Boot configuration data is missing EFI\Microsoft\Boot\BCD

UEFI комп’ютер з Windows, встановлений у наївному режимі, не зможе завантажитися при пошкодженні EFI завантажувача Windows. При спробі завантажитися з диска з пошкодженим або відсутнім завантажувачем EFI з’явиться BSOD (синій екран смерті) з помилкою:

The boot configuration data for your PC is missing or contains errors.
File :\EFI\Microsoft\Boot\BCD
Error code: 0xc000014c

Або:
Error code: 0xc000000f

Ця помилка говорить про пошкодження або навіть повне видалення конфігурації завантажувача 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 диск, то EFI завантажувач Windows (Windows Boot Manager) зберігає програму управління завантаженням та конфігурацію BCD на окремому прихованому розділі EFI (розміром 100 мб з файловою системою FAT32). Утиліта bcdedit не бачить цей розділ EFI, і відповідно не може керувати конфігурацією завантажувача на ньому.

Автоматичне відновлення завантажувача Windows

  • Завантажтеся з диска завантажувального диска, диска відновлення або інсталяційної флешки з Windows 10 або 11
  • На екрані установки натисніть кнопку Відновлення системи
  • Потім виберіть пункт Пошук та усунення несправностей -> Відновлення під час завантаження та виберіть ОС, завантажувач якої потрібно спробувати відновити
  • Але, швидше за все, результат буде негативний: Відновлення під час завантаження не вдалося відновити комп’ютер

Ручне відновлення завантажувача Windows за допомогою BCDBoot

Для відновлення конфігурації завантажувача (BCD), вам потрібно завантажити комп’ютер з оригінального інсталяційного диска з Windows (диска відновлення або спеціально підготовленої інсталяційної флешки з Windows ). Після завантаження в середовищі відновлення потрібно відкрити вікно командного рядка: виберіть Відновлення системи -> Діагностика -> Командний рядок (System Restore -> Troubleshoot -> Command Prompt).

У командному рядку, що відкрився, виконайте запустіть утиліту управління дисками, набравши команду:

diskpart

Виведіть список дисків у системі:

list disk

На цьому етапі дуже важливо визначити тип таблиці розділів на диску, на якому інстальовано Windows: MBR або GPT. Справа в тому, що EFI завантажувач використовується тільки на дисках з розміткою GPT.
Якщо у диска в стовпці Gpt вказана зірочка ( * ), тоді диску використовується таблиця розділів GPT, якщо немає – MBR.

Ми розглядаємо відновлення завантажувача Windows з GPT розміткою.

Виберіть диск, на якому встановлена ​​ваша Windows (якщо жорсткий диск у системі один, його індекс повинен дорівнювати 0):

sel disk 0

Виведіть список томів та розділів у системі:

list partition
list volume

У прикладі видно, що завантажувальний розділ EFI має індекс Partition2 (він же Volume 5 з міткою Hidden). Найпростіше визначити EFI розмір за файловою системою FAT32, розміром 100 Мб (це стандартний мінімальний розмір для Windows комп’ютерів, в окремих випадках розмір розділу може бути). Найчастіше для нього використовується мітка System EFI або ESP/EFI System Partion).

У нашому прикладі основний розділ, на який встановлена ​​Windows, має індекс volume 2, відформатований у файлову систему NTFS і призначено літеру C:.

Запам’ятайте букву диска, призначену розділу з Windows, трохи нижче ми будемо використовувати її як один із аргументів команди bcdboot.

У таблиці також обов’язково має бути розділ MSR (Microsoft System Reserved) розміром 16 Мб у Windows 10/11 (або 128 Мб у Windows 8.1).

Призначте прихованому EFI розділу довільну букву диска (наприклад, M:):

select volume 5
assign letter M:

Повинний з’явитися рядок, який свідчить про успішне призначення літери диска розділу EFI:

DiskPart successfully assigned the drive letter or mount point.

Завершіть роботу з diskpart:

exit

Перейдіть до каталогу із завантажувачем на прихованому розділі:

cd /d m:\efi\microsoft\boot\

У разі M: це буква диска, присвоєна розділу EFI трохи вище. Якщо каталог \EFI\Microsoft\Boot\ відсутній System system not find the path specified ), спробуйте наступні команди:

cd /d M:\Boot\

або

cd /d M:\ESD\Windows\EFI\Microsoft\Boot\

За допомогою команди attrib зніміть прихований, read-only і системний атрибути з файлу BCD:

attrib BCD -s -h -r

Видаліть поточний файл із конфігурацією BCD, перейменувавши його (так ви збережете стару конфігурацію як резервну копію):

ren BCD BCD.bak

За допомогою утиліти bcdboot.exe потрібно скопіювати з системного каталогу критичні файли середовища завантаження UEFI в завантажувальний розділ EFI і перестворити конфігурацію завантажувача в сховищі BCD:

bcdboot C:\Windows /l en-us /s M: /f ALL

Де:

  • C:\Windows – шлях до кореневого системного каталогу Windows на диску (це ваш диск, на який було встановлено вашу Windows, ми дізналися його раніше за допомогою команди diskpart);
  • /f ALL – означає, що необхідно скопіювати файли середовища завантаження Windows, включаючи файли для комп’ютерів із UEFI та BIOS (теоретична можливість завантажуватись на EFI та BIOS системах). Щоб скопіювати тільки EFI завантажувач, використовуйте /f UEFI;
  • /l en-us – визначає мовний стандарт, який використовується при ініціалізації сховища BCD. За замовчуванням використовується en-US – англійська мова (США);
  • /s M: — скопіювати файли EFI завантажувача на вказаний розділ;
  • – ця нова опція BCDBoot у Windows 10, яка дозволяє перезатерти наявні завантажувальні записи під час створення нового сховища (зокрема debugsettings). Використовуйте цей параметр, щоб ігнорувати старі налаштування та створити повністю чисту конфігурацію BCD завантажувача;
  • /v – використовується для увімкнення режиму виведення докладної інформації BCDBoot.

У разі використання української версії Windows команда буде іншою:
bcdboot C:\Windows /L uk-UA /S M: /F ALL

Тепер, якщо виконати команду bcdedit, ви побачите наступну картину:

У секції диспетчера завантаження Windows (Windows Boot Manager) має з’явитися запис, який вказує на повний шлях до файлу керування завантаженням UEFI. У цьому прикладі він знаходиться на розділі 2 (partition=DeviceHarddiskVolume2), шлях EFIMICROSOFTBOOTBOOTMGFW.EFI.

У секції Windows Boot Manager повинен бути вказаний шлях до розділу EFI ( =\Device\HarddiskVolume2 ), шлях до файлу керування завантаженням (bootmgfw.efi). У секції Windows Boot Loader вказано розділ Windows та шлях до EFI завантажувачу Windows (\Windows\system32\winload.efi). Коли комп’ютер увімкнено, передасть керування диспетчеру завантаження EFI, який запустить завантажувач Windows.

Можливі помилки:

  • BFSVC Error : Використовується не для BCD template store. status – [c000000f] – перевірте правильність введеної команди. Можливо, у вас встановлено локалізовану версію Windows. І тут потрібно правильно вказати код мови системи (local language code). Утиліта bcdboot копіює файли шаблонів BCD з каталогу WindowsSystem32Config. Перевірте файл BCD-Template у цьому каталозі.

Якщо BCD шаблони в цій папці пошкоджені або видалені, спробуйте перевірити цілісність системних файлів в офлайн режимі за допомогою утиліти sfc (потрібний інсталяційний диск з Windows – диск D:): sfc /scanow /OFFBOOTDIR=C:\ /OFFWINDIR=D:\WINDOWS

  • BFSVC Error: Error copying boot files Last Error = 0x570 – спробуйте перевірити диск за допомогою команди CHKDSK M: /F
  • BFSVC Error: Використовується для вибору елемента application device. Status = [c000000bb] – перевірте за допомогою chkdsk.exe розділи з EFI та Windows 10. Перевірте, чи знято атрибут прихований та системний у файлу BCD. Видаліть його:

attrib -s -h \EFI\Microsoft\Boot\BCD
del \EFI\Microsoft\Boot\BCD

  • Failure when initializing library system volume – перевірте, що ви використовуєте правильний FAT32 розділ з EFI (можливо у вас кілька);
  • Failure when attempting to copy boot files – перевірте букву диска Windows команді. На скріншоті з’явилася помилка при спробі скопіювати файли завантаження з диска C:. У разі диску з Windows призначена інша літера, наприклад D:. Ви можете знайти диск з Windows та призначену літеру за допомогою diskpart (описано вище).

Перезавантажте комп’ютер, вимкніть завантажувальний диск. Якщо ви все зробили правильно, у виборі завантажувальних пристроїв має з’явитися пункт Windows Boot Manager, в якому можна вибрати завантаження потрібної операційної системи. Ваш EFI завантажувач та конфігурація BCD успішно відновлено!

P.S.: У деяких випадках після відновлення BCD завантажувача під час завантаження Windows з’являється помилка BAD SYSTEM CONFIG INFO . Щоб виправити помилку:
Переконайтеся, що ви не вносили нещодавно зміни до налаштувань UEFI

Завантажтеся з інсталяційної/завантажувальної флешки та змініть конфігурацію завантажувача командами:

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *