Ich habe versucht, eine einfachere Methode zum Installieren von Windows- und Linux-Dual-Booten auf meinem Laptop zu finden, nicht unbedingt in dieser Reihenfolge. Im Allgemeinen müssen wir zuerst Windows und dann Linux installieren und GRUB erlauben, mit Windows umzugehen.
Ich versuche also, einen Weg zu finden, um diesen lästigen Installationsprozess (Windows) zu umgehen und einfach ein Image zu verwenden, um es direkt auf mein Laufwerk zu kopieren. Dies würde es mir auch ermöglichen, meinen Bootmanager (GRUB) beizubehalten. (Nicht, dass ich es später nicht wiederherstellen kann, aber es ist eine Microsoft-Richtlinie, die monopolisiert werden muss. In diesem Fall wird die Existenz anderer Boot-Manager im System geleugnet.)
Ich habe zuerst eine legale Kopie von Windows 8.1 erhalten und diese dann mit VirtualBox auf einer virtuellen Maschine installiert. Anschließend habe ich eine NTFS-Partition auf meiner GPT-partitionierten Festplatte erstellt und den Inhalt der Windows-Partition vom .vdi-Image auf die neu erstellte Partition kopiert.
Natürlich funktioniert es noch nicht. Ich weiß nicht, wie ich bootmgr ersetzen soll. Es gibt
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
weil es diese Datei von der anderen Partition, die zum Booten, zur Systemwiederherstellung usw. verwendet wird, nicht finden kann.
Jetzt habe ich gelesen, dass bootmgr schließlich winload.exe ausführt, um Windows hochzufahren. Ich habe keine Ahnung, was ich als nächstes tun soll.
Ich denke, es sollte theoretisch funktionieren, da ich alle Dateien habe, die zum Ausführen von Windows erforderlich sind. Ich denke auch, dass ich nicht der einzige sein sollte, der daran gedacht hat, und daher kann mir hier etwas sehr Grundlegendes fehlen. Vielleicht ist es schon fertig?
Ich habe keine Ahnung, wie das Booten funktioniert. Was ich verstanden habe, ist, dass Sie beim Dual-Boot von Windows und Linux den Windows-Bootloader mit Linux verketten. Ich versuche also, den Windows-Bootloader irgendwie loszuwerden.
BEARBEITEN
Ich habe mir die Binärdateien angesehen bootmgr
und \Boot\BCD
. bootmgr
Liest die BCD-Datei und listet Ihre Optionen auf, unter denen Sie zum Booten auswählen können.
Informationen wie das Ausführen befinden winload.exe
sich also in der BCD-Datei. Jetzt denke ich, dass bootmgr
selbst von syslinux mit dem chain.c32
Modul ausgeführt wird. Ich versuche, den Windows-Bootloader irgendwie auszuführen, dh winload.exe
direkt von Syslinux (falls möglich), oder ihn bootmgr
so zu ändern , dass er sich winload.exe
selbst ausführt (dessen Pfad direkt in der bootmgr
ausführbaren Datei liegt), ohne nach BCD oder etwas anderem zu suchen.
Der Ruhezustand (für den ein anderes Verfahren erforderlich ist) ist mir in diesem Schritt nicht wichtig.
Bearbeiten Sie Ihre Frage, um uns den Firmware-Typ und (falls EFI) mitzuteilen, ob Sie das Kompatibilitäts-Support-Modul im Firmware-Setup aktiviert haben
Meine Firmware ist EFI (mit aktiviertem CSM) und ich starte normalerweise mit GRUB in Arch Linux. Ich habe entdeckt , dass , bootmgr
führt eine System32\winload.exe
auf Legacy - Systemen und System32\winload.efi
auf EFI.
Ich habe eine 0.0
Idee, was ich von hier aus tun soll. In den letzten 10 Tagen habe ich versucht, Änderungen an BCD vorzunehmen, und ich denke, ich bin dabei, Erfolg zu haben. Das ist aber irrelevant, denn ich möchte wirklich den Windows Boot Manager komplett umgehen.
Wenn Sie eine Idee haben, ob es eine Möglichkeit gibt, dies winload.efi
über die EFI-Shell auszuführen (nur eine Vermutung) oder eine andere Änderung an GRUB, damit Windows im EFI-Modus ohne den Kettenlader gestartet wird.
Ratschläge sind willkommen.
Nachtrag
Die folgenden Forenbeiträge bieten möglicherweise nützliche Einblicke:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1.
Die grub4dos können derzeit einen Bootloader (wie NTLDR oder BOOTMGR) kettenladen, da er als Ersatz für den in einem "normalen" Bootsektor enthaltenen Code dienen kann (dh etwa 300 Byte Maschinencode).
Dieser Code legt einfach einige Parameter fest und ruft dann den Loader auf.
Auch das ist (war) gar nicht so einfach zu verstehen und mit unterschiedlichem Code zu replizieren.
Ein NT-Systemlader wie BOOTMGR hat mehr oder weniger in einer einzigen EXE-Datei ein "Real Mode" -Betriebssystem (nicht ganz anders als DOS) und Funktionen / Tools zum Parsen von Nur-Text- und Registry-Hives. Es kann nicht erneut verwendet werden leicht von Grund auf neu geschrieben.
Die Guten @ReactOS arbeiten seit JAHREN daran, das FREELDR (das ein Ersatz für das viel einfachere NTLDR sein soll) zu schreiben (und glauben Sie mir, es gibt unter den ReactOS-Programmierern einige wirklich gute und gute Leute).
Es scheint (aber es ist nicht klar dokumentiert), dass es ihnen gelungen ist, einen Server 2003 mit NTLDR experimentell zu starten.
2.
Mit der Einführung der Unterstützung für (U) EFI hilft BootMgr, den Unterschied zwischen BIOS und (U) EFI zu abstrahieren. Hier sind zum Beispiel zwei Sequenzen:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad erwartet, dass eine bestimmte Umgebung (einschließlich API) vorhanden ist. BootMgr kümmert sich darum, sodass [fast] dasselbe WinLoad-Programm in beiden Umgebungen funktioniert.
Tatsächlich definiert (U) EFI eine Methode zum Speichern und Abrufen von Boot-Parametern, sodass der BCD von BootMgr unabhängig vom BIOS / (U) EFI denselben Zweck abdeckt.
Abgesehen von BIOS- und (U) EFI-Unterschieden können Sie mit BootMgr eine "Startauswahl" treffen, während WinLoad ein bestimmtes Betriebssystem startet, das es zu booten weiß.
Abhängig davon, wie viel von einer Umgebung WinLoad erwartet, kann WinLoad möglicherweise direkt aufgerufen werden. Michael Browns Wimboot ruft das BootMgr PE [1] direkt auf, sodass es WinLoad direkt aufrufen kann, außer dass WinLoad wahrscheinlich mehr von einer Umgebung möchte. Sie könnten es versuchen!
[1] Nicht zu verwechseln mit dem BootMgr, den GRUB4DOS und Syslinux 'chain.c32 aufrufen können. Dieser BootMgr enthält einen Stub, der weiß, wie das eingebettete BootMgr-PE aufgerufen wird.
quelle
setup
Dienstprogramm aktiviert haben .Antworten:
Um Ihre ursprüngliche Frage zu beantworten, nein. Windows kann nicht geladen werden, ohne einen eigenen Bootloader zu durchlaufen (bei UEFI-Installationen bootmgfw.efi). Dies liegt daran, dass Windows erwartet, dass der Bootmanager vorhanden ist UND winload.efi aufruft. Wenn dies nicht der Fall ist, stürzt Windows ab, bis Sie das Problem behoben haben. Dafür gibt es viele Gründe (praktisch und unwissend). Meistens liegt es daran, dass Microsoft den Bootmanager geschrieben hat, um alle Aufgaben zu erledigen (Laden des Betriebssystems, Laden der Wiederherstellungsumgebung, Pseudo-Pre-OS-Umgebung usw.). Der einzige Weg, um derzeit einen Anschein von Vernunft zu erreichen, besteht darin, die Last mit Grub-efi zu verketten.
quelle
Sie müssen den Windows EFI-Bootloader zur Liste der Startoptionen in der UEFI-Firmware hinzufügen. Auf diese Weise können Sie wählen, ob:
An dieser Stelle sollten auch zusätzliche Optionen wie das DVD-Laufwerk, externe Festplatten oder der Netzwerkstart sichtbar sein. Der UEFI-Bootloader befindet sich normalerweise auf der Partition
\EFI
(/boot/efi/
). Da Sie gerade das Windows-Festplattenabbild kopiert haben, ohne Windows ordnungsgemäß zu installieren, enthält die EFI-Partition Ihres aktuellen Computers möglicherweise nicht den richtigen Bootloader. Daher ist es notwendigSie sollten dann auswählen können, welches Betriebssystem gestartet wird, indem Sie einfach die Startreihenfolge im BIOS ändern. Wenn Sie auf meinem Laptop drücken F12, wird ein Menü zur Auswahl des zu ladenden Bootloaders angezeigt.
Für diese Schritte werde ich
efibootmgr
die Schritte aus diesem Tutorial verwenden und befolgen :Sie müssen die entsprechende Datei unter oder unter Linux
bootmgfw.efi
auf die EFI-Partition kopieren :\EFI\Microsoft\Boot\bootmgfw.efi
/boot/efi/Microsoft/Boot/bootmgfw.efi
Wo
Microsoft
ist ein Ordner, der die ursprünglichen EFI-Dateien für Ihre Windows-Version enthält.Anschließend müssen Sie die
.efi
Datei zu den UEFI-Starteinträgen hinzufügen, indem Sie Folgendes verwenden:wo natürlich müssen Sie ändern
/dev/sda
und-p 1
auf die richtigen Werte für Ihr Plattengerät und die Partitionsnummer.Beachten Sie Folgendes, wenn Sie einen Lenovo Laptop haben:
Das Starten Ihres PCs sollte dann ungefähr Folgendes anzeigen (wenn Sie während des Startvorgangs die entsprechenden Tasten gedrückt halten):
und
bcdedit
unter Windows zeigt dies:quelle
\EFI\Boot\Microsoft
Ordners zum Testen (dort befinden sich einige Dateien)?inherit {bootloadersettings}
im BCD-Laden eigentlich bedeutet?Sie können Installationen in beliebiger Reihenfolge durchführen, z. B. GNU / Linux und dann Windows oder umgekehrt.
Führen Sie einfach die folgenden Schritte aus, nachdem Sie alle Betriebssysteme installiert haben.
Holen Sie sich die "Boot Repair Disk" von hier. http://sourceforge.net/projects/boot-repair-cd/
Erstellen Sie ein bootfähiges Live-USB-Stick (Anweisungen auf pendrivelinux.com).
Oder brennen Sie die ISO-Datei auf eine CD.
Starten Sie dies und befolgen Sie die Anweisungen auf dem Bildschirm. Sie haben einen neu installierten GRUB, der alle von Ihnen installierten Betriebssysteme enthält.
Alles Gute.
quelle