В этой статье мы разберемся, как восстановить загрузчик Windows 10 или 11 на современном компьютере, на котором используется UEFI интерфейс вместо классического BIOS и таблица разделов диска GPT (вместо MBR). Повреждение загрузчика Windows может быть вызвано установкой второй ОС (Dual Boot — конфигурация), повреждением файловой систему, некорректным восстановлении Windows после сбоя, удалением скрытых разделов, вирусом-вымогателем и рядом других причин.
Данная статья содержит подробную пошаговую процедуру восстановления поврежденного или удаленного загрузчика ОС в Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2 на компьютерах, которые работают в нативном (не legacy) режиме UEFI. Инструкцию можно использовать как для восстановления бинарных файлов загрузчика Windows, так и конфигурационного файла загрузчика EFI\Microsoft\Boot\BCD (в случаях, когда Windows не загружается из-за отсутствия или повреждения файла конфигурацией загрузка BCD.
Содержание:
- Не загружается Windows: Boot configuration data is missing EFI\Microsoft\Boot\BCD
- Автоматическое восстановление загрузчика Windows
- Ручное восстановление загрузчика Windows с помощью BCDBoot
Не загружается Windows: Boot configuration data is missing EFI\Microsoft\Boot\BCD
UEFI компьютер с Windows, установленной в наивном режиме, не сможет загрузиться при повреждении EFI загрузчика Windows. При попытке загрузиться с диска с повреждённым или отсутствующим EFI загрузчиком появится BSOD (синий экран смерти) с ошибкой:
The boot configuration data for your PC is missing or contains errors. File :\EFI\Microsoft\Boot\BCD Error code: 0xc000000f
или
Error code: 0xc000014c
В русской версии Windows ошибка может быть такая:
Ваш компьютер нуждается в ремонте Данные конфигурации загрузки для вашего ПК отсутствуют или содержат ошибки Файл:\EFI\Microsoft\Boot\BCD Код ошибки: 0xc000000f
Эта ошибка говорит о повреждении или даже полном удалении конфигурации загрузчика Windows — Boot Configuration Data (BCD). Если вы попытаетесь восстановить загрузчик на UEFI компьютере с помощью утилиты
bcdedit
, вы получите такую ошибку:
The boot configuration data store could not be found. The requested system device cannot be found.
Дело в том, что если Windows 10/11 установлена в нативном режиме UEFI на GPT диск, то EFI загрузчик Windows (Windows Boot Manager) хранит программу управления загрузкой и конфигурацию BCD на отдельном скрытом разделе EFI (размером 100 мб с файловой системой FAT32). Утилита bcdedit не видит этот EFI раздел, и соответственно не может управлять конфигурацией загрузчика на нем.
Если при загрузке Windows появляется только черный экран с надписью “Operating System not found”, скорее всего у вас полностью удален загрузчик Windows. Следуйте инструкции по ссылке.
Автоматическое восстановление загрузчика Windows
Процедура автоматического восстановления загрузчика, зашитая в среду восстановления Windows (WinRe), как правило, в таких случаях бессильна. Но попробовать все-же стоит:
- Загрузитесь с диска загрузочного диска, диска восстановления или установочной флешки с Windows 10 или 11;
- На экране установки нажмите кнопку Восстановление системы;
- Затем выберите пункт Поиск и устранение неисправностей -> Восстановление при загрузке и выберите ОС, загрузчик которой нужно попытаться восстановить;
- Но скорее всего результат будет отрицательный: Восстановление при загрузке не удалось восстановить компьютер
Ручное восстановление загрузчика Windows с помощью BCDBoot
Перейдем к процедуре ручного восстановления EFI загрузчика Windows на UEFI компьютере.
Для восстановления конфигурации загрузчика (BCD), вам нужно загрузить компьютер с оригинального установочного диска с Windows (диска восстановления или специально подготовленной установочной USB флешки с Windows ). После загрузки в среде восстановления нужно открыть окно командной строки: выберите Восстановление системы -> Диагностика -> Командная строка (System Restore -> Troubleshoot -> Command Prompt).
Командную строку также можно запустить, если у вас под рукой есть только установочный диск с Windows. Для этого достаточно на самом первом этапе установки Windows (при выборе языка и раскладки клавиатуры) нажать комбинацию клавиш Shift+F10 (или Shift+Fn+F10 на некоторых моделях ноутбуков).
В открывшейся командной строке выполните запустите утилиту управления дисками, набрав команду:
diskpart
Выведите список дисков в системе:
list disk
На этом этапе очень важно определить тип таблицы разделов на диске, на котором установлена Windows: MBR или GPT. Дело в том, что EFI загрузчик используется только на дисках с GPT разметкой.
Если у диска в столбце Gpt указана звездочка (
*
), тогда на диске используется таблица разделов GPT, если нет – MBR.
Если с помощью diskpart вы определили, что на вашем диске используется GPT разметка, следуйте дальнейшим шагам инструкции по восстановлению загрузчика.
Если у вас разметка MBR, тогда данная инструкция не применима к вашему компьютеру. Скорее всего у вас компьютер с BIOS, или в настройках UEFI включен режим совместимости Legacy/Compatibility Support Module/CSM.
На MBR дисках загрузчик хранится на отдельном разделе System Reserved, а не на EFI разделе (ни в коем случае не конвертируйте таблицу разделов MBR в GPT, пока не исправите загрузчик!!) Используйте другую инструкцию по восстановлению BCD загрузчика на MBR (Master Boot Record) диске.
Выберите диск, на котором установлена ваша Windows (если жесткий диск в системе один, его индекс должен быть равен 0):
sel disk 0
Выведите список томов и разделов в системе:
list partition
list volume
В нашем примере видно, что загрузочный раздел EFI имеет индекс Partition2 (он же Volume 5 с меткой Hidden). Проще всего определить EFI размер по файловой системе FAT32, размеру 100 Мб (это стандартный минимальный размер для Windows компьютеров, в редких случая размер раздела может быть). Чаще всего для него используется метка — System EFI или ESP/ EFI System Partion).
В нашем примере основной раздел, на который установлена Windows, имеет индекс volume 2, отформатирован в файловая система NTFS и ему назначена буква C:.
В вашем случае назначенная буква диске может отличаться. Это зависит, как вы загрузили свой компьютер в среде WinPE. Проще всего определить его по размеру. Если вы не уверены, нужно проверить что на этом диске есть каталог Windows. Выйдите из утилиты diskpart (команда exit) и выполните команду:
dir C:\
Убедитесь, что на этом диске есть каталоги
Windows
,
Program Files
,
Users
и прочие.
Если этих каталогов нет, значит вашему диску с Windows назначена другая буква диска. Проверьте содержимоет дисков с другими буквами.
Запомните букву диска, назначенную разделу с Windows, чуть ниже мы будем использовать ее в качестве одного из аргументов команды bcdboot.
В таблице также обязательно должен быть раздел MSR (Microsoft System Reserved) размером 16 мб в Windows 10/11 (или 128 Мб в Windows 8.1).
Назначьте скрытому EFI разделу произвольную букву диска (например, M:):
select volume 5
assign letter M:
Должна появится строка, свидетельствующая об успешном назначении буквы диска разделу EFI:
DiskPart successfully assigned the drive letter or mount point.
Завершите работу с diskpart:
exit
Перейдите в каталог с загрузчиком на скрытом разделе:
cd /d m:\efi\microsoft\boot\
В данном случае M: это буква диска, присвоенная разделу EFI чуть выше. Если каталог \EFI\Microsoft\Boot\ отсутствует
The system cannot find the path specified
), попробуйте следующие команды:
cd /d M:\Boot\
или
cd /d M:\ESD\Windows\EFI\Microsoft\Boot\
На этом этапе многие рекомендуют выполнить следующие команды, которые должны перезаписать загрузочную запись раздела, найти установленные Windows и добавить их в BCD:
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
или даже:
bootrec /FixMbr
(восстановление MBR записи для GPT диска выглядит странным)
Все эти команды применимы только для дисков с MBR. Если ваш компьютер загружается в UEFI режиме, то на нем обязательно используется таблица разделов GPT (как раз наш случай). Поэтому при запуске команд
bootrec
вы увидите ошибку:
access is denied
Для исправления загрузочных записей на EFI разделе нужно использовать утилиту
BCDBoot
, а не bootrec.
Утилита BCDBoot позволяет восстановить файлы загрузчика на EFI разделе, скопировав их системного каталога на разделе с Windows. Конфигурация загрузчика BCD пересоздается с помощью шаблона %WINDIR%\System32\Config\BCD-Template.
С помощью команды
attrib
снимите атрибуты скрытый, read-only и системный с файла BCD:
attrib BCD -s -h -r
Удалите текущий файл с конфигурацией BCD, переименовав его (так вы сохраните старую конфигурацию в качестве резервной копии):
ren BCD BCD.bak
С помощью утилиты bcdboot.exe нужно скопировать из системного каталога критические файлы среды загрузки UEFI в загрузочный EFI раздел и пересоздать конфигурацию загрузчика в хранилище BCD:
bcdboot C:\Windows /l en-us /s M: /f ALL
где,
- C:\Windows – путь к корневому системному каталогу Windows на диске (это ваш диск, на который была установлена ваша Windows, мы узнали его ранее с помощью команды diskpart);
- /f ALL – означает, что необходимо скопировать файлы среды загрузки Windows, включая файлы для компьютеров с UEFI и BIOS (теоретическая возможность загружаться на EFI и BIOS системах). Чтобы скопировать только EFI загрузчик, используйте команду /f UEFI;
- /l en-us — определяет языковой стандарт, который используется при инициализации хранилища BCD. По умолчанию используется en-US — английский язык (США);
- /s M: — скопировать файлы EFI загрузчика на указанный раздел;
- /с – эта новая опция BCDBoot в Windows 10, которая позволяет перезатереть имеющиеся загрузочные записи при создании нового хранилища (в том числе debugsettings). Используйте этот параметр, чтобы игнорировать старые настройки и создать полностью чистую конфигурацию BCD загрузчика;
- /v – используется для включения режима вывода подробной информации BCDBoot..
Теперь, если выполнить команду bcdedit, вы увидите следующую картину:
В секции диспетчера загрузки Windows (Windows Boot Manager) должна появится запись, указывающая на полный путь к файлу управления загрузкой UEFI. В этом примере он находится на разделе 2 (
partition=\Device\HarddiskVolume2
), путь
\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
.
Windows Boot Manager -------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume2 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit {globalsettings} bootshutdowndisabled Yes default {CURRENT} resumeobject {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} displayorder {default} toolsdisplayorder {memdiag} timeout 30 Windows Boot Loader ------------------- identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows Server 10 locale en-US inherit {bootloadersettings} recoverysequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} recoveryenabled Yes isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
В секции Windows Boot Manager должен быть указан путь к EFI разделу (
=\Device\HarddiskVolume2
), путь к файлу управления загрузкой (bootmgfw.efi). В секции Windows Boot Loader указан раздел Windows и путь к EFI загрузчику Windows (
\Windows\system32\winload.efi
). При включении компьютер передаст управление диспетчеру загрузки EFI, который запустит загрузчик Windows.
Возможные ошибки:
Перезагрузите компьютер, отключите загрузочный диск. Если вы все сделали правильно, в выборе устройств загрузки должен появиться пункт Windows Boot Manager в котором можно выбрать загрузку нужной операционной системы. Ваш EFI загрузчик и конфигурация BCD успешно восстановлены!
В некоторых случаях после восстановления BCD загрузчика, при загрузке Windows появляется ошибка
BAD SYSTEM CONFIG INFO
. Чтобы исправить ошибку:
Убедитесь, что вы не вносили недавно изменения в настройки UEFI
Загрузитесь с установочной/загрузочной флешки и измените конфигурацию загрузчика командами:
-
bcdedit /deletevalue {default} numproc
-
bcdedit /deletevalue {default} truncatememory
Повреждение загрузчика Windows – ситуация достаточно редкая. Обычно это происходит после удаления скрытого EFI-раздела или попыток установки второй операционной систему. В таких случаях система перестает загружаться и выдает различные сообщения об ошибках. Например, на системах с BIOS и MBR-диском может появляться сообщение «Error loading operating system. BOOTMGR is missing. Press Ctrl+Alt+Del», а на системах с UEFI и GPT-диском «No bootable device found. Insert boot disk and press any key» или «An operating system wasn’t found».
В этой статье мы расскажем, как восстановить загрузчик Windows 11 и Windows 10. Статья будет актуальной как для систем с BIOS и MBR-диском, так и для систем с UEFI и GPT.
Автоматическое восстановление загрузчика
Если вы столкнулись с повреждением загрузчика операционной системы Windows 11 или Windows 10, то для начала следует попробовать восстановить его в автоматическом режиме. Для этого вам потребуется установочный диск с Windows 11 или Windows 10.
Загрузитесь с данного диска и на этапе выбора языка нажмите на кнопку «Далее».
После этого перейдите в режим «Восстановление системы».
Дальше выберите пункт «Поиск и устранение неисправностей»
И пункт «Восстановление при загрузке».
В результате запустится встроенный инструмент, который попробует восстановить загрузчик Windows. Если это сработает, то после перезагрузки компьютера Windows загрузится в штатном режиме.
Но, к сожалению, данный способ срабатывает далеко не всегда. Очень часто после попытки восстановления появляется сообщение о том, что «Восстановление при загрузке не удалось восстановить компьютер».
В этом случае нужно нажать «Дополнительные параметры» и перейти к ручному восстановлению загрузчика Windows с помощью команды «bcdboot». Ниже мы рассмотрим два таких способа.
Восстановление загрузчика Windows через командную строку
Ручное восстановление загрузчика «bcdboot» предполагает использование командной строки и команды «bcdboot». Данная команда поддерживает как Legacy BIOS и MBR-диски, так и UEFI и GPT-диски. Поэтому она работает во всех случаях. Как и для автоматического восстановления, для запуска «bcdboot» вам понадобится установочный диск с Windows 11 или Windows 10.
Поэтому подключите установочный диск к компьютеру и загрузитесь с него. После появления окна с выбором языка нажмите на кнопку «Далее».
После этого перейдите в раздел «Восстановление системы».
И выберите вариант «Поиск и устранение неисправности».
После появления дополнительных параметров перейдите в раздел «Командная строка».
После открытия командной строки нужно определить, какие буквы были присвоены разделам на вашем компьютере. Поскольку при загрузке с установочного диска они могут измениться.
Чтобы определить буквы разделов нужно запустить в командной строке программу «diskpart» и ввести следующие команды:
list volume exit
В результате в командной строке отобразится список разделов и буквы, которые им присвоены. Изучите данный список и найдите раздел, на котором располагается папка Windows. Чтобы правильно определить раздел с Windows ориентируйтесь на его размер в гигабайтах.
Ниже показан пример, где раздел с папкой Windows имеет размер 126 Гб и обозначается буквой D.
После этого нужно выполнить команду «bcdboot» и указать путь к папке Windows, используя букву раздела, которую мы узнали ранее. Например, если раздел с Windows получил букву D, то нужно выполнить:
bcdboot D:\windows
Чаще всего раздел с папой Windows получает букву C или D. Но, возможны любые варианты, поэтому не удивляйтесь если ваш раздел с Windows получит букву E, F или любую другую. Это зависит от конфигурации разделов на вашем компьютере.
Восстановление загрузчика Windows (продвинутый вариант)
Также, при необходимости, команде «bcdboot» можно передать больше параметров. В частности, можно указать букву раздела, на которой нужно записать загрузчик, а также тип прошивки системы (BIOS или UEFI). Это может быть полезно, если описанный выше способ не сработал.
Чтобы воспользоваться этим способом запустите командную строку с установочного диска Windows, так как это описано выше, запустите программу «diskpart» и выполните следующую команду:
list disk
После выполнения «list disk» будет выведена информация о накопителях (SSD/HDD). Здесь нужно найти накопитель, на котором установлена Windows, и обратить внимание на столбец GPT, если напротив диска есть отметка, то это GPT, если же отметки нет, то это MBR.
Дальше выполняем:
list volume
После команды «list disk» будет выведена информация о томах. Здесь нужно найти том с Windows и запомнить букву (в данном случае это буква D).
Дальнейшие действия немного отличаются, в зависимости от типа диска (MBR или GPT). Сначала рассмотрим MBR.
Восстановление загрузчика MBR
В случае MBR нужно найти активный раздел. Для этого выполняем:
select volume 1 detail partition
Команда «select volume 1» выбирает том № 1, а команда «detail partition» выводит о нем подробную информацию, где будет указано, активный это раздел или нет. Таким образом нужно просмотреть все тома и найти активный раздел. Именно на этом разделе и нужно восстановить загрузчик.
После этого выходим из «diskpart» при помощи команды «exit».
И приступаем к восстановлению загрузчика Windows. Для этого нужно выполнить вот такую команду:
bcdboot d:\windows /s C: /f BIOS
В которой:
d:\windows | Путь к Windows.
В данном случае папка Windows находится на диске D. |
/s C: | Ключ /s указывает на букву раздела, куда будет записан загрузчик.
Если ключ /s не указывать, то будет выбран:
В данном случае выбираем активный раздел C. |
/f BIOS | Ключ /f указывает тип прошивки на компьютере. Доступные варианты:
Если ключ /f не указывать, то нужный вариант будет выбран автоматически, в зависимости от текущей системы. В данном случае указываем BIOS, поскольку диск в формате MBR. |
Если все было сделано правильно, то после перезагрузки компьютера Windows должна загрузиться в штатном режиме.
Восстановление загрузчика UEFI GPT
В случае GPT диска нужно найти EFI-раздел, отформатировать его в FAT32 и присвоить ему букву.
EFI-раздел – это скрытый раздел на 100 Мб с файловой системой FAT32. Найдите его в списке разделов (list volume) и запомните его номер. В данном случае это № 3.
Дальше выбираем EFI-раздел и форматируем его. Для этого нужно выполнить следующие команды:
select volume 3 format fs=fat32
Где 3 – это номер EFI-раздела, а fat32 – это файловая система.
После этого присваиваем EFI-разделу не занятую любую букву. Для этого выполняем:
assign letter=Z
Где Z – это буква, которая присваивается EFI-разделу.
Чтобы выйти из «diskpart» выполняем «exit».
Теперь можно приступать к восстановлению загрузчика Windows. Для этого выполняем:
bcdboot c:\Windows /s Z: /f UEFI
В которой:
c:\windows | Путь к Windows.
В данном случае папка Windows находится на диске C. |
/s Z: | Ключ /s указывает на букву раздела, куда будет записан загрузчик.
Если ключ /s не указывать, то будет выбран:
В данном случае выбираем EFI-раздел, которому мы присвоили букву Z. |
/f UEFI | Ключ /f указывает тип прошивки на компьютере. Доступные варианты:
Если ключ /f не указывать, то нужный вариант будет выбран автоматически, в зависимости от текущей системы. В данном случае указываем UEFI, поскольку диск в формате GPT. |
После этого можно перезагружать компьютер. Если все было сделано правильно, то Windows загрузится в штатном режиме.
Посмотрите также:
- Запуск Windows 11 на этом компьютере невозможен
- Как узнать в каком формате жесткий диск MBR или GPT
- Как преобразовать MBR в GPT в Windows 10
- BOOTMGR is missing press Ctrl Alt Del в Windows 7
- Как загрузиться с флешки
Добрый день! В этой статье я расскажу о восстановлении UEFI запуска Windows 8/8.1/10, а так же о том что же такое UEFI. Поехали!
Вспомните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? Это были насколько помню 1990 годы. И все было неизменным, менялись только характеристики оборудования. Но развитие серверов и технологий толкнули Intel к разработке EFI.
Изначально EFI создавалась для первых систем Intel-HP Itanium в середине 1990-х годов. Ограничения PC-BIOS были, очевидно, недопустимы в больших серверных платформах, для использования в которых планировался Itanium. После того как Intel передала разработку UEFI Forum (альянс AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., IBM, Insyde Software, Intel, Lenovo, Microsoft, Phoenix Technologies). 7 января 2007 года была выпущена первая версия универсальной платформы UEFI 2.1. И впервые на смену пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).
Терминология
UEFI (Unified Extensible Firmware Interface, Единый расширяемый интерфейс прошивки). В отличие от 16-битного BIOS’а UEFI работает в 32- или 64-битном режиме, что позволяет использовать намного больше памяти для сложных процессов.
MBR («Master Boot Record» — основная загрузочная запись) использует 32-битные идентификаторы для разделов, которые размещаются в очень маленьком кусочке пространства (64 байта) в самом начале диска (в конце первого сектора диска). Из-за такого маленького объёма поддерживаются только четыре первичных раздела. Поскольку используется 32-битная адресация, то каждый раздел может быть не более 2,2 ТБ. Кроме того, загрузочная запись не имеет никакой запасной MBR, так что если приложение перезапишет основную загрузочную запись, то вся информация о разделах будет потеряна.
GPT («GUID Partition table» — таблица разделов GUID) использует уже 64-битные идентификаторы для разделов, поэтому кусочек пространства, в котором сохраняется информация о разделах, уже больше чем 512 байт, кроме того, не существует ограничения на количество разделов. Заметьте, ограничение на размер раздела в этом случае почти 9,4 ЗБ (да-да, вы всё прочитали правильно — зеттабайт, единичка с двадцатью одним нулём!). А в конце диска имеется копия GPT, которая может использоваться для восстановления повреждённой основной таблицы разделов в начале диска.
Как происходит загрузка в UEFI?
С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию загружается и запускается файл \efi\boot\boot[название архитектуры].efi, например: \efi\boot\bootx64.efi.
То есть чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней активный FAT32-раздел и скопировать все файлы с компакт-диска с дистрибутивом операционной системы
Пример создания GPT диска в Linux:
- gdisk: создать раздел, указав тип EFI System (EFI System в fdisk или ef00 в gdisk). Затем отформатировать его в файловую систему FAT32 командой mkfs.fat -F32 /dev/<раздел диска>;
- GNU Parted: создать раздел FAT32 и затем установить (активировать) загрузочный флаг (но не флаг legacy_boot) на этот раздел.
Также в большинстве реализаций UEFI возможна загрузка в режиме совместимости с диска с разметкой MBR.
Менеджер загрузки
Менеджер загрузки EFI используется для выбора и загрузки ОС, исключая потребность в специализированном механизме загрузки (загрузчик ОС является приложением EFI). То есть сам загрузчик к которому мы так сильно привыкли, ни куда не делся. Он теперь универсальный для всех операционных систем и находится в ПЗУ основной прошивки системной платы (где раньше был BIOS). И для того что бы загрузить нужную нам операционную систему, нужно всего лишь загрузочный файл с расширением .efi на загрузочном разделе. Теперь нет надобности в загрузочной записи в MBR, вот и все!
Восстанавливаем запуск
Чтобы восстановить конфигурацию загрузчика (BCD), необходимо загрузится с оригинального установочного DVD диска с Windows 8
(или диска восстановления, или специально подготовленной загрузочной флешки)
и открыть окно командной строки: выбрав Восстановление системы -> Диагностика -> Командная строка (System Restore – > Troubleshoot->Command Prompt),
или нажав комбинацию клавиш Shift+F10.
В открывшейся командной строке вводим последовательно:
diskpart
list volume
Выберите загрузочный раздел (100mb, и файловая система у него FAT32)
select volume 3
format fs=fat32 (форматируем загрузочный раздел, перед копированием новых загрузочных файлов).
assign letter=Z (присваиваем букву Z этому разделу).
exit (выходим из Diskpart)
bcdboot C:\Windows /s Z: /f ALL (где С: — диск с файлами Windows, Z: — буква, которую мы присвоили скрытому разделу).
Если у вас несколько OC Windows , повторите команду для второй копии (с новым расположением файлов).
diskpart
list volume
select volume N (номер скрытого раздела, которому мы присваивали букву)
remove letter=Z (удаляем букву, чтобы том не отображался в системе, когда мы перезагрузимся).
exit (выходим из diskpart).
Перезагружаемся, извлекаем все носители. И грузимся в обычном режиме. Если все сделано правильно, система начнет загрузку.
Возможные Причины
Загрузчик Windows (Windows Boot Manager) хранит свои файлы в отдельном разделе, в большинстве случаев. В состав файлов входят — конфигурационный файл, и бинарные файлы. Если используется устаревшая схема загрузки на основе BIOS (MBR) систем, то в придачу к этому, на диск записывается загрузочная запись MBR (Master Boot Record), осуществляющая запуск бинарных файлов с указанного раздела.
Загрузка Windows осуществляется в два этапа:
1. BIOS (MBR/UEFI) выполняет поиск и запуск загрузчика (его бинарных файлов).
2. Загрузчик выполняет запуск ядра операционной системы.
Учитывая вышеописанное, возможных проблем может быть всего лишь две:
1. Проблемы с загрузочным разделом, и его файлами.
2. Проблемы с загрузочной записью MBR.
Может быть еще и третья проблема. Она не связана напрямую с загрузчиком, поэтому ее я не стал вносить в список. Проблема заключается в удалившихся загрузочных записях UEFI BIOS. Устраняется очень просто, сброс настроек UEFI BIOS, или ручное добавление соответствующей загрузочной записи через UEFI Shell. Как это сделать, можно прочитать тут, а как сделать загрузочный диск с UEFI Shell тут.
Необходимые Инструменты
Для всех манипуляций потребуется только лишь установочный диск Windows, а точнее его среда предустановки (WinPE). Скачать установочный диск Windows можно на официальном сайте Microsoft по ссылке https://www.microsoft.com/ru-ru/software-download.
Скачивание абсолютно бесплатно. Для дистрибутива Windows 10, предоставлена программа для создания загрузочного USB/CD диска, или установочного ISO образа.
Тестовое Окружение
В качестве тестовой ОС будет выступать Windows 10. Будет продемонстрировано восстановление загрузчика как версии на MBR диске, так и на GPT (UEFI).
Для MBR диска, будет продемонстрировано восстановление записи MBR, файлов загрузчика, и загрузочного раздела. Ниже на фото, отмечен раздел с файлами загрузчика.
Особенностью данной разметки диска (она выполнялась автоматически установщиком Windows), является расположение файлов загрузчика и среды восстановления на одном разделе.
Для GPT диска, будет продемонстрировано восстановление загрузочного раздела и файлов загрузчика. На фото ниже, отмечен загрузочный EFI-раздел, в котором расположены файлы загрузчика.
В случае с GPT-диском, файлы загрузчика и среда восстановления располагаются в разных разделах. Загрузочный EFI-раздел всегда отформатирован в файловую систему FAT, т.к. UEFI BIOS поддерживает только ее.
Восстановление Записи MBR
Разберем ситуацию с поврежденной/перезаписанной MBR-записью. Часть первого сектора диска, отвечающей за запуск загрузчика, тестовой машины была намерено затерта.
Windows в данном случае естественно загружаться не будет.
Попробуем восстановить испорченную MBR-запись загрузчика Windows. Загрузимся с установочного диска на проблемной машине.
При появлении мастера установки, нажимаем сочетание клавиш SHIFT+F10, откроется командная строка.
Записать новую MBR-запись можно двумя способами, легким и не очень. Легкий выполняется с помощью команды bootrec, не очень, с помощью команды bootsect, совместно с командой bcdedit.
Рассмотрим сначала легкий способ. Восстанавливаем запись MBR.
:: Восстанавливаем MBR-запись диска
bootrec /fixmbr
Если сейчас выполнить перезагрузку машины, в надежде увидеть корректную загрузку Windows, то возможно вы получите ошибку загрузчика 0xc000000e (
Your PC/Device needs to be repaired
.
A required device isn’t connected or cant’t be accessed
. The application or operating system couldn’t loaded because a recuired file is missing ir contains errors.
File: \Windows\system32\winload.exe
).
Связана данная ошибка исключительно с конфигурацией загрузчика.
Устранить эту проблему можно выполнив исправление конфигурационного BCD-файла загрузчика Windows Boot Manager. Делается это, так же, с помощью команды bootrec.
:: Восстанавливаем конфигурационный BCD-файл
bootrec /rebuildbcd
Проверим параметры загрузчика после фикса.
Загрузчик восстановлен.
Теперь способ второй, немного более сложный.
Для выполнения всех дальнейших операций, предварительно необходимо будет выяснить букву системного раздела, того на котором установлена ОС Windows. Помочь в этом могут следующие команды:
:: Вывод точек монтирования системы с помощью различных команд
:: WMIC - более подробный вывод
wmic volume list brief
:: FSUtil - вывод только имен дисков
fsutil volume list
:: MountVol - вывод только имен дисков
mountvol
Каждая из этих команд выводит список всех подключенных разделов. Команда wmic предоставляет самую подробную информацию.
Получив информацию о подключенных томах, необходимо проверить какой из них содержит установленную копию ОС Windows. Делается это просто, с помощью команды dir, путем поочередного просмотра каждого тома на наличие соответствующих системных директорий/файлов.
Определив целевой системный раздел, в моем случае это диск D:\, можно перейти к восстановлению MBR-записи.
:: Восстановление MBR-записи диска
bootsect /nt60 D: /mbr /force
Проверяем конфигурацию загрузчика.
:: Вывод загрузочных записей загрузчика Windows
bcdedit
У дефолтной загрузочной записи не определены параметры device и osdevice. В качестве значений данных параметров должна быть указана буква диска с установленной ОС Windows. Без данных параметров система не сможет загрузиться корректно, и выдаст уже описанное ранее сообщение об ошибке. Поправим загрузочную запись.
:: Указываем системный раздел для загрузочной записи по умолчанию
bcdedit /set {default} device "partition=D:"
bcdedit /set {default} osdevice "partition=D:"
:: Выводим параметры загрузочной записи по умолчанию
bcdedit /set {default}
Восстановление загрузчика выполнено.
Важным замечанием второго способа, является то, что конфигурация загрузчика не восстанавливается полноценно. Мы лишь поправили загрузочную запись по умолчанию ({default}), отвечающую лишь за запуск ОС Windows, другие записи конфигурационного файла загрузчика будут и прежде содержать параметры со значением unknow.
Ручное исправление которых, может оказаться не такой простой задачей, ввиду необходимости проверить все имеющиеся записи конфигурационного файла загрузчика. Поэтому, этот вариант восстановления лучше рассматривать как аварийный, при невозможности, по какой-либо причине, выполнить восстановление загрузчика первым способом.
Восстановление Загрузчика Windows (BIOS/MBR)
Усугубим тестовую ситуацию. Представим, что после определенных манипуляций, был удален загрузочный раздел ОС Windows. Что необходимо делать в данной ситуации?
1. Заново создать загрузочный раздел.
2. Записать на созданный раздел файлы загрузчика Windows.
3. Записать на созданный раздел файлы среды восстановления Windows (не обязательно).
По поводу третьего пункта, почему он не обязателен? Работа загрузчика, и в общем ОС в целом, никак не зависит от среды восстановления. Она используется лишь при аварийных ситуациях. Запускается данная среда загрузчиком при определенных условиях, например, пара прерванных загрузок ОС. То есть, если не будет загрузчика, то и среда восстановления не будет работать.
Приступим. На тестовой машине был намерено удален загрузочный раздел.
Попытка загрузки на данном этапе, ожидаемо приведет к ошибке.
Загружаем установочный диск OC Windows.
Запускаем командную строку, нажав сочетание клавиш SHIFT+F10.
Создадим загрузочный раздел. Особых требований к загрузочному разделу нет. Это должен быть раздел с файловой системой NTFS (желательно, но не обязательно), с достаточным объемом свободного пространства, чтобы вместить файлы загрузчика и среды восстановления.
:: Запускаем программу diskpart
diskpart
rem Выводим список дисков системы
list disk
rem Выбираем диск под номером 0
select disk 0
rem Выводим список разделов выбранного диска
list partition
rem Создаем первичный раздел в начале диска, размером в 550МБ
create partition primary offset=1 size=550
rem Помечаем созданный раздел как активный
active
rem Форматируем созданный раздел
format fs=ntfs quick label="Sytem Reserved"
rem Монтируем созданный раздел
assign
rem Узнаем букву под которой смонтирован созданный ранее раздел
list volume
Раздел создан. Запоминаем букву под которой он смонтирован, в моем случе диск E:\. Эта информация потребуется для выполнения последующих команд.
Выполним установку загрузчика на созданный раздел. Но, предварительно нужно выяснить, под какой буквой скрывается раздел с установленной ОС Windows. Узнать данную информацию можно, так же, на предыдущем шаге (diskpart — list volume), либо по способам описанным в предыдущем разделе. В моем случае это диск C:\.
:: Установка файлов BIOS-загрузчика для операционной системы
:: расположенной в директории C:\Windows, в загрузочный раздел E:
bcdboot C:\Windows /s E: /f BIOS
Загрузчик установлен. Если сейчас выполнить перезагрузку машины, то ОС Windows благополучно загрузится.
Если загрузка по-прежнему не возможна, то скорее всего имеются проблемы с загрузочной записью MBR. О том, как ее восстановить, написано в предыдущем разделе.
Тема возврата среды восстановления, будет рассмотрена в последующих статьях.
Восстановление Загрузчика Windows (UEFI/GPT)
Рассмотрим восстановление UEFI-загрузчика ОС Windows. ОС использующие загрузку в UEFI режиме не нуждаются в загрузочных записях, на подобии MBR. Поэтому, рассмотрен будет сценарий с утраченным загрузочным EFI-разделом.
Что из себя представляет загрузочный EFI-раздел? Это обычный раздел, отформатированный в файловую систему FAT.
Перейдем к делу. Удалим на тестовой машине загрузочный EFI-раздел.
Попытка загрузки системы на данном этапе, приведет к ошибке, либо к загрузке UEFI Shell.
Загружаемся с установочного диска ОС Windows.
Открываем командную строку, нажав сочетание клавиш SHIFT+F10.
Создадим утраченный загрузочный EFI-раздел.
:: Запускаем программу diskpart
diskpart
rem Выводим список дисков системы
list disk
rem Выбираем диск под номером 0
select disk 0
rem Выводим список разделов выбранного диска
list partition
rem Создаем EFI-раздел в доступном пространстве диска, размером в 99МБ
create partition efi size=99
rem Помечаем созданный раздел как активный
active
rem Форматируем созданный раздел
format fs=fat32 quick label="System"
rem Монтируем созданный раздел
assign
rem Узнаем букву под которой смонтирован созданный ранее раздел
list volume
Раздел создан. Запоминаем букву созданного раздела, в моем случае это диск F:\.
Установим загрузчик на созданный раздел. Предварительно, выясняем букву раздела с установленной ОС Windows. Как это сделать, было описано в предыдущих разделах. В моем случае, это диск D:\.
:: Установка файлов UEFI-загрузчика для операционной системы
:: расположенной в директории D:\Windows, в загрузовчный раздел F:
bcdboot D:\Windows /s F: /f UEFI
Загрузчик установлен. Проверяем его работу. Перезагружаем машину и наблюдаем.
Все Ok.
Итог
В статье было рассмотрено: Как восстановить загрузочную MBR-запись ОС Windows? Как выполнить восстановление BIOS-загрузчика ОС Windows? Как выполнить восстановление UEFI-загрузчика ОС Windows?
I have Windows 10 (home premium) installed on a SSD in a desktop. It was booting just fine until a couple of months ago.
I CAN boot Windows in SAFE MODE.
I have a Windows 10 DVD that I burned myself after I upgraded from Windows 7.
My personal files are on another drive, so no worries about loosing them.
I have the passwords for the two accounts I created when I originally installed Windows 7, which have not changed since. One is administrative the other a regular one.
I also have Linux installed and GRUB (boot loader) but I don’t think they are involved in this problem. Linux (Xubuntu 16.04 LTS) is installed on a HDD and is booting fine, except that sometimes I have two NTFS partitions on the same HDD, to be shared between systems, that periodically need fixing with a one liner but that’s it. I think that this is caused by some of my failed attempts to start Windows. Whatever causes it I’ll deal with it later.
The two (2) NTFS partitions in question are also on the HDD with Linux.
The EFI System Partition (fat32 or vfat) used to boot Windows is the first partition on my SSD, first drive, no letter in Windows. Windows is on C:.
I am desperately trying to avoid re-installing Windows because I have many installed drivers/programs & settings tweaks, and because I worry I will mess up my Linux installation. I know that Windows behaves badly with other OSes.
I believe that the problem so far with Windows is independent of GRUB and Linux because I select Windows directly from the UEFI screen, not going through GRUB, and I get a few reboots followed by:
Recovery
Your PC couldn’t start properly. After multiple tries…
Error code: 0xC0000001
You’ll need to user recovery tools
It all started with my attempts to fix the problem with:
bootrec /fixmbr
which produced:
cannot find the file specified.
I tried booting with my Windows-10 DVD which works but none of the suggestions I found on the Web were fruitful for me, including Startup Repair:
Startup Repair couldn’t repair your PC.
Press «Advance options» to try…
Log file: C:\WINDOWS\System32\LogFiles\Srt\SrtTrial.txt
I copied that file to read it later in Linux but the text editors I used (leafpad, mousepad) were unable to open it. I tried all of the encodings shown in Mousepad, two dozens of them, but none worked.
I then tried a whole bunch of stuff, including:
> bootsect /nt60 sys
> bootrec /rebuildBCD
> DISKPART list vol, sel vol ('3' for me), assign letter= ('S' for me)
> bcdboot C:\WINDOWS /s S: /f UEFI
and
C:\Windows\System32>msconfig
produced:
You do not have sufficient privileges …
and
X:\Sources>sfc /scannow
produced:
Beginning system scan…
Beginning verification phase…
Verification 100% complete.
Windows Resource Protection could not perform the
requested operation.
At this point I need to ask for help because I’m starting to get lost in my notes and it’s time consuming to have to boot into Linux to do what I’m doing now, then write everything down on paper, then reboot into Windows, then try, write down the results, reboot into Linux and start that sequence again. I only have one computer. As far as my research and my attempts at solving this, I am past the point of diminishing returns now.
EDIT (1)
UEFI screen options:
CSM Support: Always
Boot Mode Selection: UEFI Only
PXE Boot Option Control: Disabled
Storage Boot Option Control: UEFI First
Display Boot Option Control: UEFI Only
Other PCI Device ROM Priority: UEFI OpRom
I have played (worked painstakingly) on booting problems in the past with this machine, starting with Xubuntu 12.04 and Windows 7 and I need to be very careful with these settings. I am not absolutely certain that it is still true but selecting «Never» for «CSM Support» (legacy mode) prevented booting when I had made sure that everything was strictly GPT and UEFI. It didn’t seem logical to me but that’s what happened. Ever since my initial installation of both OSes, back when I didn’t know much about UEFI and ended up making mistakes even if I had decided from the start to be exclusively UEFI (to make thing simpler… ha ha ha). So that’s why you see here «Always» for CSM Support and «UEFI Only» for Boot Mode Selection, this second one being the important one I think.
EDIT (2)
As a side note I just saw a post on another forum by chance where there is an option in Windows 10 -> Troubleshoot -> Advanced options called «UEFI Firmware Settings» which IS NOT present here on my system. I don’t know if it matters but I thought I should post this just in case. There is something I don’t know. I know for a fact that my installation of Windows and Linux are UEFI and that both drives (1 ssd, 1 hdd) are GPT formatted, so I don’t know why I’m not getting that option.
EDIT (3)
Hibernation is NOT enabled in Windows. (I verified using Safe Mode, the only way I can get into Windows.)
EDIT (4)
I tried booting Windows with «clean boot», i.e. disabled all non-Microsoft services in System Configuration (msconfig) and all items in Task Manager Startup tab. The result was the same.
Any suggestion would be appreciated.
Thanks in advance.