Восстановление удаленного загрузочного EFI раздела в Windows
В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный EFI раздел Windows на компьютере с UEFI. Этот простой способ ручного пересоздания загрузочного EFI и MSR разделов Windows позволит вам загрузить ОС после случайного форматирования или удаления загрузочного EFI раздела. Инструкции в статье актуальны для всех версий Windows (в том числе Windows 10 и 11, и Windows Server).
Если вы случайно (или не очень случайно, например при попытке удалить с диска OEM разделы производителя) удалили или отформатировали загрузочный EFI раздел на компьютере с UEFI (не BIOS), ваша Windows 11/10/8.1 /7 перестанет загружаться и будет циклически предлагать выбрать загрузочное устройство (
Reboot and select proper boot device or insert boot media in selected
или
Windows Boot Manager: No media
). Далее мы покажем, как восстановить загрузку Windows при удалении раздела диска с загрузчиком Boot Manager без переустановки ОС.
Предупреждение. Инструкция предполагает работу с разделами диска и не предназначена новичкам. В случае неверной интерпретации команд, вы можете случайно удалить все данные на жестком диске. Также настоятельно рекомендуется создать резервную копию важных данных на отдельном носителе.
Структура разделов GPT диска для Windows
Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска Windows с GPT разметкой на UEFI компьютере. Как минимум должны присутствовать следующие разделы:
- Системный раздел EFI (Extensible Firmware Interface, или EFI System Partition — ESP) с загрузчиком – 100 Мб (тип раздела — EFI);
- Резервный раздел Майкрософт (Microsoft Reserved) – 128 Мб (тип раздела — MSR);
- Основной раздел Windows – раздел с Windows.
Это именно минимальная конфигурация. Эти разделы создает установщик Windows при чистой установке системы на неразмеченный диск.
Производители компьютеров или сами пользователи могут дополнительно создавать собственные разделы, содержащие, к примеру раздел Recovery со средой восстановления 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 и 11 размер MSR раздела – всего 16 Мб (в Windows 8.1 размер MSR раздела – 128 Мб), файловая система – NTFS. MSR раздел должен находиться между разделами EFI (ESP) и первичным разделом с операционной системой Windows.
На основном разделе с файловой системой NTFS находится установленная Windows, программы и данные пользователя. Также на диске могут присутствовать дополнительные разделы с данными.
Что будет, если в Windows отсутствует раздел EFI?
На EFI разделе (по аналогии с разделом System Reserved на дисках с MBR разметкой) хранится хранилище конфигурации загрузки (BCD) и ряд файлов, необходимых для загрузки Windows. При загрузке компьютера среда UEFI загружает загрузчик (EFIMicrosoftBootbootmgfw.efi) с раздела EFI (ESP) и передает управление ему. Исполняемый файл bootmgfw.efi выполняет запуск основного загрузчика Windows Boot Manager, который загружает данные конфигурации из BCD. После загрузки BCD начинается загрузка Windows через winload.efi.
При загрузке UEFI компьютера он ищет системный раздел EFI на всех подключенных дисках. Если раздел EFI удален или поврежден, вы не сможете загрузить Windows с такого диска. Появится ошибка UEFI:
could not locate efibootbootx64.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 не загружается корректно, нам понадобится загрузочное устройство с Windows 10/11 или любой другой загрузочный диск (см. как создать загрузочную USB флешку c Windows для UEFI компьютера). Загрузите компьютера с установочного диска и на экране начала установки нажмите комбинацию клавиш Shift+F10. Должно открыться окно командной строки
Запустите утилиту управления дисками и разделами:
Diskpart
Выведите список жестких дисков в системе:
list disk
В этом примере к компьютеру подключен только один disk 0. Звездочка (*) в столбце Gpt означает, что на диск создана таблица разделов GPT).
Выберите этот диск:
Select disk 0
Выведите список разделов на диске:
List partition
В нашем примере в системе осталось всего 3 раздела:
- Раздел Reserved (MSR) — 16 Мб
- Системный раздел с Windows – 30 Гб
- Recovery (раздел восстаовления0) – 541 Мб
Как вы видите, раздел EFI (может называться System) отсутствует (удален).
Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Вы можете удалить оставшийся раздел с помощью графической утилиты GParted или непосредственно из командной строки (именно так и поступим).
Важно! Здесь будьте максимально внимательными и не удалите случайно раздел с Windows или разделы с пользовательскими данными (если таковые имеются).
Выберите раздел для удаления:
Select partition 1
И удалите его:Delete partition override
Убедитесь, что остался только Primary раздел с Windows размером 30 Гб (в нашем случае) и раздел восстановления:
List partition
Теперь вы можете вручную создать разделы EFI и MSR для размещения загрузчика Windows. Для этого в контексте утилиты diskpart последовательно выполните команды:
Выберите диск:
select disk 0
Создайте EFI раздел размером 100 Мб, отформатируйте его в файловой системе FAT32 и назначьте ему букву диска:
create partition efi size=100
Убедитесь, что в diskpart выбран раздел 100 Мб с именем System (звездочка напротив строки Partition 1):
list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G
Теперь нужно создать MSR раздел размером 16 Мб (для Windows 10 и 11):
create partition msr size=16
list partition
list vol
В нашем случае основному разделу с Windows уже назначена буква диска C:. Если это не так, назначьте ему букву следующим образом:
select vol 1
assign letter=C
exit
Назначьте букву диска вашему EFI разделу:
Select vol 3
Assign letter=G
Закройте diskpart:
exit
При создании EFI или MSR раздела может появится ошибка
No usable free extent could be found. It may be that there is insufficient free space tocreate a partition at the specified size and offset. Specify different size and offset values or don't specify either to create the maximum sized partition. It may be that the disk is partitioned using the MBR disk partitioning format and the disk contains either 4 primary partitions, (no more partitions may be created), or 3 primary partitions and one extended partition, (only logical drives may be created).
В этом случае вам нужно уменьшить раздел основного раздела с Windows на 128 Мб(в нашем примере это volume 1):
select volume 1
shrink desired=128 minimum=128
После этого создайте разделы EFI и MSR как описано выше.
Восстановление EFI загрузчика и BCD в Windows
После того, как вы создали минимальную структуру разделов для GPT диска на компьютере с UEFI, нужно скопировать загрузочные файлы EFI на ваш диск и создать конфигурационный файла загрузчика (BCD).
Теперь с помощью утилиты bcdboot.exe скопируйте файлы среды загрузки UEFI из системного каталога Windows в загрузочный EFI раздел и пересоздайте конфигурацию загрузчика BCD. Выполните команду:
bcdboot c:windows /s G: /f UEFI
Boot files successfully created.
В результате на EFI разделе будет создана структура каталогов. На системном разделе EFI должны обязательно присутствовать следующие файлы:
- EFIMicrosoftBootbootmgfw.efi
- EFIMicrosoftBootbootmgr.efi
- EFIMicrosoftBootmemtest.efi
- EFIMicrosoftBootBCD
- EFIMicrosoftBootFontswgl4_boot.ttf
- EFIBootbootx64.efi
Выведите текущую конфигурацию загрузчика Windows Boot Manager. В разделе {bootmgr} должна появиться запись, которая указывает на раздел с файлом управления загрузкой UEFI (
EFIMICROSOFTBOOTbootmgfw.efi
). В этом примере это
partition=G
, или
partition=DeviceHarddiskVolume2
(если вы не назначили букву EFI разделу).
Загрузчик UEFI затем должен передать управление файлу загрузчика Windows Boot Loader
Windowssystem32winload.efi
на partition=C:
Перезагрузите компьютер (для перезагрузки из среды WinPE нужно выполнить команду wpeutil reboot) и извлеките загрузочную флешку.
Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:
mkdir G:EFIMicrosoftBoot
xcopy /s C:WindowsBootEFI*.* G:EFIMicrosoftBoot
Пересоздайте конфигурацию загрузчика Windows:
g:
cd EFIMicrosoftBoot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “Windows 10” /application osloader
Команда возвращает GUID созданной записи. Этот GUID нужно подставить в следующей команде вместо
{your_guid}
.
bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path EFIMicrosoftBootbootmgfw.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 WindowsSystem32winload.efi
bcdedit /store BCD /set {default} systemroot Windows
exit
Если с первого раза Windows не загрузился, выполните следующие действия:
- Отключите питание компьютера;
- Отключите (физически) жесткий диск;
- Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found. Выключите компьютер;
- Подключите диск обратно.
Если это не помогло, опять загрузитесь с установочной USB флешки и выполните команду:
bootrec /rebuildbcd
Перезагрузите компьютер
Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFIMicrosoftBootbootmgrfw.efi на EFI разделе.
В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.
Совет. Если что-то не заработало, рекомендуем проверить, что загрузочный флаг (boot flag) установлен только у раздела EFI. Проще всего в этом убедится с помощью LiveCd GParted.
В некоторых случаях после пересоздания разделов EFI и MSR и восстановления BCD Windows может перестать корректно выключаться. Если у вас проявляется эта проблема, чтобы исправить ее нужно отключить функцию быстрого запуска в Windows в настройках электропитания компьютера:
- Откройте панель управления электропитанием
powercfg.cpl
; - Выберите Choose what the power buttons does;
- Нажмите кнопку Change settings that are currently unavailable и отключите опцию «Turn on fast startup» в разделе «Shutdown settings».
Windows 11
Восстановление удаленного загрузочного EFI раздела в Windows