Gibt es eine Möglichkeit, Windows 7/8 über das BIOS unter GPT zu starten?

21

Ich möchte wissen, ob es eine Methode gibt, mit der Windows 7 oder Windows 8 Developer Preview auf einem GPT-Datenträger in meinem herkömmlichen IBM PC-BIOS-Setup installiert werden kann. Natürlich lehnt Windows 7 meine GPT-Partition ab, da ich kein UEFI habe. Nun, Debian und Grub 2 scheinen gut zu funktionieren ... Ich möchte wissen, ob es eine Möglichkeit gibt, Windows dazu zu zwingen, ebenfalls zu funktionieren.

Ich würde es ernsthaft vorziehen, hybrides MBR / GPT zu vermeiden, weil es ziemlich zerbrechlich ist und sich hackisch anfühlt, aber es funktioniert . Ich würde annehmen, dass der Hauptblocker darin besteht, dass Microsoft in seinem BIOS-Bootloader für GPT einfach keine Unterstützung hinzufügt, was verständlich ist, nehme ich an. Gibt es einen Rückgriff?

Aus meiner Sicht gibt es einige mögliche Lösungen:

  1. Einen alternativen Bootloader für den Windows-Kernel haben. KEIN Kettenlader. Soweit ich weiß, gibt es keine. Das ist eine Schande.
  2. Speichern Sie so wenig wie möglich auf einer alternativen MBR-basierten Festplatte. Diese Idee gefällt mir nicht, aber sie ist machbar. Ich bin mir nicht sicher, ob ich dies eine Lösung des Problems oder eine Umgehung nennen würde.
  3. EFI genug emulieren, um den EFI-Bootloader zum Laufen zu bringen ... Ich erinnere mich, dass ich etwas über einen UEFI-on-BIOS-Emulator gehört habe, aber ich kann jetzt nichts darüber finden. Ich gehe davon aus, dass dies machbar ist, aber es besteht wahrscheinlich noch keine große Nachfrage und das Einrichten macht wahrscheinlich überhaupt keinen Spaß. GRUB 2 scheint in der Lage zu sein, einen Hackintosh mit der erforderlichen EFI-Emulation zu booten, aber ich glaube, es gibt kein Interesse / UEFI 2 ist schwieriger zu erreichen (und ich würde annehmen, dass andere für den Hackintosh verwendete EFI-Emulatoren auf demselben Boot sind).
  4. Coreboot mit TainoCore. Coreboot funktioniert auf meinem Motherboard (soweit ich weiß) nicht und ich bin mir ziemlich sicher, dass der letzte Versuch, dies während der GSoC zu tun, ein Fehler war. Ich würde diese Lösung absolut lieben, wenn sie funktionieren würde.

Vermisse ich etwas?

John Chadwick
quelle
1
Nicht ganz. Ich weiß, dass es auf hybriden MBR / GPT laufen kann und ich habe keine Angst, es zu verwenden. Außerdem bin ich mit dieser Lösung unzufrieden und möchte wissen, ob es einen anderen, besseren Weg gibt. Ich arbeite jedoch immer noch an diesem Problem und finde möglicherweise meine eigene Lösung.
John Chadwick
1
Ich bin mir ziemlich sicher, dass es sich bei dieser Frage um ein Duplikat handelt. Außerdem gibt es dort wirklich keine oder zumindest keine direkte Antwort auf die Frage, wohingegen diese Frage eine direkte Antwort hat.
John Chadwick
Hast du meine Antwort überprüft? Es ist neu und niemand anderes hat es so gemacht. Möchte ein bisschen testen. Garantiert nicht hacky.
Milind R
Auf einem Laptop funktioniert das allerdings nicht. Aber auch hier finde ich es schrecklich seltsam, diese Frage als Duplikat zu kennzeichnen, nachdem sie fast zwei Jahre, bevor diese Frage überhaupt gestellt wurde, ausreichend beantwortet wurde. Das Ausführen einer UEFI-Implementierung empfinde ich nicht als hackisch. Es ist einfach nur ausgefallen, hat aber den Vorteil, dass keine zusätzlichen Festplatten erforderlich sind.
John Chadwick
Es ist eine Single-Disk-Implementierung in Arbeit, die aktualisiert wird, wenn sie getestet wird. Es ist auch ein Hack in dem Sinne, dass Sie Windows über das System belügen: in Hybrid-MBR, über den Partitionstyp, in DUET, Lügen über die Firmware.
Milind R

Antworten:

8

Nun, die Dinge haben sich geändert, seit ich diese Frage zum ersten Mal gestellt habe. Zum einen ist mein PC jetzt UEFI-basiert, sodass ich dieses Problem nicht mehr habe. Naja, so ungefähr. Ich hatte Interesse an einem ähnlichen Setup auf meinem Laptop (GPT-Partitionen usw.). Endlich gelang es mir, ein funktionierendes Tianocore UEFI DUET-Setup zu erhalten.

Dies setzt voraus, dass Sie alle glänzenden, neuen Setups möchten. Wenn Sie Ihr altes Setup tatsächlich konvertieren möchten, wünschen wir Ihnen viel Glück . Eigentlich viel Glück so oder so, da dies in jeder Situation eine fleckige Operation ist.

Ein Wort der Warnung: Wenn Sie ein Fan von schnellen Boot - Zeiten sind, Sie können wollen , diese Entscheidung zu überdenken. Nicht, dass UEFI DUET langsam ist, aber es fügt Ihrem Bootprozess eine weitere Stufe hinzu. Wenn Ihr BIOS / POST also nicht schnell ist, gefällt Ihnen dies möglicherweise nicht.

Ohne weiteres:

  1. Sie benötigen ein Linux-Setup. Ich habe Fedora 16 von einem USB-Stick (mit UNetBootin) verwendet und kann es nur empfehlen, da es praktisch sofort funktioniert. Sie benötigen sowieso ein USB-Laufwerk, planen Sie also nicht, ohne eines fortzufahren.

  2. Besorgen Sie sich einige UEFI DUET-Builds. Ohne Frage ist der beste Ort, um dies zu bekommen, hier . Die tatsächlichen Build tarballs sind unter dem Hauptzweig des ersten Repository hier . Gib es dem Alten tar -xf.

  3. Richten Sie Ihre Partitionen ein. Sie sollten irgendwo auf der Festplatte 200 MB reservieren (am besten am Anfang und an der ersten Partition). Sie können sie mit FAT32 formatieren, aber wir formatieren sie später neu. Stellen Sie einfach sicher, dass es als Partition angezeigt wird. Sie sollten hier GPT verwenden.

  4. Installieren Sie nun die zusätzliche Software, die Sie möglicherweise benötigen. Bei der Fedora Live-Distribution habe ich festgestellt, dass ich sie brauchte yum install gdisk. Ich denke das war es.

  5. Gehen Sie nun in das extrahierte Build-Verzeichnis. chmod +x ./duet-installund ./duet-install -64 -F -m /dev/sda1(Wo /dev/sda1befindet sich Ihre gewünschte EFI-Systempartition?)

  6. Drücken Sie die Daumen und starten Sie neu. Mit etwas Glück können Sie das TianoCore-Logo in wenigen Augenblicken erkennen. Wenn ja, bist du wahrscheinlich gut! Sie werden Ihre OS - Installationsdateien auf dem Setup auf einem USB - Laufwerk benötigen - Tianocore ist nicht CD-ROM / DVD-ROM - Laufwerke aus der Box unterstützen (und ich kenne keinen Treiber dafür.)

Möglicherweise möchten Sie auch mit einigen UEFI-Shell-Binärdateien spielen. Ich habe hier welche gefunden . Hat aber noch nicht mit Tianocore getestet.

Trotzdem vielen Dank für alle, die versucht haben zu helfen.

John Chadwick
quelle
Dies funktioniert mit Windows-Installationen?
Moab
Ich habe es bereits 2012 erfolgreich mit Windows 8 verwendet. Ich brauche es nicht mehr, da alle in den letzten Jahren hergestellten Produkte UEFI verwenden, da Windows 8+ Hardware-Hersteller benötigt, um es zu unterstützen. Es würde wahrscheinlich noch heute funktionieren, aber ich weiß nicht, ob ich es empfehlen würde.
John Chadwick
2
Die UEFI DUET-Verbindung sollte jetzt hier sein , wird jedoch nicht mehr beibehalten. Die Website sagt, stattdessen Clover EFI zu verwenden.
kirbyfan64sos
1
und Sie können Clover auf Festplatte installieren , um die Notwendigkeit eines separaten Laufwerks zu beseitigen
phuclv
6

Ich habe es geschafft, Windows 8.1 auf einer GPT-Festplatte unter einem BIOS-Setup OHNE eine zweite MBR-Festplatte zu starten.

Die Geschichte war: Mein Laptop befand sich unter einem BIOS + GPT-Setup, auf dem nur Arch Linux installiert war. In letzter Zeit muss ich einige Aufgaben unter Windows ausführen (die von virtuellen Maschinen nicht ausgeführt werden können), sodass ich Probleme habe, Windows unter meinem vorhandenen BIOS + GPT-Setup zu installieren. Laut Milinds Antwort ist es mir gelungen, Windows-Bootdateien (Boot, bootmgr usw.) auf einem (kleinen) MBR-USB-Laufwerk zu installieren. Und jedes Mal, wenn ich meinen Laptop mit dem eingesteckten USB-Laufwerk einschalte, kann ich Windows 8.1 starten. Danach kann das Laufwerk sicher ausgesteckt werden.

Der Nachteil liegt auf der Hand: Ich muss ein USB-Laufwerk bei mir haben, um Windows zu starten. Also habe ich immer versucht, es loszuwerden.

Nachdem ich verschiedene Methoden ausprobiert hatte, stellte ich fest, dass das Memdisk-Modul des Syslinux-Projekts funktioniert.

  • Sie müssen den Windows-Start-Manager aufgeben.
  • Sie müssen Syslinux nicht installieren. Es wird nur das memdisk-Modul (eine 26-kB-Datei) benötigt.
  • Sie können viele Bootloader verwenden, um dieses Modul zu laden, in meinem Fall meinen Lieblings-Bootloader GRUB (Version 2).

Hier ist der Überblick über die Vorgehensweise:

  • Partitionieren Sie Ihre GPT-Festplatte, um die Anforderungen von GRUB zu erfüllen, dh eine kleine Partition zum Einbetten von core.img. Ausführlicher Link
  • Installieren Sie GRUB auf dieser kleinen Partition.
  • Installieren Sie Windows mit imagex.Verwenden Sie bootsectund bcdboot, um Windows-Startdateien auf einem kleinen MBR-USB-Datenträger zu installieren..
  • Verwenden Sie ddoder dd_rescue, um Ihre kleine USB-Festplatte in ein Image zu klonen. (Ihre USB-Festplatte hat ihre Arbeit beendet.) Das Image ist möglicherweise zu groß, um von der memdisk geladen zu werden. Sie können es einbinden und das Dateisystem / die Partition darin verkleinern.
  • Meinem Test zufolge benötigen Sie keine physische MBR-Festplatte, um Windows-Startdateien zu installieren. Sie können eine vhd-Datei erstellen und als physische Festplatte behandeln.Nachdem Sie die Windows-Startdateien auf dem virtuellen Datenträger installiert haben, können Sie sie mit den von VirtualBox oder QEUM bereitgestellten Tools in ein unformatiertes (dd style) Festplatten-Image konvertieren.Bei type=fixedder Erstellung mit handelt es sich bei der vhd-Datei lediglich um ein normales Raw-Image (dd-style) mit einer Fußzeile von 512 Bytes. Die Fußzeile wird als "unpartitionierter Speicherplatz" erkannt und ignoriert, sodass eine type=fixedvhd-Datei direkt in MEMDISK eingespeist werden kann, ohne dass Windows konvertiert und somit gestartet werden muss.
  • Konfigurieren Sie GRUB so, dass dieses Disk-Image mithilfe von memdisk geladen wird.
  • Windows wird gestartet.

Eine detaillierte Anleitung finden Sie in meiner Antwort auf Milinds Thread " reboot.pro ".

Zhuoyun Wei
quelle
1
@wzboy Ich benutze Arch Linux und habe es geschafft, nach der Installation von Windows (mit wimlib-imagex). Jetzt bin ich mir nicht sicher, wie ich weitermachen soll. Könnten Sie näher erläutern, wie Sie die vhd-Datei aus einer Linux-Distribution heraus erstellen?
Mihai Bişog
@ MihaiBişog Du benötigst ein Windows PE um diesen VHD zu erstellen. Es gibt viele Möglichkeiten, Windows PE zu starten. GRUB und Syslinux können zum Beispiel in ISO-Dateien booten.
Zhuoyun Wei
Bricht dies nicht Windows-Updates? Ich meine, wenn Microsoft ein Update veröffentlicht, das diese boot / bootmgr-Dateien, die Sie in das Image der virtuellen Festplatte geschrieben haben, ändern sollte, werden sie nicht aktualisiert und Sie bemerken dies auch nicht. Auch ich nehme an, dass dies einige Windows-Reparaturvorgänge brechen kann. Gibt es noch andere Nachteile?
Powerman
Tatsächlich wird BCD / Bootmgr von Windows nie gefunden, da es sich in einem Disketten- / Disketten-Image befindet. Also keine Frage der automatischen Aktualisierung. Die automatische Reparatur funktioniert nicht. Alles, was mit Microsoft-Tools im Zusammenhang mit Ihrem Systemstart zu tun hat, funktioniert wahrscheinlich nicht.
Milind R
1
Ja, alles, was mit bootmgr zu tun hat, funktioniert nicht, da es "weg" ist, nachdem es Ihrem Windows beim Booten geholfen hat. Wenn Sie "bcdedit" in cmd.exe ausführen, werden Sie darüber informiert, dass keine Startdateien gefunden werden können. :-)
Zhuoyun Wei
5

Wenn Sie sogar ein kleines Ersatzlaufwerk haben, können Sie Windows (entweder 32 oder 64 Bit) über GPT im BIOS starten. Eine Diskette reicht aus.

Starten Sie die Windows-Installations- / Reparatur-CD.

Erstellen Sie das Systemlaufwerk auf der kleinen Diskette und speichern Sie bcdbootIhre Startdateien auf dem neu erstellten Laufwerk der kleinen Diskette. Fügen Sie mit einen Bootsector hinzu bootsect. Ändern Sie die {bootmgr} deviceauf boot. Booten Sie von einer kleinen Festplatte.

Die einzelnen Schritte werden hier beschrieben .

Milind R
quelle
2
Versuchte das und es hat funktioniert. Jetzt habe ich ein funktionierendes Windows 8.1 auf einer GPT-Festplatte unter einem BIOS-Setup. Ich muss lediglich meinen USB-Stick anschließen, um ihn zu starten. Nach dem Bootvorgang kann das USB-Laufwerk entfernt werden. Genau wie in alten Zeiten meine ich MS-DOS-Diskette ...
Zhuoyun Wei
Lol. Ich arbeite an einer Lösung, für die keine weitere Festplatte erforderlich ist. Kannst du mir sagen, wie langsam / schnell es ist?
Milind R
1
Ich denke, wenn man bootmgr auf eine andere Festplatte legt, wird das Booten von Windows nicht länger, zumindest fühle ich es nicht.
Zhuoyun Wei
2
OHHHH JA. Entschuldigung für zu aufgeregt. Ich verbrachte einen ganzen Nachmittag und schaffte es schließlich, Windows 8.1 auf einer GPT-Festplatte unter einem BIOS-Setupt OHNE eine zweite (kleine) MBR-Festplatte zu booten - unter Verwendung eines Syslinux-Memdisk-Moduls, das Festplatten-Images laden kann.
Zhuoyun Wei
1
Hier ist mein Beitrag: reboot.pro/topic/…
Zhuoyun Wei
3

Vielen Dank an wzyboy.

Bei der Installation von Windows 2012 auf Dell PowerEdge 2950 mit 6 TB RAID trat dieses Problem auf. Es hat keine UEFI.

Ich habe einige Experimente durchgeführt. Zuerst habe ich, wie Wzyboy sagte, eine virtuelle 32-MB-Festplatte erstellt und einfach alles von der von Microsoft reservierten Partition kopiert. Windows wurde normal gestartet. Mit dieser Lösung kann der Hyper-V-Dienst jedoch nicht gestartet werden.

Wie im memdisk-Wiki angegeben, entscheidet es automatisch anhand der Bildgröße, welche Art von Medien emuliert werden sollen. Also habe ich eine virtuelle 720K-Diskette in der WMware-Umgebung erstellt und darin bootmgr, BCD und bootstat.dat kopiert (nur für den Fall, dass das memtest-Untermenü aus dem BCD-Speicher gelöscht wurde). Ich habe eine Floppy-Größe gewählt, die so klein wie möglich ist. Sie kann also größer oder sogar kleiner sein. Ich habe es nicht versucht.

Jetzt bootet es vom GPT-Laufwerk und Hyper-V funktioniert gut.

PS kann Software von Drittanbietern helfen. Hat jemand so etwas benutzt? https://www.terabyteunlimited.com/bootit-bare-metal.htm

Nikolai Vakulenko
quelle
Nachdem ich viele Stunden mit Image-Tricks verbracht hatte, stellte ich fest, dass der RAID-Controller Perc5-i in der Lage ist, ein Array kleiner als die physische Festplattenkapazität aufzuteilen. Auf professioneller Hardware ist GPT-Booten also kein Problem.
Nikolai Vakulenko
Kannst du bitte dein Szenario und deine Fehlerbehebung in diesem Entwickler-Thread erläutern ? Ich versuche, alle Details zusammenzuhalten.
Milind R
2

Der Artikel Eine BIOS-zu-UEFI-Transformation beschreibt detailliert die Verwendung von TainoCore UEFI DUET.

Ich verstehe, dass Sie Probleme mit TainoCore hatten, aber vielleicht funktioniert dieser Artikel für Sie.

Der Artikel sagt:

Einige Computer arbeiten nicht mit UEFI DUET. Am wichtigsten ist jedoch, dass es nur auf 64-Bit-x86-64-Computern nützlich ist, insbesondere in binärer Form. Tatsächlich wird es auch auf einigen x86-64-Computern nicht ordnungsgemäß gestartet. In Tests auf fünf x86-64-Systemen gelang es mir, eine oder beide Versionen auf nur drei Computern zum Laufen zu bringen - eine wirklich bedrückende Erfolgsquote. Es mag nur Zufall sein, aber die beiden Computer, die für mich am besten funktionierten, verwendeten Intel-CPUs, während die beiden, die am schlechtesten funktionierten, und derjenige, der mit Version 2.1, aber nicht mit Version 2.3 funktionierte, alle AMD-CPUs hatten.

Dies scheint zu implizieren, dass man mehrere Versionen von UEFI DUET ausprobieren sollte, bevor man aufgibt.

Es wäre hilfreich, das Modell Ihres Computers zu kennen.

Harrymc
quelle
Seit ich diese Frage das letzte Mal aktualisiert habe, konnte UEFI DUET tatsächlich erfolgreich auf meinem Computer gestartet werden. Leider hat mich das Fehlen eines DVD-ROM-Treibers umgebracht, da ich keine USB-Laufwerke hatte, auf denen Windows gespeichert werden konnte. Nachdem meine primäre Festplatte zufällig ausgefallen war, entschied ich mich, sie auszuruhen und die BIOS-Partitionierung für ein Ersatzlaufwerk zu verwenden. Dieser Artikel ist jedoch auf jeden Fall hilfreich, und ich bin immer noch daran interessiert, dies selbstständig zum Laufen zu bringen. Ich werde versuchen, mich bald daran zu erinnern, ein Flash-Laufwerk mitzunehmen.
John Chadwick
@ JohnChadwick Sie können Clover verwenden und auf der Festplatte installieren, so dass Sie kein separates Boot-Laufwerk mehr benötigen
phuclv
@phuclv: Hast du bemerkt, dass der Kommentar von John Chadwick aus dem Jahr 2011 stammt und dass er seine eigene Antwort auf diesen Beitrag gegeben hat?
Harrymc
@harrymc natürlich weiß ich. Diese Info ist für zukünftige Leser
phuclv
0

Die Leute müssen bedenken, dass nicht alle BIOS-Firmware in der Lage sind, mit einem GPT-Laufwerk umzugehen. Ich habe ein USB-Seagate-4-TB-Laufwerk von GPT ab Werk, und keiner meiner beiden Computer bootete mit dem an den USB-Anschluss angeschlossenen Laufwerk.

Die Maschinen frieren beim Startmenübildschirm von F2 Enter Setup F10 ein, und das Einzige, was Sie zu diesem Zeitpunkt tun können, ist, den Computer aus- und wieder einzuschalten.

Sobald ich das Laufwerk in MBR konvertiert habe, wodurch etwa 2 TB Festplattenspeicherplatz verloren gehen, werden beide Systeme gestartet und das Betriebssystem wird wie gewohnt mit angeschlossenem Laufwerk gestartet.

Ich suche nach einem BIOS-Patch, um dieses Problem zu beheben.

Scott Tovey
quelle
Das BIOS weiß nichts über das Laufwerk , ob GPT oder MBR oder sogar BSD-Label oder APM ... Es lädt nur den ersten Sektor (dh MBR) und führt ihn aus. Zu diesem Zeitpunkt kann der Auftrag des BIOS als "erledigt" betrachtet werden. Wenn Ihr Laufwerk nicht bootet, bedeutet dies nur, dass auf dem Laufwerk kein gültiger Bootsektor vorhanden ist
phuclv