Можно ли загрузить Windows 8.1 без собственного менеджера загрузки?

Можно ли загрузить Windows 8.1 без собственного менеджера загрузки?

Я пытался придумать более простой способ установки двойной загрузки Windows и Linux на моем ноутбуке, не обязательно в таком порядке. Обычно нам нужно сначала установить Windows, а затем установить Linux и позволить GRUB управлять Windows.

Так что я пытаюсь найти способ обойти этот надоедливый процесс установки (windows) и просто использовать образ для прямого копирования на мой диск. Это также позволило бы мне сохранить мой менеджер загрузки (GRUB). (не то чтобы я не мог восстановить его впоследствии, но политика Microsoft заключается в монополизации, в данном случае отрицая существование других менеджеров загрузки в системе).

Сначала я получил легальную копию Windows 8.1, затем приступил к ее установке на виртуальной машине с помощью VirtualBox. Затем я создал раздел NTFS на моем жестком диске с разделами GPT и скопировал содержимое раздела Windows из образа .vdi в недавно созданный раздел.

Конечно, пока не работает. Я не знаю, как заменить bootmgr. Это дает

File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.

потому что он не может найти этот файл из другого раздела, который используется для загрузки, восстановления системы и т. д.

Теперь я прочитал, что bootmgr в конечном итоге запускает winload.exe для загрузки Windows. Я понятия не имею, что делать дальше.

Я считаю, что это должно работать теоретически, потому что у меня есть все файлы, необходимые для запуска Windows. Я также думаю, что я не единственный, кто думал об этом, и поэтому я могу упустить что-то очень простое. Может быть, это уже сделано?

Я слабо представляю, как работает загрузка. Мне удалось понять, что когда вы делаете двойную загрузку Windows и Linux, вы привязываете загрузчик Windows к загрузчику Linux. Так что я пытаюсь как-то избавиться от загрузчика Windows.

РЕДАКТИРОВАТЬ

Я просматривал двоичные файлы bootmgrи \Boot\BCD. bootmgrсчитывает файл BCD и перечисляет ваши варианты, среди которых вы можете выбрать для загрузки.

Итак, информация, например, выполнение, winload.exeнаходится в файле BCD. Теперь, я думаю, bootmgrчто сам выполняется syslinux с помощью chain.c32модуля. Я пытаюсь как-то выполнить загрузчик Windows, т. е. winload.exeнапрямую из syslinux (если возможно), или изменить bootmgrтак, чтобы он выполнял winload.exeсебя сам (чей путь будет прямо в bootmgrисполняемом файле), не ища BCD или что-то еще.

Спящий режим (который требует другой процедуры) на данном этапе меня не волнует.

Отредактируйте свой вопрос, указав тип прошивки и (если EFI), включили ли вы модуль поддержки совместимости в настройках прошивки.

Моя прошивка — EFI (с включенным CSM), и я обычно загружаюсь в Arch Linux с помощью GRUB. Я обнаружил, что это bootmgrвыполняется System32\winload.exeна устаревших системах и System32\winload.efiна EFI.

У меня есть 0.0идея, что делать дальше. Последние 10 дней я пытаюсь внести изменения в BCD и думаю, что скоро достигну успеха. Но это неважно, потому что на самом деле я хочу вообще обойти диспетчер загрузки Windows.

Если у вас есть какие-либо идеи, есть ли способ выполнить это winload.efiиз оболочки EFI (только предположение) или есть какая-то другая модификация GRUB, чтобы он загружал Windows в режиме EFI без цепочного загрузчика.

Любые советы приветствуются.

Приложение

Следующие сообщения на форуме могут дать полезную информацию:

http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/

1.

В настоящее время grub4dos может загружать по цепочке загрузчик (вроде NTLDR или BOOTMGR), поскольку он может выступать в качестве замены кода, содержащегося в «обычном» загрузочном секторе (т. е. около 300 байт машинного кода).

Этот код просто устанавливает несколько параметров, а затем вызывает загрузчик.

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

Загрузчик системы NT, такой как BOOTMGR, содержит в себе более или менее операционную систему «реального режима» (не сильно отличающуюся от DOS) в одном .exe-файле и средства/инструменты для анализа как обычного текста, так и кустов реестра. Его нелегко переписать с нуля.

Хорошие ребята из @ReactOS работают над написанием FREELDR (который призван стать заменой гораздо более простому NTLDR) уже МНОГО ЛЕТ (и поверьте мне, среди программистов ReactOS есть действительно хорошие и преуспевающие в этом ребята).

Этокажется(но это четко не задокументировано) им удалось экспериментально загрузить Server 2003 с NTLDR.

2.

С введением поддержки (U)EFI BootMgr помогает абстрагировать разницу между BIOS и (U)EFI. Например, вот две последовательности:

BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows
64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows

WinLoad ожидает наличия определенной среды (включая API). BootMgr заботится об этом, поэтому [почти] одна и та же программа WinLoad будет работать в любой среде.

Фактически, (U)EFI определяет метод хранения и извлечения параметров загрузки, поэтому BCD BootMgr решает ту же задачу, независимо от BIOS/(U)EFI.

Но помимо различий в BIOS и (U)EFI, BootMgr позволяет вам сделать «выбор загрузки», тогда как WinLoad загружает конкретную операционную систему, которую он знает, как загрузить.

В зависимости от того, какую часть среды WinLoad ожидает иметь, может быть возможным вызвать WinLoad напрямую. Wimboot Майкла Брауна вызывает BootMgr PE[1] напрямую, поэтому он может вызвать WinLoad напрямую, за исключением того, что WinLoad, вероятно, хочет больше среды. Вы можете попробовать это!

[1] Не путать с BootMgr, который могут вызывать GRUB4DOS и Syslinux' chain.c32. Этот BootMgr включает заглушку, которая знает, как вызывать встроенный BootMgr PE.

решение1

Отвечая на ваш первоначальный вопрос, нет. Windows не может быть загружена без прохождения через ее собственный загрузчик (в случае установок UEFI, bootmgfw.efi). Это потому, что Windows ожидает, что менеджер загрузки будет там И вызовет winload.efi. Если этого не произойдет, то Windows будет зависать, пока вы не исправите проблему. Для этого есть много причин (практических и невежественных). В основном это потому, что Microsoft написала менеджер загрузки для обработки всех вещей (загрузка ОС, загрузка среды восстановления, псевдопредоперационной среды и т. д.). Единственный способ в настоящее время достичь хоть какого-то подобия здравомыслия — это цепочка загрузок с использованием Grub-efi.

решение2

Вам необходимо добавить загрузчик Windows EFI в список вариантов загрузки в прошивке UEFI. Таким образом, вы сможете выбрать:

  1. GRUB2 должен быть загружен или
  2. загрузчик Windows должен быть загружен

Дополнительные параметры, такие как DVD-привод, внешние жесткие диски или сетевая загрузка, также должны быть видны в этот момент. Загрузчик UEFI обычно находится в разделе \EFI( /boot/efi/). Поскольку вы только что скопировали образ жесткого диска Windows без надлежащей установки Windows, раздел EFI вашей текущей машины может не содержать надлежащего загрузчика. Таким образом, необходимо

  1. Скопируйте загрузчик в раздел EFI
  2. Добавьте Windows в качестве варианта загрузки вместе с GRUB2

Затем вы сможете выбрать, какая ОС будет загружена, просто изменив порядок загрузки в BIOS. На моем ноутбуке нажатие F12вызывает меню для выбора загрузчика для загрузки.

Для этих шагов я буду использоватьefibootmgrи следуйте инструкциям изэтот урок:

Вам необходимо будет скопировать соответствующий файл bootmgfw.efiв раздел EFI по адресу \EFI\Microsoft\Boot\bootmgfw.efi, или /boot/efi/Microsoft/Boot/bootmgfw.efiпри использовании Linux:

# mkdir -p /boot/efi/EFI/Microsoft
# cp -r Microsoft /boot/efi/EFI/Microsoft

где Microsoftнаходится папка, содержащая оригинальные файлы EFI для вашей версии Windows.

Затем вам необходимо добавить .efiфайл в загрузочные записи UEFI с помощью:

# efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\Microsoft\\Boot\\bootmgfw.efi -L "Windows Boot Manager"

где вам, конечно, необходимо изменить /dev/sdaи -p 1на правильные значения для вашего дискового устройства и номера раздела.

Обратите внимание, если у вас ноутбук Lenovo:

Также обратите внимание, что по крайней мере один производитель (Lenovo) поставляет продукцию с известной ошибкой, из-за которой система отказывается загружаться, если имя загрузчика не «Windows Boot Manager» или «Red Hat Enterprise Linux».

При запуске вашего ПК должно появиться что-то вроде этого (если вы удерживаете соответствующие клавиши во время процесса загрузки):

Windows Boot Manager
ubuntu
USB CD
USB FDD
ATAPI CD
ATA HDD2

(etc.)

а bcdeditна Windows показывает это:

C:\WINDOWS\system32>bcdedit /enum firmware

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {bootmgr}
                        {bb086763-b111-11e2-bf8e-806e6f6e6963}
                        {8e7fb978-8bc8-11e2-bf2f-806e6f6e6963}
timeout                 0

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
integrityservices       Enable
default                 {current}
resumeobject            {ec215a09-8bc4-11e2-bf2b-0024d7eb75a4}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 2

(...)

Firmware Application (101fffff)
-------------------------------
identifier              {bb086763-b111-11e2-bf8e-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\ubuntu\grubx64.efi
description             ubuntu

решение3

Вы можете выполнять установку в любом порядке, например, сначала установить GNU/Linux, а затем Windows или наоборот.

Просто выполните следующие действия после установки всех операционных систем.

  1. Получите «Диск восстановления загрузки» здесь.http://sourceforge.net/projects/boot-repair-cd/

  2. Создайте загрузочный USB-накопитель Live (инструкции на pendrivelinux.com)

  3. Или запишите ISO-файл на CD.

  4. Загрузитесь через это и следуйте инструкциям на экране. У вас будет переустановленный GRUB, содержащий все установленные вами операционные системы.

Всего наилучшего.

Связанный контент