Задача простая, и в общем случае решается одной командой bcdboot в среде восстановления:
bcdboot W:\Windows
Здесь W — условная буква диска с ОС, а реальная быстро определяется так. Команда копирует все необходимые для загрузки файлы на раздел EFI и создает конфигурацию загрузки BCD.
Но бывают нюансы. На днях решал задачу в такой постановке: в ПК несколько дисков, и если вынуть один, не грузится единственная Windows с другого. Пишет Windows failed to start — 0xc0000225 — The boot selection failed because a required device is inaccessible.
Конфигурация дисков и разделов была такой (вместо красивых скриншотов — фото с экрана, потому что основано на реальных событиях).
При этом на диске с ОС не было раздела EFI, что весьма необычно.
Но это легко исправить. Отжать у системного раздела 100MB можно в diskmgmt.msc, а все остальное уже в среде восстановления:
sel disk 0 create partition efi size=100 format quick fs=fat32 label="System" assign letter="S"
Однако после создания раздела EFI команда bcdboot заканчивалась сообщением Сбой при копировании файлов загрузки (Failure when attempting to copy boot files). При внимательном рассмотрении на одном из других дисков обнаружился раздел EFI, путавший все карты (Volume 6 на первой картинке)
В итоге решилось так:
bcdboot W:\Windows /s S: /f ALL
здесь:
- W — раздел Windows, S — раздел EFI
- /s S: — копирование файлов загрузки на указанный раздел S
- /f ALL — копирование файлов загрузки для UEFI и BIOS (в данном случае необязательно, но тоже можно форсировать)
- /l ru-ru — язык загрузчика (здесь не использовалось, но часто спрашивают, как его сменить)
В результате команда bcdedit рисует такую картину:
В секции Windows Boot Manager (диспетчер загрузки Windows) виден раздел загрузки EFI и полный путь к файлу управления загрузкой. В секции Windows Boot Loader (загрузчик Windows) указан раздел загружаемой системы и полный путь к загрузчику Windows. При включении ПК управление передается диспетчеру загрузки, который в свою очередь загружает Windows.
Здесь я определил проблему «на глаз». Но есть и более научный метод, который я впоследствии описал в канале Telegram.
Алексей Каманин
У меня есть другая проблема. В компьютере два диска, на одном (диск 1) — ОС на GPT, на другом (диск 2) — ОС на MBR.
Компьютер не загружает ОС с диска 1, если к нему подключен диск 2. Просто не происходит передача управления загрузчику. Не помогает даже загрузка с диска вручную через Boot Menu материнской платы. Диск 2 отключаем, перезапускаем ПК — ОС с диска 1 запускается.
Загрузочные разделы на каждом диске свои (на диске 1 загрузчик для ОС на диске 1, на диске 2 загрузчик для ОС на диске 2).
Пока времени изучить проблему нет.
Vadim Sterkin
Изучение этой или предыдущей статьи подтолкнет в правильном направлении решения проблемы :)
Gemostarter
Кривые прошивки такие кривые)) Обновить пробовали?
resident82
Была ситуация когда пригодилась бы информация. Есть две ссдшки, так вот при установке десятки на одну из них, системные разделы почему-то создавались на второй. В дальнейшем я про это забывал и успешно их затирал, ну и дальше полный энтузиазма отключал вторую ссдшку и переустанавливал систему с только одной подключенной.
Vadim Sterkin
Да, такое же решение.
Денис Таранушин
Вчера целый час убил, на схожую задачу. после восстановления раздела, и при попытке добавить вторую винду словил ошибку.
Но у меня пробелма оказалась еще и в том что из PowerShell не работает bcdedit.
запустил cmd от туда все ок.
Vadim Sterkin
Работает, но PowerShell интерпретирует фигурные скобки как блок скриптов. Поэтому проще работать с bcdedit в cmd.