Как восстановить удаленный системный раздел EFI в Windows

В этой статье мы расскажем вам, как вручную восстановить случайно удаленный загрузочный раздел EFI Windows на компьютере с UEFI. Этот простой способ ручного восстановления загрузочных разделов EFI и MSR Windows позволит вам загрузить операционную систему после случайного форматирования или удаления раздела EFI. Данное руководство актуально для всех версий Windows (включая Windows 10 и 11, а также Windows Server 2022/2019/2016).

Предположим, что загрузочный раздел EFI на компьютере с UEFI (не BIOS) был случайно удален или отформатирован (например, когда вы пытались переместить или удалить раздел восстановления OEM). В результате Windows 11/10/8.1/7 загружается некорректно и циклически предлагает выбрать загрузочное устройство (Reboot and select proper boot device or insert boot media in selected boot device and press a key). Далее мы покажем, как восстановить загрузку Windows после удаления раздела системного диска EFI (с помощью диспетчера загрузки и конфигурации BCD) без переустановки ОС.

Предупреждение. Данное руководство предполагает работу с разделами диска и не предназначено для новичков. При неправильной интерпретации команд вы можете случайно удалить все данные на жестком диске. Также настоятельно рекомендуется создавать резервные копии важных данных на отдельном носителе.

Разделы жесткого диска на основе UEFI/GPT в Windows

Рассмотрим, как должна выглядеть стандартная таблица разделов загрузочного жесткого диска с таблицей разделов GUID (GPT) на компьютере с UEFI. У вас должны быть как минимум следующие разделы:

  • Системный раздел EFI (ESP — Extensible Firmware Interface) — 100 МБ (тип раздела — EFI);
  • Зарезервированный раздел Microsoft — 16 МБ (тип раздела — MSR);
  • Основной раздел Windows (раздел, содержащий Windows).

Партиции efi по умолчаниюПартиционирование efi по умолчанию

Это минимальная конфигурация. Эти разделы создаются программой установки Windows во время чистой установки ОС на неформатированный диск.

Производители компьютеров или пользователи могут создавать дополнительные разделы, содержащие, например, среду восстановления Windows (Windows RE) в файле winre.wim, раздел с резервной копией образа системы, предоставляемой производителем комплектующих (позволяет откатиться к исходному состоянию компьютера), пользовательские разделы и т. д.

Раздел EFI с файловой системой FAT32 является обязательным разделом на GPT-дисках на компьютерах с UEFI и имеет GUIDc12a7328-f81f-11d2-ba4b-00a0c93ec93b. По умолчанию размер раздела EFI составляет 100 МБ (на дисках расширенного формата с секторами по 4 КБ размер раздела EFI составляет 260 МБ).

Раздел MSR (Microsoft System Reserved) на GPT-диске используется для упрощения управления разделами и применяется для служебных операций (например, при преобразовании диска из базового в динамический). Это раздел с меткой GUID e3c9e316-0b5c-4db8-817d-f92df00215ae, при этом буква диска не назначается. В этом разделе не могут храниться пользовательские данные. В Windows 10 и 11 размер раздела MSR составляет всего 16 МБ (в Windows 8.1 размер MSR составляет 128 МБ), а файловая система — NTFS. Раздел MSR должен находиться между системным разделом EFI (ESP) и основным разделом операционной системы Windows.

[основной раздел с файловой системой NTFS содержит установленную Windows, программы и пользовательские данные. На диске также могут быть дополнительные разделы с данными.

Отсутствие раздела EFI в Windows

В разделе EFI (аналогичном разделу System Reserved на дисках с таблицей разделов MBR) хранится хранилище конфигурации загрузки (BCD) и несколько файлов, необходимых для загрузки Windows. Когда компьютер загружается, среда UEFI загружает файл загрузчика (EFI\Microsoft\Boot\bootmgfw.efi) из раздела EFI System (ESP) и передает ему управление. Исполняемый файл bootmgfw.efi запускает программу Диспетчер загрузки Windows, который загружает данные конфигурации из BCD. После загрузки BCD Windows начинает загружаться с помощью файла winload.efi.

uefi менеджер загрузки windows: установка пути bootmgfw.efiuefi windows boot manager: set bootmgfw.efi path

Когда компьютер с UEFI загружается, он ищет системный раздел 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.

Как создать системные и MSR-разделы EFI на GPT-диске?

Поскольку Windows работает некорректно, нам понадобится установочный диск Windows 10/11 (см. как создать загрузочный USB-накопитель UEFI с установочными файлами Windows) или любой другой загрузочный/спасательный носитель. Загрузитесь с установочного носителя и нажмите кнопку Shift+F10 на первом экране установки. Должно открыться окно командной строки.

Запустите инструмент управления дисками и разделами:
Diskpart
Перечислите жесткие диски, подключенные к компьютеру:

list disk

В нашем примере имеется только один диск 0 подключен. Звездочка (*) в столбце GPT означает, что на диске создана таблица разделов GUID.

diskpart check gpt partition tablediskpart проверка таблицы разделов gpt

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

Выберите этот диск:
Select disk 0
Отображение списка разделов на диске:
List partition
В моем примере на диске осталось только три раздела:

  • Раздел MSR — 16 МБ
  • Системный раздел Windows — 30 ГБ
  • Раздел восстановления — 541 МБ

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

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

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

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

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

Выберите раздел для удаления:
Select partition 1
И удалите его:
Delete partition override
Убедитесь, что остался только основной раздел Windows размером 30 ГБ и раздел восстановления (в нашем случае):
List partition
удаление разделов msr и efi с помощью diskpartудаление разделов msr и efi с помощью diskpart

Теперь вы можете вручную создать разделы EFI и MSR для размещения файлов загрузчика Windows. Для этого выполните поочередно следующие команды в контексте diskpart.

Выберите диск:
select disk 0
Создайте раздел EFI размером 100 МБ:
create partition efi size=100
Убедитесь, что раздел размером 100 МБ выбран в diskpart (звездочка перед Partition 1). Отформатируйте раздел EFI в файловой системе FAT32 и назначьте ему букву диска:
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

В моем случае буква диска C: уже назначена основному разделу Windows. Если это не так, назначьте ему букву диска следующим образом:
select vol 1
assign letter=C
exit

diskpart: create efi partitiondiskpart: create efi partition

Закройте diskpart:

exit

При создании раздела EFI или MSR с помощью diskpart может возникнуть ошибка:

No usable free extent could be found. It may be that there is insufficient free space to create 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:No usable free extent could be founddiskpart:No usable free extent could be found

Это означает, что на диске недостаточно нераспределенного (свободного) пространства для нового раздела. В этом случае необходимо уменьшить размер основного раздела Windows (в нашем примере это том 1) на 128 МБ:

select volume 1
shrink desired=128 minimum=128

уменьшить раздел с помощью diskpartуменьшить раздел с помощью diskpart

Затем создайте разделы EFI и MSR, как описано выше.

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

После создания минимальной структуры разделов диска GPT на компьютере с UEFI можно приступить к копированию загрузочных файлов EFI в новый раздел и созданию файла конфигурации загрузчика (BCD).

Теперь воспользуйтесь командой bcdboot.exe инструмент для копирования файлов среды загрузки UEFI из системного каталога Windows в загрузочный раздел EFI и воссоздания конфигурации загрузчика BCD. Выполните команду:

bcdboot c:\windows /s G: /f UEFI

Boot files successfully created.

bcdboot: восстановление загрузчика uefi на windows 10 и 11bcdboot: восстановление загрузчика uefi на windows 10 и 11

В результате на разделе EFI будет создана предопределенная структура каталогов. На системном томе EFI должны присутствовать следующие файлы:

  • \EFI\Microsoft\Boot\bootmgfw.efi
  • \EFI\Microsoft\Boot\bootmgr.efi
  • \EFI\Microsoft\Boot\memtest.efi
  • \EFI\Microsoft\Boot\BCD
  • \EFI\Microsoft\Boot\Fonts\wgl4_boot.ttf
  • \EFI\Boot\bootx64.efi

Укажите текущую конфигурацию загрузчика Windows Boot Manager. В разделе {bootmgr} должна появиться запись, указывающая на раздел, содержащий файл управления загрузкой UEFI (\EFI\MICROSOFT\BOOT\bootmgfw.efi). В нашем примере это partition=G , или partition=\Device\HarddiskVolume2 (если вы не назначили букву диска для раздела EFI).

Затем загрузчик UEFI должен передать управление файлу Windows Boot Loader \Windows\system32\winload.efi на partition=C:

bcdbedit: показать конфигурацию диспетчера загрузки windows, проверить путь к bootmgfw.efibcdbedit: показать конфигурацию диспетчера загрузки windows, проверить путь bootmgfw.efi

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

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

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

mkdir G:\EFI\Microsoft\Boot

xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot

копирование файлов efiкопирование файлов efi

Перестройте запись Boot Configuration Data (BCD) в диспетчере загрузки Window:
g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “My Windows 10” /application osloader

Команда возвращает GUID созданной записи BCD. Используйте этот 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}

bcdbedit: создать загрузочную запись для системного раздела efibcdbedit: создание загрузочной записи для системного раздела efi

Следующие команды 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

Если Windows не загрузилась правильно с первого раза, попробуйте выполнить следующие действия:

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

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

bootrec /rebuildbcd

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

bootrec rebuildbcdbootrec rebuildbcd

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

В некоторых меню UEFI, по аналогии, необходимо изменить приоритет загрузочных разделов.

efi boot option FI\Microsoft\Boot\bootmgrfw.efiefi boot option FI\Microsoft\Boot\bootmgrfw.efi

После всех этих действий Windows должна загрузиться правильно.

Совет. Если что-то не работает, рекомендуется убедиться, что только раздел EFI имеет флаг загрузки. Это можно сделать с помощью GParted LiveCD.

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

  1. Откройте Параметры электропитания в Панели управления powercfg.cpl;
  2. Выберите Выберите, что делает кнопка питания;
  3. Нажмите на кнопку Изменить настройки, которые в данный момент недоступны кнопку и отключить кнопку «Включить быстрый запуск» в разделе «Настройки выключения».отключение быстрого запуска на windows 10/11отключить быстрый запуск на windows 10/11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *