я пытался придумать более простой способ установки двойной загрузки 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.