Структура разделов GPT диска для Windows
Рассмотрим, как должна выглядеть таблица разделов загрузочного жесткого диска Windows с GPT разметкой на UEFI компьютере. Как минимум должны присутствовать следующие разделы:
- Системный раздел EFI (Extensible Firmware Interface, или EFI System Partition — ESP) с загрузчиком – 100 Мб (тип раздела — EFI);
- Резервный раздел Майкрософт (Microsoft Reserved) – 128 Мб (тип раздела — MSR);
- Основной раздел Windows – раздел с Windows.
https://winitpro.ru/wp-content/uploads/2015/06/default-uefi-disk-partitions-300x134.jpg 300w" alt="Структура разделов на UEFI системе" width="623" height="278" class="aligncenter size-full wp-image-4903" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Это именно минимальная конфигурация. Эти разделы создает установщик 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 загружает загрузчик (EFI\Microsoft\Boot\bootmgfw.efi) с раздела EFI (ESP) и передает управление ему. Исполняемый файл bootmgfw.efi выполняет запуск основного загрузчика Windows Boot Manager, который загружает данные конфигурации из BCD. После загрузки BCD начинается загрузка Windows через winload.efi.
https://winitpro.ru/wp-content/uploads/2015/06/otsutstvuet-zagruzchik-bootmgfw-efi-windows-300x95.jpg 300w" alt="Windows Boot Manager отсуствует загрузчик Windows bootmgfw.efi на EFI разделе " width="624" height="197" class="alignnone size-full wp-image-14919" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
При загрузке 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.
Установлено, что системный раздел EFI отформатированный в NTFS. Отформатируйте системный раздел EFI в формате FAT32 и перезапустите программу установки.
Как вручную создать EFI и MSR разделы на GPT диске?
Т.к. Windows не загружается корректно, нам понадобится загрузочное устройство с Windows 10/11 или любой другой загрузочный диск (см. как создать загрузочную USB флешку c Windows для UEFI компьютера). Загрузите компьютера с установочного диска и на экране начала установки нажмите комбинацию клавиш Shift+F10. Должно открыться окно командной строки
Запустите утилиту управления дисками и разделами:
Diskpart
Выведите список жестких дисков в системе:
list disk
В этом примере к компьютеру подключен только один disk 0. Звездочка (*) в столбце Gpt означает, что на диск создана таблица разделов GPT).
https://winitpro.ru/wp-content/uploads/2015/06/diskpart-vyvesti-spisok-diskov-300x246.png 300w, https://winitpro.ru/wp-content/uploads/2015/06/diskpart-vyvesti-spisok-diskov-768x629.png 768w" alt="diskpart вывести список дисков" width="778" height="637" class="alignnone size-full wp-image-14913" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Выберите этот диск:
Select disk 0
Выведите список разделов на диске:
List partition
В нашем примере в системе осталось всего 3 раздела:
- Раздел Reserved (MSR) — 16 Мб
- Системный раздел с Windows – 30 Гб
- Recovery (раздел восстаовления0) – 541 Мб
Как вы видите, раздел EFI (может называться System) отсутствует (удален).
https://winitpro.ru/wp-content/uploads/2015/06/otsutstvuet-efi-esp-razdel-v-windows-gpt-300x84.jpg 300w" alt="отсутствует efi esp раздел в windows на gpt диске" width="438" height="123" class="alignnone size-full wp-image-14918" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Вы можете удалить оставшийся раздел с помощью графической утилиты GParted или непосредственно из командной строки (именно так и поступим).
Выберите раздел для удаления:
Select partition 1
И удалите его:Delete partition override
Убедитесь, что остался только Primary раздел с Windows размером 30 Гб (в нашем случае) и раздел восстановления:
List partition
https://winitpro.ru/wp-content/uploads/2015/06/diskpart-udalenie-lishnih-razdelov-300x169.jpg 300w" alt="diskpart удаление лишних разделов" width="634" height="358" class="alignnone size-full wp-image-14912" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Теперь вы можете вручную создать разделы 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
https://winitpro.ru/wp-content/uploads/2015/06/sozdat-efi-msr-razdely-vruchnuyu-diskpart-256x300.jpg 256w" alt="создать efi и msr разделы вручную с помощью diskpart" width="531" height="622" class="alignnone size-full wp-image-14920" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Назначьте букву диска вашему EFI разделу:
Select vol 3
Assign letter=G
Закройте diskpart:
exit
https://winitpro.ru/wp-content/uploads/2015/06/naznachit-bukvu-diska-efe-razdelu-300x67.jpg 300w" alt="назначить букву диска efi разделу" width="578" height="129" class="alignnone size-full wp-image-14915" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
При создании 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).
https://winitpro.ru/wp-content/uploads/2015/06/oshibka-nedostatochno-mesta-dlya-efi-razdela-300x74.jpg 300w" alt="diskpart недостаточно места для создания efi раздела" width="625" height="155" class="alignnone size-full wp-image-14916" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
В этом случае вам нужно уменьшить раздел основного раздела с Windows на 128 Мб(в нашем примере это volume 1):
select volume 1
shrink desired=128 minimum=128
https://winitpro.ru/wp-content/uploads/2015/06/diskpart-shrink-umenshit-razdel-300x117.jpg 300w" alt="diskpart shrink - уменьшить размер основного разделаumenshit-razdel" width="558" height="218" class="alignnone size-full wp-image-14911" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
После этого создайте разделы 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.
https://winitpro.ru/wp-content/uploads/2015/06/bcdboot-vosstanovit-zagruzchik-windows-300x52.jpg 300w" alt="bcdboot c:\windows /s G: /f UEFI восстановить загрузчик Windows" width="368" height="64" class="alignnone size-full wp-image-14907" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
В результате на 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:
https://winitpro.ru/wp-content/uploads/2015/06/bcdedit-configuraciya-s-bootmgfw-efi-300x227.jpg 300w" alt="bcdedit: конфигурация загрузчика windows с bootmgfw.efi" width="548" height="415" class="alignnone size-full wp-image-14908" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Перезагрузите компьютер (для перезагрузки из среды WinPE нужно выполнить команду wpeutil reboot) и извлеките загрузочную флешку.
Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:
mkdir G:\EFI\Microsoft\Boot
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot
https://winitpro.ru/wp-content/uploads/2015/06/copy-efi-boot-files-300x115.jpg 300w" alt="Копируем загрузочные файлы среды EFI" width="511" height="196" class="aligncenter size-full wp-image-4901" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Пересоздайте конфигурацию загрузчика Windows:
g:
cd EFI\Microsoft\Boot
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 \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}
https://winitpro.ru/wp-content/uploads/2015/06/bcdedit-peresozdat-bcd-vruchuyu-300x120.jpg 300w, https://winitpro.ru/wp-content/uploads/2015/06/bcdedit-peresozdat-bcd-vruchuyu-768x307.jpg 768w" alt="bcdedit пересоздать BCD вручную" width="817" height="327" class="alignnone size-full wp-image-14909" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Дальнейшие команды 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 не загрузился, выполните следующие действия:
- Отключите питание компьютера;
- Отключите (физически) жесткий диск;
- Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found. Выключите компьютер;
- Подключите диск обратно.
Если это не помогло, опять загрузитесь с установочной USB флешки и выполните команду:
bootrec /rebuildbcd
Перезагрузите компьютер
https://winitpro.ru/wp-content/uploads/2015/06/bootrec-rebuildbcd-300x82.jpg 300w" alt="bootrec rebuildbcd" width="373" height="102" class="alignnone size-full wp-image-14910" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFI\Microsoft\Boot\bootmgrfw.efi на EFI разделе.
https://winitpro.ru/wp-content/uploads/2015/06/efi-boot-options-300x230.jpg 300w" alt="Настройка загрузки в UEFI" width="630" height="482" class="aligncenter size-full wp-image-4906" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.
В некоторых случаях после пересоздания разделов EFI и MSR и восстановления BCD Windows может перестать корректно выключаться. Если у вас проявляется эта проблема, чтобы исправить ее нужно отключить функцию быстрого запуска в Windows в настройках электропитания компьютера:
- Откройте панель управления электропитанием
powercfg.cpl
; - Выберите Choose what the power buttons does;https://winitpro.ru/wp-content/uploads/2015/06/nastroyka-elektroitaniya-windows-300x210.jpg 300w" alt="настройка электропитания в windows" width="398" height="279" class="alignnone size-full wp-image-14914" style="box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 100%; margin-bottom: 26px; height: auto; display: block;" />
- Нажмите кнопку Change settings that are currently unavailable и отключите опцию «Turn on fast startup» в разделе «Shutdown settings».