Как восстановить загрузчик EFI Windows 7 и Windows 10?
В этой статье мы попробуем восстановить загрузчик EFI для Windows 7/8/10. Чуть ранее мы уже разбирали восстановление загрузки для таблицы MFT на примере Windows 7. Сейчас же позволю себе сразу отметить, что повреждение загрузчика в нашем случае чаще всего (помимо прочего) вызывается:
С помощью представленных инструментов можно будет попробовать восстановить загрузчик EFI, который отказывается загрузить систему из-за отсутствующего или битого файла конфигурации по адресу:
Скрытый диск:\EFI\Microsoft\Boot\BCD
Вот, кстати, его примерное содержимое из Heren’s BootCD:
Структура разделов в таблице GPT на Windows, загруженной в режиме UEFI, чаще всего выглядит так:
где
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.
О том, что файл по указанному выше адресу 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:
…то наша утилита просто его не видит. Т.е. не видит сам загрузчик, а то и весь раздел. В общем, не спасают и традиционные средства восстановления, созданные на такой случай:
diskpart list volume
select volume * assign letter Y: exit
После закрытия программы отправляемся в этот раздел:
cd /d Y:\EFI\Microsoft\Boot\
Здесь появляется небольшое отступление. Этот путь существует по умолчанию, и причин, чтобы консоль вам отказала в переходе в указанную папку, нет. Если ошибка появилась, см. абзац Возможные ошибки или сразу переходите к следующей части Как восстановить загрузчик EFI Windows 7/10: пересоздаём EFI.
bootrec /fixboot
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 на жёстком диске и проверяем.
Администратора здесь могут подстерегать некоторые ошибки. Среди них наиболее часто появляются:
chkdsk с: /а
где с – диск с системой
bootrec /fixboot
Самое главное здесь – не промахнитесь с разделом/лами и не удалите тот из них, в котором хранятся данные Windows и ваша информация. Итак, раз bootrec.exe попасть в нужный нам раздел не смогла, раздел убираем. Для этого нам будет нужно вернуться в diskpart.exe, снова определиться с разделами и выбрать тот, что на 100 Мб. Возвращаемся в ремонтную консоль:
cd /d x:
И начинаем заново:
diskpart select disk 0 list partition select partition 2
удаляем его:
delete partition override
можно проверить результат:
list partition
У нас осталось некоторое нераспределённое пространство, в котором мы заново создаём удалённый только что раздел:
create partition efi size=100 list partition select partition 2 format quick fs=fat32 label="System"
Но при попытке присвоить применявшуюся ранее букву Y, консоль ответила отказом (надо было её перезапускать). Я присвою разделу букву Z:
assign letter=Z
exit
Подготовим почву для bootrec.
mkdir Z:\EFI\Microsoft\Boot
xcopy /s C:\Windows\Boot\EFI\*.* Z:\EFI\Microsoft\Boot
bootrec /scanos
Никуда они не денутся, если вы их случайно не удалили, или они не попали в зону бэд-секторов. Остаётся…
bootrec /rebuildbcd
Выключаем компьютер, флешку вынимаем и включаем машину. Ждём появления Windows. Дайте ей загрузиться до Рабочего стола и проверяйте, всё ли на месте.
Не беспокойтесь. Если вы вникли в процесс, и все команды вводили осознанно и корректно, ситуация, скорее всего, уже исправлена. Просто следует учесть особенности своеобразных фильтров безопасности, принятых для режима UEFI, и не путать буквы дисков. Их можно пройти, проделав такие шаги:
У меня всё. Успехов.
Посмотреть комментарии
В фразе [i]Здесь можно провести некую аналогию со знакомым всем Зарезервированным разделом в MFT таблицах, в котором лежит файл конфигурации BCD плюс файлы для загрузки системы. [/i] MFT стоит поменять MBR.
Хотя, аналогия не самая удачная - такой раздел есть и при GPT разметке в 7-ке.
Да, спасибо. От фразы лучше избавиться.
У вас в тексте серьезная ошибка, которая может привести к удалению диска C:
_____________________________________________________________________________________________
"У нас осталось некоторое нераспределённое пространство, в котором мы заново создаём удалённый только что раздел:
create partition efi size=100
list partition
select partition 1
format quick fs=fat32 label="System""
_____________________________________________________________________________________________
В Вашем случае надо писать select partition 2 (как на фото, там отмечено правильно). Ибо partition 1, как я понимаю, это диск на котором установлена Windows, и его форматировать совсем не нужно.
Исправлено. Благодарю за внимание и отсутствие оскорблений.
Что Вы, какие же оскорбления могут быть?? Не ошибается тот, кто ничего не делает.
Кстати, ремарка:
На Windows 7 в команде bcdboot ключ /f отсутствует.
Обнаружил это, пытаясь в Windows 7 ввести команду "bcdboot C:\Windows /l ru-ru /s k: /f ALL"
Благодаря Вашей статье я смог восстановить UEFI на Windows 7,
испорченный благодарю поднятию бэкапа с одного жесткого диска на другой, используя Ghost для DOS.
Почему загрузчик испортился, я так и не понял - поднимал с образа отдельно UEFI-partition и partition с диском C. Видимо нужно было копировать весь диск C в файл, но я не знал, сохранит ли он туда UEFI-partition. Но он скорее всего не сохранил бы, так как программа очень старая. Использовал ее потому, что она была на загрузочной DOS-флешке.
Подскажите пожалуйста, можно ли избавиться от UEFI полностью, переделав диск в MBR, как описано здесь - https://qna.habr.com/q/344488 ?
Хочу попробовать этот метод, но опасаюсь потери данных.
Там описано всё верно, только кратко. странно, что у меня нет такой статьи. Я просто предпочитаю программу AOMEI Partition Assistant. Там есть такая функция. Возможно, что она только в PRO версии. Человек в статье использует "живой" диск, значит, работает из-под крякнутой или портативной версии программы. Я, кстати, без труда нашёл ПРОверсию легко, бесплатно, легально в интернете. По поводу потери данных - я конвертировал таким образом таблицы из MBR в GPT и обратно без проблем.
Будет время - напишу статью. У меня, кажется, есть подходящий материал.
То есть получается можно грохнуть UEFI-раздел, диск С: переконвертировать в MBR, назначить его загрузочным и Windows загрузится?
И еще как я понимаю надо в биосе написать Legacy вместо UEFI?
Опции "secret boot" у меня нет в биосе.
Не совсем. Смена загрузок в BIOS опциях, конечно, обязательна. Но для того, чтобы сменить UEfi на Legacy,например, убивать efi раздел вообще не обязательно. Разный принцип загрузки означает, что компьютер будет искать загрузчик на разных разделах. Не обнаружит на одном, будет искать на другом, не заметив "незнакомый". Так что перед конвертацией GPT в MBR следует просто приготовиться и создать отдельный раздел (можно пока пустой), подготовить Legacy-флешку с Windows для запуска с системными утилитами. А потом уже:
- заменить таблицу на MBR
- после перезагрузки загрузиться во флешку с утилитами
- заново создать на новом/пустом разделе Legacy загрузчик BCD, с чем порой элементарно справляется Консоль восстановления загрузки. При этом загрузчик Legacy может уживаться и на системном диске.
Такой вариант позволит вернуться к любому (Legacy или EFI) варианту загрузки Windows. Однако в любом случае данные с системного и других томов не херятся.
Если начнёте тренироваться, подготовьтесь к тому, что ваша BIOS может вообще не понимать, что такое не EFI-принцип загрузки, выдавая синий экран с ошибкой контроллера. И никакие перепрошивки/обновления BIOS не прокатят. Например, HP последних моделей начинают этим грешить. Самый простой способ это проверить - с помощью Rufus записать загрузочную Live-флешку в режиме Legacy и попробовать запустить. Если синий экран - оставьте надежду.
Вопрос:
"Когда мне потребовалось избавиться от UEFI (не только загрузчика, а от этого формата диска вообще) на моём ультрабуке, то я проделал следующее:
1. Сделал бэкап (он не понадобился).*** "
Вот такой способ получается не всегда может сработать, насколько я понял?
Срабатывает. Речь о том, что не нужно удалять загрузочные разделы, пока не убедились в том, что загрузка в Legacy происходит корректно.
P.S. Капча, конечно, барахлит. Но это уже будет проблемой нового хозяина. Блог выставлен на продажу, всё происходящее на нём мне становится всё менее интересным.