Восстановление удаленного загрузочного EFI раздела в Windows

Восстановление удаленного загрузочного 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.

Структура разделов на UEFI системе

Это именно минимальная конфигурация. Эти разделы создает установщик 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.

Windows Boot Manager отсуствует загрузчик Windows bootmgfw.efi на 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).

diskpart вывести список дисков

Если в столбце GPT отсутствует *, значит на диске MBR таблица разделов. Вам нужно убедиться, что ранее вы загружали компьютер в нативном UEFI режиме (иначе следовать данной инструкции бессмысленно). Если вы уверены, что тип таблицы разделов сменился, возможно его нужно стоит переконвертировать из MBR в GPT.

Выберите этот диск:

Select disk 0

Выведите список разделов на диске:

List partition

В нашем примере в системе осталось всего 3 раздела:

  • Раздел Reserved (MSR) — 16 Мб
  • Системный раздел с Windows – 30 Гб
  • Recovery (раздел восстаовления0) – 541 Мб

Как вы видите, раздел EFI (может называться System) отсутствует (удален).

отсутствует efi esp раздел в windows на gpt диске

Совет. Если на разделе EFI были повреждены только файлы среды EFI, а сам раздел остался на месте, вы можете пропустить процесс пересоздания разделов с помощью diskpart. В большинстве случаев достаточно восстановить загрузчик по статье Восстановление EFI загрузчика в Windows . Если у вас компьютер с BIOS и MBR диск, вы можете пересоздать BCD так.

Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Вы можете удалить оставшийся раздел с помощью графической утилиты GParted или непосредственно из командной строки (именно так и поступим).

Важно! Здесь будьте максимально внимательными и не удалите случайно раздел с Windows или разделы с пользовательскими данными (если таковые имеются).

Выберите раздел для удаления:

Select partition 1

И удалите его:
Delete partition override

Убедитесь, что остался только Primary раздел с Windows размером 30 Гб (в нашем случае) и раздел восстановления:

List partition

diskpart удаление лишних разделов

Теперь вы можете вручную создать разделы 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 и msr разделы вручную с помощью diskpart

Назначьте букву диска вашему EFI разделу:

Select vol 3
Assign letter=G

Закройте diskpart:

exit

назначить букву диска efi разделу

При создании 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).

diskpart недостаточно места для создания efi раздела

В этом случае вам нужно уменьшить раздел основного раздела с Windows на 128 Мб(в нашем примере это volume 1):

select volume 1
shrink desired=128 minimum=128

diskpart shrink - уменьшить размер основного разделаumenshit-razdel

После этого создайте разделы 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.

bcdboot c:windows /s G: /f UEFI восстановить загрузчик Windows

В результате на 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:

bcdedit: конфигурация загрузчика windows с bootmgfw.efi

Перезагрузите компьютер (для перезагрузки из среды WinPE нужно выполнить команду wpeutil reboot) и извлеките загрузочную флешку.

Опционально! Вы можете вручную выполнить действия, которые выполняет команда bcdboot. Далее мы покажем, как самостоятельно скопировать системные файлы EFI и пересоздать BCD.

Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:

mkdir G:EFIMicrosoftBoot

xcopy /s C:WindowsBootEFI*.* G:EFIMicrosoftBoot

Копируем загрузочные файлы среды EFI

Пересоздайте конфигурацию загрузчика 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 пересоздать BCD вручную

Дальнейшие команды 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 не загрузился, выполните следующие действия:

  1. Отключите питание компьютера;
  2. Отключите (физически) жесткий диск;
  3. Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found. Выключите компьютер;
  4. Подключите диск обратно.

Если это не помогло, опять загрузитесь с установочной USB флешки и выполните команду:

bootrec /rebuildbcd

Перезагрузите компьютер

bootrec rebuildbcd

Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFIMicrosoftBootbootmgrfw.efi на EFI разделе.

Настройка загрузки в UEFI

В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.

Совет. Если что-то не заработало, рекомендуем проверить, что загрузочный флаг (boot flag) установлен только у раздела EFI. Проще всего в этом убедится с помощью LiveCd GParted.

В некоторых случаях после пересоздания разделов EFI и MSR и восстановления BCD Windows может перестать корректно выключаться. Если у вас проявляется эта проблема, чтобы исправить ее нужно отключить функцию быстрого запуска в Windows в настройках электропитания компьютера:

  1. Откройте панель управления электропитанием
    powercfg.cpl
    ;
  2. Выберите Choose what the power buttons does;настройка электропитания в windows
  3. Нажмите кнопку Change settings that are currently unavailable и отключите опцию «Turn on fast startup» в разделе «Shutdown settings».Отключить быструю загрузку Windows

Windows 11
Восстановление удаленного загрузочного EFI раздела в Windows