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

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

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

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

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

File: BootBCD
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.

EDIT

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

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

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

редактировать свой вопрос, чтобы сообщить нам тип прошивки, и (если EFI) ли
вы включили модуль поддержки совместимости во встроенном ПО
setup

моя прошивка EFI (с включенным CSM), и я обычно загружаюсь в Arch Linux с помощью GRUB.
Я обнаружил, что bootmgr выполняет System32winload.exe на устаревших системах и System32winload.efi на ЭФИ.

я 0.0 мысль о том, что делать отсюда. В течение последних 10 дней я пытался внести изменения в БХД, и я думаю, что достигну успеха. Но это не имеет значения, потому что я действительно хочу сделать, это обойти диспетчера загрузки Windows.

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

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

дополнительное соглашение

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

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

1.

в grub4dos прямо сейчас можете chainload загрузчик (ntldr или как
BOOTMGR), поскольку он может выступать в качестве замены кода, содержащегося в
"нормальный" bootsector (т. е. что-то вроде 300 байт машинного кода).

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

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

системный загрузчик NT, такой как BOOTMGR, имеет более или менее в одном .exe a
операционная система" real mode " (в отличие от DOS) и
средства / инструменты для разбора как обычного текста, так и кустов реестра, это
не то, что можно переписать с легко поцарапать.

хорошие ребята @ReactOS работают над написанием FREELDR (который направлен
быть заменой более простой NTLDR) с годами (и
поверьте, среди программистов ReactOS есть действительно хорошие
и хорошо, ребята).

It кажется (но это четко не задокументировано), что им удалось
загрузите экспериментально сервер 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 определяет метод хранения и загрузки
параметры, поэтому BOOTMGR в BCD охватывает ту же цель, независимо от
BIOS / (U)EFI.

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

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

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

21
задан osolmaz
05.12.2022 1:40 Количество просмотров материала 3582
Распечатать страницу

3 ответа

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

5
отвечен ChrisR. 2022-12-06 09:28

вам необходимо добавить загрузчик 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" или " 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
2
отвечен jmiserez 2022-12-06 11:45

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

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

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

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

  3. или записать ISO файл на компакт-диск.

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

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

0
отвечен Raju Devidas 2022-12-06 14:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bootloader
linux
multi-boot
partitioning
windows
Вверх