В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный EFI раздел Windows на компьютере с UEFI. Мы рассмотрим простой способ ручного пересоздания загрузочного EFI и MSR разделов в Windows, который позволит вам загрузить ОС после случайного форматирования или удаления EFI раздела. Инструкции в статье актуальны для всех версий Windows, начиная с Win 7 и до Windows 10.
Итак, предположим, что каким-то образом случайно (или не очень случайно, например при попытке удалить с диска OEM разделы производителя) был удален или отформатирован загрузочный EFI раздел на компьютере с UEFI (не BIOS), в результате чего Windows 10 / 8.1 / 7 перестала загружаться, циклически предлагая выбрать загрузочное устройство (Reboot and select proper boot device or insert boot media in selected). Разберемся можно ли восстановить работоспособность Windows при удалении раздела с загрузчиком Boot Manager без переустановки ОС.
Предупреждение. Инструкция предполагает работу с разделами диска и не предназначена новичкам. В случае неверной интерпретации команд, вы можете случайно удалить все данные на жестком диске. Также настоятельно рекомендуется создать резервную копию важных данных на отдельном носителе.
Структура разделов GPT диска для Windows.
Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска с GPT разметкой на UEFI системе. Как минимум должны присутствовать следующие разделы:
- Системный раздел EFI (Extensible Firmware Interface, или EFI System Partition — ESP) с загрузчиком – 100 Мб (тип раздела — EFI);
- Резервный раздел Майкрософт – 128 Мб (тип раздела — MSR);
- Основной раздел Windows – раздел с Windows.
Это именно минимальная конфигурация. Эти разделы создает установщик Windows при чистой установке системы на неразмеченный диск. Производители ПК или сами пользователи могут дополнительно создавать собственные разделы, содержащие, к примеру среду восстановления Windows в файле winre.wim (Windows RE), раздел с резервным образом системы от производителя (позволяет откатится к исходному состоянию компьютера), пользовательские разделы и т.д.
Раздел EFI c файловой системой FAT32 является обязательным на дисках с GPT разметкой на UEFI системах и имеет GUID c12a7328-f81f-11d2-ba4b-00a0c93ec93b . Стандартный размер EFI раздела 100Мб (на дисках расширенного формата с секторами 4Кб /4K Native / размер EFI раздела 260Мб).
MSR раздел (Microsoft System Reserved)на GPT диске используется для упрощения управления разделами и используется для служебных операций (например, при конвертирования диска из простого в динамический). Это резервный раздел c GUID e3c9e316-0b5c-4db8-817d-f92df00215ae, которому не назначается код раздела. На этом разделе нельзя хранить данные пользователя. В Windows 10 размер MSR раздела – всего 16 Мб (в Windows 8.1 размер MSR раздела – 128 Мб), файловая система – NTFS. MSR раздел должен находиться между разделами EFI (ESP) и первичным разделом с операционной системой Windows.
На основном разделе находится установленная Windows, программы и данные пользователя. Могут присуствовать дополнительные разделы с данными.
Совет. Для установки Windows на компьютерах с UEFI понадобится оригинальный DVD или специально подготовленная загрузочная флешка c Windows 10 для UEFI компьютера (или установочная флешка с Windows Server).
Что будет, если в Windows 10 отсутствует раздел EFI?
На EFI разделе (по аналогии с разделом System Reserved на дисках с MBR разметкой) хранитмя хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. При загрузке компьютера среда UEFI загружает загрузчик (EFI\Microsoft\Boot\bootmgfw.efi) с раздела EFI (ESP) и передает управление ему. Исполняемый файл bootmgfw.efi выполняет запуск основного загрузчика Windows Boot Manager, который загружает данные конфигурации из BCD. После загрузки BCD начинается загрузка Windows через winload.efi.
Если раздел EFI удален или поврежден, вы не сможете загрузить Windows с такого диска. Появится ошибка UEFI: could not locate \efi\boot\bootx64.efi – not found , пустой UEFI Shell с предложением указать загрузочное устройство.
Также вы не сможете загрузить Windows, если EFI раздел отформатирован в файловой системе NTFS. Даже при чистой установке Windows в таком случае вы получите ошибку:
Windows detected that the EFI system partition was formatted as NTFS. Format the EFI system partition as FAT32, and restart the installation.
Установлено, что системный раздел EFI отформатированный в NTFS. Отформатируйте системный раздел EFI в формате FAT32 и перезапустите программу установки.
Как вручную создать EFI и MSR разделы на GPT диске?
Т.к. ОС не загружается корректно, нам понадобится установочный диск с Windows 10 (Win 8 или 7) или любой другой загрузочный диск. Итак, загрузитесь с установочного диска и на экране начала установки нажмите комбинацию клавиш Shift+F10. Должно открыться окно командной строки:
Запустите утилиту управления дисками и разделами:DiskpartВыведите список жестких дисков в системе (в этом примере он один, disk 0. Звездочка (*) в столбце Gpt означает, что диск использует GPT таблицу разделов).
Если в столбце GPT отсуствует *, значит на диске MBR таблица разделов. Вам нужно убедиться, что ранее вы загружали компьютер в нативном UEFI режиме (иначе следовать данной инструкции бессмысленно). Если вы уверены, что тип таблицы разделов сменился, возможно его нужно стоит переконвертировать из MBR в GPT.
list diskВыберите этот диск:
Select disk 0Выведите список разделов на диске:
List partition
В нашем примере в системе осталось всего 2 раздела:
- Раздел MSR — 128 Мб
- Системный раздел с Windows – 9 Гб
Как вы видите, раздел EFI отсутствует (удален).
Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Удалить оставшийся раздел можно с помощью графической GParted или непосредственно из командной строки (именно так и поступим).
Важно! Здесь будьте максимально внимательными и не удалите случайно раздел с Windows или разделы с пользовательскими данными (если таковые имеются).Выберите раздел для удаления:
Select partition 1И удалите его:
Delete partition overrideУбедитесь, что остался только раздел с Windows размером 9 Гб (в нашем случае):
List partition
Теперь вы можете ручную пересоздать разделы EFI и MSR для размещения загрузчиков. Для этого в контексте утилиты diskpart последовательно выполните команды:
Выберите диск:
select disk 0Создайте EFI раздел размером 100 Мб, отформатируйте его в файловой системе FAT32 и назначьте ему букву диска:
create partition efi size=100Убедитесь, что в diskpart выбран раздел 100 Мб (звездочка напротив строки Partition 1):
list partitionТеперь нужно создать MSR раздел размером 128 мб (в Windows 10 размер MSR раздела можно сделать всего 16 Мб).
select partition 1
format quick fs=fat32 label="System"
assign letter=G
create partition msr size=128В нашем случае основному разделу с Windows уже назначена буква диска C:, если это не так, назначьте ему букву следующим образом:
list partition
list vol
select vol 1
assign letter=C
exit
Восстановление EFI загрузчика и BCD в Windows.
После того, как вы создали минимальную структуру разделов для GPT диска на компьютере с UEFI, можно переходить к копированию загрузочных файлов EFI на диск и созданию конфигурационного файла загрузчика (BCD).
Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:
mkdir G:\EFI\Microsoft\BootПересоздайте конфигурацию загрузчика Windows:
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot
g:Вы можете заменить надпись “My Windows 10”, на любую другую.
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 7” /application osloader
Совет. Если на разделе EFI были повреждены только файлы среды EFI, а сам раздел остался на месте, вы можете пропустить процесс пересоздания разделов с помощью diskpart. В большинстве случаев достаточно восстановить загрузчик по статье Восстановление EFI загрузчика в Windows. Если у вас компьютер с BIOS и MBR диск, вы можете пересоздать BCD так.
Команда возвращает GUID созданной записи. Этот GUID нужно подставить в следующей команде вместо {your_guid}.
bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}
Дальнейшие команды bcdedit выполняются в контексте {default}:
bcdedit /store BCD /set {default} device partition=c:
bcdedit /store BCD /set {default} osdevice partition=c:
bcdedit /store BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store BCD /set {default} systemroot \Windows
exit
Перезагрузите компьютер … В нашем случае с первого раза он не загрузился, пришлось дополнительно поплясать с бубном:Отключите питание компьютера;
- Отключите (физически) жесткий диск;
- Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found.
- Выключите компьютер;
- Подключите диск обратно.
Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFI\Microsoft\Boot\bootmgrfw.efi на EFI разделе.
В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.
Совет. Если что-то не заработало, рекомендуем проверить, что загрузочный флаг (boot flag) установлен только у раздела EFI. Проще всего в этом убедится с помощью LiveCd GParted.