- Восстановление удаленного загрузочного EFI раздела в Windows 10
- Структура разделов GPT диска для Windows
- Что будет, если в Windows 10 отсутствует раздел EFI?
- Как вручную создать EFI и MSR разделы на GPT диске?
- Восстановление EFI загрузчика и BCD в Windows
- Восстановление загрузчика Windows 10: ручное пересоздание файла конфигурация загрузки BCD
Восстановление удаленного загрузочного EFI раздела в Windows 10
В этой статье мы покажем, как вручную восстановить случайно удаленный загрузочный 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 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 в таком случае вы получите ошибку:
Как вручную создать EFI и MSR разделы на GPT диске?
Т.к. ОС не загружается корректно, нам понадобится установочный диск с Windows 10 (Win 8 или 7) или любой другой загрузочный диск. Итак, загрузитесь с установочного диска и на экране начала установки нажмите комбинацию клавиш Shift+F10. Должно открыться окно командной строки:
Запустите утилиту управления дисками и разделами:
Выведите список жестких дисков в системе (в этом примере он один, disk 0. Звездочка (*) в столбце Gpt означает, что диск использует GPT таблицу разделов).
Выберите этот диск:
Выведите список разделов на диске:
В нашем примере в системе осталось всего 2 раздела:
- Раздел MSR — 128 Мб
- Системный раздел с Windows – 9 Гб
Как вы видите, раздел EFI отсутствует (удален).
Наша задача удалить оставшийся MSR раздел, так чтобы на диске осталось неразмечено как минимум 228 Мб свободного места (для разделов MSR и EFI). Удалить оставшийся раздел можно с помощью графической GParted или непосредственно из командной строки (именно так и поступим).
Выберите раздел для удаления:
Select partition 1
И удалите его:
Delete partition override
Убедитесь, что остался только раздел с Windows размером 9 Гб (в нашем случае):
Теперь вы можете ручную пересоздать разделы EFI и MSR для размещения загрузчиков. Для этого в контексте утилиты diskpart последовательно выполните команды:
Создайте EFI раздел размером 100 Мб, отформатируйте его в файловой системе FAT32 и назначьте ему букву диска:
create partition efi size=100
Убедитесь, что в diskpart выбран раздел 100 Мб (звездочка напротив строки Partition 1):
list partition
select partition 1
format quick fs=fat32 label=»System»
assign letter=G
Теперь нужно создать MSR раздел размером 128 мб (в Windows 10 размер MSR раздела можно сделать всего 16 Мб).
create partition msr size=128
list partition
list vol
В нашем случае основному разделу с Windows уже назначена буква диска C:, если это не так, назначьте ему букву следующим образом:
select vol 1
assign letter=C
exit
Восстановление EFI загрузчика и BCD в Windows
После того, как вы создали минимальную структуру разделов для GPT диска на компьютере с UEFI, можно переходить к копированию загрузочных файлов EFI на диск и созданию конфигурационного файла загрузчика (BCD).
Скопируйте загрузочные файлы среды EFI из каталога вашего диска, на который установлена ваша Windows:
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot
Пересоздайте конфигурацию загрузчика Windows:
g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create
bcdedit /store BCD /create /d “Windows 7” /application osloader
Вы можете заменить надпись “My Windows 10”, на любую другую.
Команда возвращает GUID созданной записи. Этот GUID нужно подставить в следующей команде вместо
bcdedit /store BCD /set
bcdedit /store BCD /set
bcdedit /store BCD /set
Дальнейшие команды bcdedit выполняются в контексте
bcdedit /store BCD /set
bcdedit /store BCD /set
bcdedit /store BCD /set
bcdedit /store BCD /set
exit
Перезагрузите компьютер … В нашем случае с первого раза он не загрузился, пришлось дополнительно поплясать с бубном:
- Отключите питание компьютера;
- Отключите (физически) жесткий диск;
- Включите ПК, дождитесь появления окна с ошибкой загрузки Operating System not found. Выключите компьютер;
- Подключите диск обратно.
Затем в нашем случае (тестирование проводилось на виртуальной машине VMWare с UEFI средой) пришлось добавить новый загрузочный пункт меню, выбрав файл EFI\Microsoft\Boot\bootmgrfw.efi на EFI разделе.
В некоторых UEFI меню по аналогии нужно изменить приоритет загрузочных разделов.
После всех рассмотренных манипуляций Windows должна загрузиться корректно.
Восстановление загрузчика Windows 10: ручное пересоздание файла конфигурация загрузки BCD
Диспетчер загрузки современных версий Windows использует для загрузки операционных систем, установленных на компьютере, файл BCD (Boot Configuratin Data) , в котором хранятся данные об ОС и параметрах их загрузки. В том случае, если файл BCD удален или поврежден, Windows перестает загружаться. В этой статье мы покажем способ ручного пересоздания файла хранилища данных конфигурации загрузки на примере Windows 10.
В том случае, если файл BCD поврежден или отсутствует, скорее всего, при попытке загрузить Windows, пользователь увидит такое сообщение:
Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034
При появлении такой ошибки, в первую очередь попытайтесь исправить проблему с загрузкой ОС с помощью режима Startup Repair , который можно запустить из среды восстановления Windows RE .
Совет . Желательно периодически проверять работоспособность среды WinRE, и если она не работает, воспользоваться для ее восстановления методикой из статьи Восстановление среды WinRE в Windows 10.
В том случае, если автоматическое восстановление с помощью Startup Repair не помогло решить проблему, необходимо загрузиться с загрузочного / установочного диска с Windows или в среде WinRe (Repair your computer -> Troubleshoot -> Advanced options -> Command Prompt), запустить командную строку и попытаться создать новый файл конфигурации BCD «с нуля».
Очень важно . Все инструкции, описанные ниже, подходят для обычных MBR+BIOS систем. На системах с UEFI для пересоздания BCD нужно воспользоваться следующими инструкциями по восстановлению загрузчика в Windows 10/8 c EFI или Windows 7 .
В этом примере я буду использовать установочный диск с Windows 10. Загрузившись с него, нужно нажать на экране выбора языка сочетание клавиш Shift+F10 .
Попробуйте восстановить BCD файл автоматически, выполнив команду:
Перезагрузите компьютер и проверьте, загружается ли Windows, если нет, опять загрузитесь с установочного диска и откройте окно командной строки. Нам нужно идентифицировать диски системы (скорее всего назначенные им буквы дисков будут отличаться от дисков, которые вы видели при работе в Windows). Проще всего это сделать с помощью утилиты diskpart. Выполните следующие команды:
Перед вами появится список разделов в системе, назначенные им буквы и их размер. В нашем случае, на диске имеются всего два раздела:
- Раздел System Reserved размером 500 Мб, которому назначена буква диска C: . На этом небольшом служебном разделе по-умолчанию хранится файл конфигурации загрузки BCD ( подробнее )
- NTFS раздел размером 39 Гб, которому назначена буква D:. На этом разделе находится Window и данные пользователя
Важно . Запомните назначенные буквы дисков, т.к. в они будут использоваться в последующих командах.
С помощью следующих команд мы добьемся того, чтобы в MBR и загрузочном секторе имелись нужные ссылки на загрузчик Windows (bootloader).
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force
Совет . Если команда bootsect.exe не будет найдена, попробуйте указать путь
X:\boot\bootsect.exe /nt60 all /force
Далее с помощью команды BCDedit создадим новый файл с конфигурацией загрузки (предполагается, что у вас нет резервной копии BCD ).
Удалите старый (поврежденный) файл BCD на разделе System Reserved и создайте вместо него новый.
del c:\boot\bcd
Создайте временный пустой файл bcd.tmp
bcdedit /createstore c:\boot\bcd.tmp
Создайте запись для диспетчера загрузки bootmgr.
bcdedit.exe /store c:\boot\bcd.tmp /create
Импортируйте в BCD настройки из файла bcd.tmp
bcdedit.exe /import c:\boot\bcd.tmp
Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )
bcdedit.exe /set
Настройте время ожидания при выборе ОС
bcdedit.exe /timeout 10
Удалите временный файл
del c:\boot\bcd.tmp
Итак, у нас имеется пустой файл с параметрами загрузчика. Теперь в него нужно добавить записи об имеющихся на компьютере ОС. Создадим в хранилище BCD новую запись для Windows 10 bcdedit.exe /create /d «Windows 10» /application osloader
Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика.
The entry <8a7f03d0-5338-11e7-b495-c7fffbb9ccfs>was successfully created.
Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания для загрузки используется именно эта запись).
Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows (ранее мы определении, что в среде WinPe диску с Windows присвоена буква D: )
bcdedit.exe /set
bcdedit.exe /set
bcdedit.exe /set
bcdedit.exe /set
Осталось сделать данную запись видимой (по умолчанию она скрыта)
bcdedit.exe /displayorder
Итак, мы полностью пересоздали хранилище конфигурации загрузки. Теперь можно перезагрузить компьютер и убедится, что Windows 10 загружается в штатном режиме.