- Как восстановить загрузчик EFI Windows?
- Чтобы было понятно…
- Данные конфигурации загрузки Windows
- Как восстановить загрузчик EFI Windows 10: в лоб.
- Возможные ошибки
- Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.
- Ошибка вновь появляется…
- Отсутствует или содержит ошибки файл \windows\system32\ winload.efi в Windows 10
- Включите режим совместимости CSM и отключите Secure Boot
- Автоматическое восстановление загрузчика Windows
- Отключите функцию защиты ELAM
- Выполните проверку дисков на ошибки и целостность системных файлов
- Восстановление BCD загрузчика и файла winload.efi для UEFI системы
- Пересоздание загрузочных записей в хранилище BCD с помощью bootrec и bcdedit
Как восстановить загрузчик EFI Windows?
Как восстановить загрузчик EFI Windows 7 и Windows 10?
В этой статье мы попробуем восстановить загрузчик EFI для Windows 7/8/10. Чуть ранее мы уже разбирали восстановление загрузки для таблицы MFT на примере Windows 7. Сейчас же позволю себе сразу отметить, что повреждение загрузчика в нашем случае чаще всего (помимо прочего) вызывается:
- установкой второй операционной системы
- неправильными операциями по восстановлению системы (или неудачным её завершением)
- удалением неких данных из скрытых разделов
- битые секторы
- действием зловредов.
С помощью представленных инструментов можно будет попробовать восстановить загрузчик EFI, который отказывается загрузить систему из-за отсутствующего или битого файла конфигурации по адресу:
Скрытый диск:\EFI\Microsoft\Boot\BCD
Вот, кстати, его примерное содержимое из Heren’s BootCD:
Чтобы было понятно…
Структура разделов в таблице GPT на Windows, загруженной в режиме UEFI, чаще всего выглядит так:
- 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. Нет раздела – нет загрузки.
Раздел же MSR на диске создаётся для облегчения обзора разделов и используется для системных операций (типа конвертации диска из простого в динамический). Это резервный раздел, которому Windows никогда не присваивает опознавательные знаки. И данных пользователя он не содержит. В Windows 10 размер раздела MSR – 16 Мб (в Windows 8 – 128 Мб), тип файловой системы – NTFS.
Данные конфигурации загрузки Windows
О том, что файл по указанному выше адресу EFI\Microsoft\Boot\BCD повреждён, вам может сообщить синий экран смерти BSOD с ошибкой следующего содержания:
Это означает, что данные в файле Boot Configuration Data не распознают конфигурацию загрузчика вашей Windows. Однако, пользователей, знакомых с утилитой восстановления загрузчика в MFT bcdedit.exe, в этот раз та не выручит. При попытке её запустить, пользователь увидит непривычное:
Мол, ни данных, ни самого устройства не существует. Причина одна: раз конфигурация загрузчика BCD в UEFI-режиме загрузки лежит в специальном разделе EFI:
efi раздел в Windows 7
efi раздел в Windows 10
…то наша утилита просто его не видит. Т.е. не видит сам загрузчик , а то и весь раздел . В общем, не спасают и традиционные средства восстановления, созданные на такой случай:
У вас тоже с ошибкой написано?
Как восстановить загрузчик EFI Windows 10: в лоб.
- выбираем загрузочное устройство, вызвав меню быстрой загрузки клавишами в зоне F или через BIOS
- загружаем с флешки с Windows 10 PE;
- выходим на командную строку, зажав Shift + F10 после появления окна Установка Windows
- как и в предыдущем режиме, нам нужно определиться со списком разделов компьютера. Далее я предполагаю, что жёсткий диск установлен в единственном экземпляре:
- обнаруживаем EFI раздел. Его размеры, повторюсь, невелики (100 Мб в W7 и W10), и он имеет файловую систему FAT32:
у меня EFI – это безымянный Том 3
- по умолчанию он скрыт, а значит не имеет буквы. Для дальнейшей работы она нам понадобится. Так что присваиваем букву прямо сейчас:
После закрытия программы отправляемся в этот раздел:
Здесь появляется небольшое отступление. Этот путь существует по умолчанию, и причин, чтобы консоль вам отказала в переходе в указанную папку, нет. Если ошибка появилась, см. абзац Возможные ошибки или сразу переходите к следующей части Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.
меня ошибка Отказано в доступе настигла сразу
- создаём заново загрузочный сектор одноимённого раздела:
- используя утилиту bcdedit.exe создадим хранилище заново, копируя загрузочные файлы из системной папки:
/f ALL – скопирует загрузочные файлы (и UEFI и BIOS режимов) для возможной поддержки загрузки на EFI и BIOS;
/l ru– ru – укажет на языковую локаль системы, которая будет использоваться, т.е. на русскую. Если всё проходит без ошибок, пропускайте абзац.
- выполняем последовательно следующие команды:
Перезагружаемся в 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 тут же из консоли командой
где с – диск с системой
- Отказано в доступе – причин на то множество: от наличия плохих секторов до неверно выставленного режима загрузки (стоит Legacy вместо UEFI; нужно – только UEFI) с флешки. Однако. UEFI не был бы UEFI, если бы всё проходило вот так гладко: то, что раздел EFI не подпускает к своим файлам – это, скорее закономерность, чем исключение. Так что, если в доступе вам отказано, я советую вам просто сначала удалить сам раздел EFI (а он такой нам больше не нужен), воссоздать его заново с единственно необходимой для его работы директорией, а затем уже положиться на ремонтную bootrec, позволив ей завершить работу. Так что, если необходимость возникла, продолжаем работу с момента появления отказа команде
Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.
Самое главное здесь – не промахнитесь с разделом/лами и не удалите тот из них, в котором хранятся данные Windows и ваша информация. Итак, раз bootrec.exe попасть в нужный нам раздел не смогла, раздел убираем . Для этого нам будет нужно вернуться в diskpart.exe, снова определиться с разделами и выбрать тот, что на 100 Мб. Возвращаемся в ремонтную консоль:
И начинаем заново:
можно проверить результат:
У нас осталось некоторое нераспределённое пространство, в котором мы заново создаём удалённый только что раздел:
Но при попытке присвоить применявшуюся ранее букву Y, консоль ответила отказом (надо было её перезапускать). Я присвою разделу букву Z:
Подготовим почву для bootrec.
- копируем туда файлы из состава среды EFI из папки установленной Windows (С – буква диска с системными файлами Windows):
- пусть bootrec с вашей флешки проверит диски на предмет системных файлов Windows:
Никуда они не денутся, если вы их случайно не удалили, или они не попали в зону бэд-секторов. Остаётся…
- … заставить написать “правильный” файл BCD и прочие “конфиги”:
Выключаем компьютер, флешку вынимаем и включаем машину. Ждём появления Windows. Дайте ей загрузиться до Рабочего стола и проверяйте, всё ли на месте.
Ошибка вновь появляется…
Не беспокойтесь. Если вы вникли в процесс, и все команды вводили осознанно и корректно, ситуация, скорее всего, уже исправлена. Просто следует учесть особенности своеобразных фильтров безопасности, принятых для режима UEFI, и не путать буквы дисков. Их можно пройти, проделав такие шаги:
- Разбудите BIOS:
– снимите крышку боковую компьютера или нижнюю ноутбука
– отключите жёсткий диск (отключив оба шлейфа на “стационарнике” или вынув из разъёмов на ноутбуке)
– включите машину, дождавшись ошибки загрузки;
– выключив компьютер, подключите жёсткий заново и снова, включив компьютер, проверьте; - проверьте UEFI меню платы компьютера на предмет правильной очерёдности разделов загрузки; первым должен стоять, как вы поняли, именно EFI;
- убедитесь, что метка Загрузочный стоит только напротив EFI раздела, и ни у какого больше. Проверить и исправить ситуацию из Windows PE, к сожалению, не получится. И для этого придётся воспользоваться дополнительными инструментами в виде загрузочной флешки. Сделайте это любым удобным вариантом из статьи Метка диска Загрузочный: как добавить или удалить?
Отсутствует или содержит ошибки файл \windows\system32\ winload.efi в Windows 10
Рассмотрим еще одну распространенную ошибку загрузки Windows 10, вызванную повреждением или отсутствием файла winload.efi. Проблема проявляется следующим образом: Windows 10 перестает загружаться с ошибкой BSOD и следующим сообщением на экране загрузки:
Данная проблема связана с отсутствием или повреждением файла загрузчика \windows\system32\winload.efi. Эта проблема появляется чаще всего после некорректного обновления системы, при повреждении диска или файловой системы, при переразбивке диска сторонними утилитами, обновлении антивируса, после переноса (клонирования) установленного образа Windows на новый диск, замене материнской платы компьютера и прочими вмешательствами.
Решение проблемы зависит от того, использовался ли у вас режим загрузки UEFI или Legacy до возникновения проблемы. Далее рассмотрим основные шаги, которые помогут исправить данную ошибку и корректно загрузить Windows 10/Windows Server 2016.
Включите режим совместимости CSM и отключите Secure Boot
Большинство компьютеров с поддержкой UEFI могут загружаться как с дисков с таблицей разделов GPT, так и с MBR дисков старого формата в режиме совместимости (Legacy).
Перезагрузите компьютер и войдите в меню настройки UEFI. Клавиша входа в меню UEFI зависит от производителя компьютера, как правило, это клавиши F2, F8, Del или Esc. Либо на нажмите кнопку ESC прямо на экране с ошибкой.
- Попробуйте в настройках UEFI включить режим совместимости CSMBoot (в некоторых версиях прошивок UEFI он может называться Legacy Boot);
- В настройках UEFI найдите и отключите режим Secure Boot. Местоположение данной настройки зависит от производителя прошивки UEFI. Как правило, ее стоит поискать в разделах Security, Authentication или Boot. На ноутбуке HP, например, пункт Secure Boot находится в разделе Security. Измените режим Secure Boot на Disabled или Off;
Автоматическое восстановление загрузчика Windows
Попробуйте исправить ошибку с помощью средства автоматического восстановления системы. Для этого:
- Загрузитесь с установочного DVD диска (или загрузочной UEFI флешки) с Windows 10;
- Нажмите кнопку Repairyourcomputer (Восстановить ваш компьютер) или клавишу R;
- Перейдите в раздел Troubleshoot-> Advancedoptions-> Startuprepair(Диагностика -> Дополнительные параметры -> Восстановление системы);
- Запустится мастер восстановления. Далее следуйте его инструкциям.
Если установочного диска с Windows под рукой нет, следует три раза перезагрузить компьютер нажатием на кнопку питания (Power) до тех пор, пока не появится экран консоли восстановления WinRe. Выберите пункт See advanced repair options (Дополнительные варианты восстановления). Далее все аналогично.
Отключите функцию защиты ELAM
Если предыдущие методы не исправили ошибку с загрузкой winload.efi, попробуйте отключить технологию ранней защиты от вредоносного ПО — ELAM (Early-launch Anti-Malware), которая по умолчанию активна для загрузчика Windows.
- Выполните шаги 1-2 из 2 способа;
- Перейдите в раздел Troubleshoot->Advancedoptions-> Startupsettings(Диагностика ->Дополнительные параметры -> Восстановление при загрузке);
- Перезагрузите компьютер, нажав кнопку Restart;
- После следующей загрузки, система автоматически откроет меню настройки параметров загрузки — StartupSetting / Параметры загрузки (кстати, именно отсюда можно Windows 10 в безопасном режиме);
- Нажмите F8 чтобы выбрать пункт 8)Disableearlylaunchanti-malwareprotection/ Отключить автоматическую перезагрузки при сбое системы.
Выполните проверку дисков на ошибки и целостность системных файлов
Проверьте свои диски на наличие ошибок, возможно имеются ошибки диска или файловой системы на разделе с файлом winload.efi. Чтобы проверить все диски на наличие ошибок и исправить их, выполните команду:
После этого желательно проверить целостность системных файлов с помощью утилиты sfc. Для использования утилиты sfc в офлайн режиме, нужно указать путь к системному диску и папке Windows. Вы можете определить букву диска, назначенную разделу Windows с помощью команды:
Bcdedit /enum | find «osdevice»
Предположим, в вашем случае это диск D:. Команда проверки системных файлов будет выглядеть так:
sfc /scannow /offboot=d:\ /offwindir=d:\windows
Также нужно выполнить офлайн проверку хранилища компонентов Windows с помощью DISM. Нужно сравнить ваш образ с оригинальным установочным wim файлом вашего билда Windows 10 (предположим, оригинальный wim образ лежите на диске E:):
Dism /image:D:\ /Cleanup-Image /RestoreHealth /Source:E:\sources\install.wim
Восстановление BCD загрузчика и файла winload.efi для UEFI системы
Если ваша Windows 10 была установлена в нативном UEFI режиме на GPT диске, мы рекомендуем вам воспользуетесь инструкцией по пересозданию EFI загрузчика Windows 10 на устройствах с UEFI . Рекомендую воспользоваться статьей по ссылке, там все описано довольно подробно. Здесь оставлю короткий гайд:
Загрузитесь с загрузочного диска и запустите командную строку:
- Выполните команду: diskpart
- Выведите список разделов на дисках: list volume
- айдите раздел с меткой ESP или EFI размером 500 мб (размер и название раздела может отличаться в зависимости от версии Windows, но главное – его файловая система всегда должна быть FAT32). Запомните его номер. Если EFI раздел был случайно удален, его можно восстановить так;
- Выберите этот раздел: select volume 2
- Назначьте разделу букву диска: assign letter=Z
- Выйдите из diskpart: exit
- Теперь нужно пересоздать загрузчик, скопировать загрузочные файлы из каталога Windows: bcdboot c:\Windows /s Z: /f ALL (замените c:\ на букву диска, на котором у вас находится ОС); Если вы все сделали правильно, появится надпись Boot files successfully created ;
- Перезагрузите компьютер и проверьте, исправлена ли проблема.
Пересоздание загрузочных записей в хранилище BCD с помощью bootrec и bcdedit
Если у вас система установлена не в режиме UEFI, тогда вы можете восстановить пересоздать загрузочные записи и сам MBR загрузчик Windows с помощью утилиты bootrec.
- Выполните шаги 1-2 из 2 способа;
- Перейдите в раздел Troubleshoot > Command Prompt (Диагностика – Командная строка).
- В открывшемся окне командной строки выполните последовательно команды:
bootrec /FixMbr
(запись основной загрузочной записи в системный раздел)
bootrec /FixBoot
(перезапись нового загрузочного сектора в системном разделе)
bootrec /ScanOs
(сканирование дисков на предмет наличия установленных ОС)
bootrec /RebuildBcd
(пересоздание конфигурации загрузчика) - Закройте командную строку командой:
exit - Перезагрузите компьютер.
Если предбудущий способ не помог, нужно пересоздать файл конфигурации загрузки для MBR в командной строке консоли восстановления или загрузочного диска:
bcdedit /set
bcdedit /set
bcdedit /set
bcdedit /set
bcdedit /set
bcdedit /set
Перезагрузите компьютер и проверьте, исправлена ли проблема.