Как восстановить загрузчик EFI Windows?

Как восстановить загрузчик EFI Windows?

14.06.2019 2 Автор GodKnowses

Как восстановить загрузчик EFI Windows 7 и Windows 10?

windows failed to start

В этой статье мы попробуем восстановить загрузчик EFI для Windows 7/8/10. Чуть ранее мы уже разбирали восстановление загрузки для таблицы MFT на примере Windows 7. Сейчас же позволю себе сразу отметить, что повреждение загрузчика в нашем случае чаще всего (помимо прочего) вызывается:

  • установкой второй операционной системы
  • неправильными операциями по восстановлению системы (или неудачным её завершением)
  • удалением неких данных из скрытых разделов
  • битые секторы
  • действием зловредов.

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

Скрытый диск:\EFI\Microsoft\Boot\BCD

Вот, кстати, его примерное содержимое из Heren’s BootCD:

содержимое раздела EFI

Чтобы было понятно…

Структура разделов в таблице GPT на Windows, загруженной в режиме UEFI, чаще всего выглядит так:

структура диска GPT таблицы с поддержкой UEFI Windows 7

где

  • EFI – раздел ESP (Extensible Firmware Interface) – раздел, где хранится программное обеспечение с драйверами, обеспечивающими загрузку Windows;
  • MSR – он же Microsoft Reserved – резервируемый во время установки Windows раздел; его вполне может и не быть на вашей машине
  • Первичный раздел – том, где хранятся системные файлы: реестр, службы, системные утилиты, файлы настроек и т.д.

Windows 10 сюда добавляет ещё и диск Восстановления. По умолчанию (т.е. при установке Windows на НЕФОРМАТИРОВАННЫЙ диск), первые два раздела имеют чёткий объём. И потому по необходимости их легко вычленить, ориентируясь только лишь на размеры обоих. В Windows 7, например, это соответственно 100 Мб и 128 Мб. И это, как говорится, типовая конфигурация. Некоторые производители компьютеров создают разделы по своему усмотрению, например, засовывая туда среду восстановления Windows PE в файл winre.wim. Если вы обнаружили у себя такой файл, знайте, что именно он содержит в себе образ восстановления системы от производителя. Раздел EFI обязателен на GPT дисках с UEFI поддержкой. Когда компьютер включается, среда UEFI загружает загрузчик (EFI\Microsoft\Boot\bootmgfw.efi) из раздела EFI (ESP), передавая той контроль над загрузкой самой Windows. Нет раздела – нет загрузки.

где вы хотите установить windows

Раздел же MSR на диске создаётся для облегчения обзора разделов и используется для системных операций (типа конвертации диска из простого в динамический). Это резервный раздел, которому Windows никогда не присваивает опознавательные знаки. И данных пользователя он не содержит. В Windows 10 размер раздела MSR – 16 Мб (в Windows 8 – 128 Мб), тип файловой системы – NTFS.

где вы хотите установить windows разделы

Данные конфигурации загрузки Windows

О том, что файл по указанному выше адресу EFI\Microsoft\Boot\BCD повреждён, вам может сообщить синий экран смерти BSOD с ошибкой следующего содержания:

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

Это означает, что данные в файле Boot Configuration Data не распознают конфигурацию загрузчика вашей Windows. Однако, пользователей, знакомых с утилитой восстановления загрузчика в MFT bcdedit.exe, в этот раз та не выручит. При попытке её запустить, пользователь увидит непривычное:

The boot configuration data store could not be found.
The requested system device cannot be found

Мол, ни данных, ни самого устройства не существует. Причина одна: раз конфигурация загрузчика BCD в UEFI-режиме загрузки лежит в специальном разделе EFI:

efi раздел

efi раздел в Windows 7

управление дисками в windows 10

efi раздел в Windows 10

…то наша утилита просто его не видит. Т.е. не видит сам загрузчик, а то и весь раздел. Вобщем, не спасают и традиционные средства восстановления, созданные на такой случай:

выбор действия

восстановление при загрузке не работает

У вас тоже с ошибкой написано?

Как восстановить загрузчик EFI Windows 10: в лоб.

  • выбираем загрузочное устройство, вызвав меню быстрой загрузки клавишами в зоне F или через BIOS

pop up menu быстрой загрузки

  • загружаем с флешки с Windows 10 PE;
  • выходим на командную строку, зажав Shift + F10 после появления окна Установка Windows
  • как и в предыдущем режиме, нам нужно определиться со списком разделов компьютера. Далее я предполагаю, что жёсткий диск установлен в единственном экземпляре:
diskpart
list volume
  • обнаруживаем EFI раздел. Его размеры, повторюсь, невелики (100 Мб в W7 и W10), и он имеет файловую систему FAT32:
list volume diskpart

у меня EFI – это безымянный Том 3

  • по умолчанию он скрыт, а значит не имеет буквы. Для дальнейшей работы она нам понадобится. Так что присваиваем букву прямо сейчас:
select volume *
assign letter Y:
exit

присвоить букву тому в diskpart

После закрытия программы отправляемся в этот раздел:

cd /d Y:\EFI\Microsoft\Boot\

Здесь появляется небольшое отступление. Этот путь существует по умолчанию, и причин, чтобы консоль вам отказала в переходе в указанную папку, нет. Если ошибка появилась, см. абзац Возможные ошибки или сразу переходите к следующей части Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.

bootrec fixboot отказано в доступе

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

  • создаём заново загрузочный сектор одноимённого раздела:
bootrec /fixboot
  • используя утилиту bcdedit.exe создадим хранилище заново, копируя загрузочные файлы из системной папки:
bcdboot C:\Windows /l ru-ru /s k: /f ALL

где

/f ALL – скопирует загрузочные файлы (и UEFI и BIOS режимов) для возможной поддержки загрузки на EFI и BIOS;

/l ru– ru – укажет на языковую локаль системы, которая будет использоваться, т.е. на русскую. Если всё проходит без ошибок, пропускайте абзац.

  • выполняем последовательно следующие команды:
bootrec /scanos
bootrec /rebuildbcd

Перезагружаемся в Windows 10 на жёстком диске и проверяем.

Возможные ошибки

Администратора здесь могут подстерегать некоторые ошибки. Среди них наиболее часто появляются:

  • BFSVC Error: Can not open the BCD template store. status – [c000000f] –
    нужно проверить вводимые команды и путь к хранению системных файлов Windows; иногда ошибка появляется из-за неправильного указания языковой локали;
  • BFSVC Error: Error copying boot files from Last Error = 0x570 – ошибка является следствием самого явления, что Windows не загружается. Вероятно, плохие сектора появились не только в разделе загрузки EFI, но и на диске с системой; прогоните жёсткий диск утилитой chkdsk.exe тут же из консоли командой
chkdsk с: /а

где с – диск с системой

  • Отказано в доступе – причин на то множество: от наличия плохих секторов до неверно выставленного режима загрузки (стоит Legacy вместо UEFI; нужно – только UEFI) с флешки. Однако. UEFI не был бы UEFI, если бы всё проходило вот так гладко: то, что раздел EFI не подпускает к своим файлам – это, скорее закономерность, чем исключение. Так что, если в доступе вам отказано, я советую вам просто сначала удалить сам раздел EFI (а он такой нам больше не нужен), воссоздать его заново с единственно необходимой для его работы директорией, а затем уже положиться на ремонтную bootrec, позволив ей завершить работу. Так что, если необходимость возникла, продолжаем работу с момента появления отказа команде
bootrec /fixboot

Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.

Самое главное здесь – не промахнитесь с разделом/лами и не удалите тот из них, в котором хранятся данные Windows и ваша информация. Итак, раз bootrec.exe попасть в нужный нам раздел не смогла, раздел убираем. Для этого нам будет нужно вернуться в diskpart.exe, снова определиться с разделами и выбрать тот, что на 100 Мб. Возвращаемся в ремонтную консоль:

cd /d x:

вернуться в diskpart

И начинаем заново:

diskpart
select disk 0
list partition
select partition 2

удаляем его:

delete partition override

удалить раздел в diskpart

можно проверить результат:

list partition

list disk после удаления раздела

У нас осталось некоторое нераспределённое пространство, в котором мы заново создаём удалённый только что раздел:

create partition efi size=100
list partition
select partition 1
format quick fs=fat32 label="System"

форматирование в diskpart

Но при попытке присвоить применявшуюся ранее букву Y, консоль ответила отказом (надо было её перезапускать). Я присвою разделу букву Z:

assign letter=Z
exit

Подготовим почву для bootrec.

  • создаём папку загрузки:
mkdir Z:\EFI\Microsoft\Boot

создание новой папки EFI на системном диске

  • копируем туда файлы из состава среды EFI из папки установленной Windows (С – буква диска с системными файлами Windows):
xcopy /s C:\Windows\Boot\EFI\*.* Z:\EFI\Microsoft\Boot
  • пусть bootrec с вашей флешки проверит диски на предмет системных файлов Windows:
bootrec /scanos

Никуда они не денутся, если вы их случайно не удалили, или они не попали в зону бэд-секторов. Остаётся…

  • … заставить написать “правильный” файл BCD и прочие “конфиги”:
bootrec /rebuildbcd

bootrec scanos rebuildbcd

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

Ошибка вновь появляется…

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

  • Разбудите BIOS:
    – снимите крышку боковую компьютера или нижнюю ноутбука
    – отключите жёсткий диск (отключив оба шлейфа на “стационарнике” или вынув из разъёмов на ноутбуке)
    – включите машину, дождавшись ошибки загрузки;
    – выключив компьютер, подключите жёсткий заново и снова, включив компьютер, проверьте;
  • проверьте UEFI меню платы компьютера на предмет правильной очерёдности разделов загрузки; первым должен стоять, как вы поняли, именно EFI;
  • убедитесь, что метка Загрузочный стоит только напротив EFI раздела, и ни у какого больше. Проверить и исправить ситуацию из Windows PE, к сожалению, не получится. И для этого придётся воспользоваться дополнительными инструментами в виде загрузочной флешки. Сделайте это любым удобным вариантом из статьи Метка диска Загрузочный: как добавить или удалить?

У меня всё. Успехов.