Windows auf einem Hybrid-MBR / GPT

18615
Patches

Ich dachte, ich hätte Windows endlich in einer virtuellen Maschine zum Leben erweckt, aber leider bin ich auf einige Spiele gestoßen, die ich gerne spielen würde, die in diesem Setup einfach nicht ausreichen. In den Tagen, seit Windows das letzte Mal ein bestimmtes Stück meiner Festplatte besetzt hatte, habe ich mich mit verschiedenen Betriebssystemen und Linux-Distributionen herumgetrieben, und es stellte sich heraus, dass ich zwar über freien Speicherplatz verfügte, aber die maximale Anzahl unterstützter Partitionen war von MBR-Partitionstabellen . Im Glauben, dass es Just Work® hier im 21. Jahrhundert geben sollte und nachdem Google eine flüchtige Prüfung durchgeführt hatte, die darauf hinweist, dass es funktionieren sollte, konvertierte ich zu einer GUID-Partitionstabelle (GPT) und versuchte, Windows 7 zu installieren. Windows 7 funktioniert nur mit GPTs auf EFI-Systemen, und bei mir wird das BIOS verwendet. ichDas hätte ich in meinen früheren Forschungen bemerkt, aber das wäre einfach zu einfach gewesen.

Ich habe also die Wahl, zurück in MBR zu konvertieren und zu versuchen, mein Partitionslayout so zu steuern, dass ich eines für Windows erstellen kann, oder mit einem hybriden MBR . Letzteres klingt ansprechender. Leider gibt es im Internet viele unheimliche Warnungen vor hybriden MBRs, daher habe ich einige Fragen.

Wird Windows für meinen Bootloader etwas Hässliches tun, da es wirklich GPT ist, aber MBR angezeigt wird? Wird dafür mehr Reparatur erforderlich sein, als von einer LiveCD aus zu starten und auszuführen grub-install? Gibt es etwas, das ich vermeiden muss, außer sicherzustellen, dass ich die Partitionierungstools unter Windows niemals anfasse? Wird mein Computer explodieren? Würden viele Kopfschmerzen gerettet, wenn ich einfach wieder auf MBR umgestellt habe? (Ich verstehe, dass Macs hybride MBRs mit Boot Camp verwenden, also wird es hoffentlich nicht so schwierig sein, wie ich es mir vorstelle.)

7

3 Antworten auf die Frage

7
JdeBP

Es besteht keine Notwendigkeit, auf das MBR-Partitionierungsschema zurückzugreifen, und es ist auch nicht einmal ein "Hybrid-MBR" -Partitionierungsschema erforderlich. (Ich habe eine solche auf einer meiner Maschinen und versichere, dass sie nicht für die Nichthergebrachten ist.)

Windows 7 kann mit EFI partitionierte Disks problemlos verwenden. Es kann einfach nicht von ihnen auf Nicht-EFI-Computern gebootet werden, und (um Sie auf Microsoft-Art vor sich selbst zu schützen) weigert sich, sie überhaupt zu installieren. In Ihrem Fall ist Ihr Problem ein grundlegender Mangel Ihrer Firmware und ist eigentlich kein Windows- Problem. Ihre Firmware versteht die EFI-Partitionstabelle nicht.

Ein solches Verständnis ist erforderlich, wenn Sie den Bootstrap eines Betriebssystems auf partitionierte EFI-Discs konvertieren möchten. Die Firmware des jeweiligen Herstellers muss bekannt sein , um das EFI Boot Manager-Menü aufzurufen und anschließend das ausgewählte Betriebssystemladeprogramm von der EFI-Systempartition zu laden . Ihre Firmware ist jedoch nicht sehr intelligent und kann nicht viel mehr tun, als den "Master Boot Record" zu laden und den Bootstrap-Code auszuführen. Auf einer partitionierten EFI-Disc befindet sich im "Master Boot Record" kein Code, der den restlichen EFI-Startvorgang durchläuft.

Im besten Fall haben Sie jetzt einen MBR-Bootstrap-Code, der das EFI-Partitionstabellenschema ebenso wenig kennt wie Ihre Firmware, und der erwartet, eine MBR-Partitionstabelle zu finden und zu verarbeiten. Was Sie brauchen, sind zwei Dinge:

  • um MBR-Bootstrap-Code zu erhalten, der die EFI-Partitionstabelle lesen kann, und einen Bootstrap-Loader der zweiten Stufe zu finden, der ebenfalls EFI-Partitionstabellen-fähig ist und der es Ihnen ermöglicht, Betriebssystem-Bootloader zu laden und auszuführen
  • Eine Möglichkeit, Windows 7 für die Installation auf einer partitionierten EFI-CD zu überzeugen

Der erste ist nicht unmöglich. Es gibt zwei Quellen für solche EFI-Partitionierungs-fähigen MBR-Bootstraps:

Beide suchen nach der "aktiven" Partition, laden und führen ihre VBR aus und führen das Bootstrapping auf die alte PC / AT- und PC98-Weise aus, jedoch mit einer EFI-Partitionstabelle. Wenn diese beiden nicht funktionieren, sind die besten Alternativen, die Sie jetzt erhalten, folgende:

  • GRUB 2 : Leider ist dies immer noch darauf angewiesen, fest verdrahtete Zahlen in den MBR-Bootstrap-Code zu stecken, um zu sagen, wo er den nächsten Teil seines Loaders finden kann. Sobald diese zweite Stufe geladen und ausgeführt ist, kann sie die EFI-Partitionstabelle und die Boot-Loader-Bootloader des Betriebssystems von Partitionen aus verstehen. Es weiß jedoch nicht, wie man EFI-Bootloader ausführt, sondern nur, wie man mit VBRs oder Linux und den BSDs umgeht.
  • UEFI DUET: ( Rod Smith erörtert dies ausführlich. ) Auch wenn dies in einem Volume installiert ist und ein voll funktionsfähiger EFI-Boot-Manager und EFI-Shell angezeigt wird, benötigt es noch etwas anderes, um seine VBR überhaupt zu laden und auszuführen. Und jetzt muss etwas anderes wie GRUB2 sein, das sich auf fest verdrahtete Sektornummern im MBR-Code oder auf SYSLINUX oder sogar auf meinen EFI-Partitionierungs-fähigen MBR-Bootstrap stützt. Sie können jedoch korrekte EFI-Bootstrap-Loader ausführen.

Der zweite Schritt (Überzeugen von Windows 7 für die Installation auf einer EFI-Partitionierungsdiskette) ist mit mindestens x86-64 von Windows 7 erreichbar. Es ist komplex, wird nicht offiziell von Microsoft unterstützt und erfordert die Erstellung einer eigenen Windows-Installations-CD mit der EFI-Version von Microsoft's Boot Manager und die Ausführung in einer EFI-Boot-Umgebung. (Wenn Sie UEFI DUET installiert haben, ist dies natürlich relativ einfach.) Windows 7 überzeugt jedoch, dass das Installationsprogramm auf einem EFI-System gestartet wurde. Welches Kriterium das Installationsprogramm verwendet, um festzustellen, ob Windows auf einem System installiert werden kann EFI partitionierte Festplatte.

Natürlich gibt es die zusätzliche, letzte Komplexität von Windows 7, sobald es installiert ist, von Tag zu Tag zu booten. weil das Installationsprogramm die EFI-Version von Microsoft Boot Manager installiert hat, wenn Sie wissen, dass Sie über EFI-Firmware verfügen. Sie benötigen also entweder:

  • Installieren Sie die PC / AT-Version von Microsoft Boot Manager und lassen Sie GRUB2 wissen, wo es sich befindet, wenn Sie GRUB2 verwenden. oder
  • UEFI DUET immer starten und die EFI-Version von Microsoft Boot Manager von dort aus ausführen.

Der ganze Quatsch verschwindet einfach, wenn man überhaupt EFI-Firmware hat. Windows 7 (x86-64) wird problemlos installiert. Ein EFI-Bootmanager, der die EFI-Partitionstabelle versteht und den Bootmanager von Microsoft (sowie jedes andere EFI-startfähige Betriebssystem) direkt aus seiner normalen Programm-Image-Datei lädt und ausführt in der EFI-Systempartition wird mit der Firmware geliefert.

Aus Interesse, warum bezeichnen Sie das Partitionslayout als "EFI-Partitionierung" und nicht als GPT (GUID-Partitionstabelle) oder GPT-Stil? Da Sie mit Terminologien ziemlich genau zu sein scheinen, möchte ich wissen, warum Sie es vermeiden, GPT oder GUID-Partitionierung zu nennen. Milind R vor 10 Jahren 0
Wollen Sie damit sagen, dass Windows nach der Installation im UEFI-Modus wieder im PC / AT-Modus gestartet werden kann? Warum ist dies nicht der Standardempfehlung für diejenigen, die Windows in einem moderneren Partitionierungsstil verwenden möchten, aber keine EFI-Firmware haben? Milind R vor 10 Jahren 0
5
Rod Smith

Es gibt mehrere mögliche Lösungen für dieses Problem. Um es zusammenzufassen, in mehr oder weniger meiner bevorzugten Reihenfolge:

  • Aktualisieren Sie Ihr Motherboard - Wenn Sie ein Motherboard mit UEFI-Startfunktionen erhalten, werden Sie eingestellt, da Sie Windows im UEFI-Modus installieren können. Die meisten (vielleicht alle) Boards, die auf der Sandy Bridge von Intel basieren, sind UEFI-fähig, obwohl einige diese Tatsache nicht ankündigen. Viele neue AMD-Boards sind auch UEFI-fähig. In der Tat besteht die Chance, dass Sie bereits ein solches Board haben. Viele Intel-Marken-Boards, die in den letzten Jahren verkauft wurden, haben eine UEFI-Startoption in ihren CMOS-Einstellungsbildschirmen. Sie könnten versuchen, nach einer solchen Option zu suchen. Möglicherweise müssen Sie jedoch den UEFI-Modus für alle Ihre Betriebssysteme verwenden. Glücklicherweise konvertiert Linux recht einfach und kann ohne Neukonfiguration hin und her wechseln, sobald es für den Boot-Vorgang eingerichtet ist. Beachten Sie, dass Sie eine 64-Bit-Version von Vista oder 7 benötigen, um Windows im UEFI-Modus zu installieren.
  • Verwenden Sie eine zweite Festplatte - Sie können Windows auf einer MBR-Festplatte installieren und Linux auf einer GPT-Festplatte speichern. Sie können sogar Windows-Datenpartitionen auf die GPT-Festplatte legen, wenn Sie möchten (vorausgesetzt, Sie verwenden Vista oder 7). Nur die Windows-Bootdiskette muss sich auf MBR befinden. Selbst wenn Sie ein altes 20-GB-Laufwerk haben, reicht es wahrscheinlich aus, die Windows-C: -Partition zu speichern, und Sie können dann Ihre Windows-Programmdateien auf einer GPT-Partition ablegen, vorausgesetzt, Sie verwenden Vista oder 7.
  • Konvertieren in MBR - Dies ist mit GPT-fdisk (gdisk) möglich, jedoch mit bestimmten Vorbehalten. Vor allem müssen Sie mindestens einen freien Sektor vor jeder zu erstellenden logischen Partition haben, und alle logischen Partitionen müssen zusammenhängend sein. Wenn Ihre aktuelle Festplatte diese Spezifikationen nicht erfüllt, gehen entweder Partitionen bei der Konvertierung verloren oder Sie müssen die Größe einiger Partitionen ändern, um die erforderlichen Lücken zu erstellen. Es besteht auch ein gewisses Risiko eines Datenverlusts, insbesondere wenn Sie die Größe von Partitionen ändern müssen.
  • UEFI DUET verwenden - Wie von JdeBP vorgeschlagen (und mit meiner Seite zu diesem Thema verlinkt ), ist UEFI DUET eine Möglichkeit. IMHO sind die Nachteile dieses Ansatzes nicht so groß, wie JdeBP vermuten lässt, IFUEFI DUET bootet sogar auf Ihrem System. (Wahrscheinlichkeiten sind gut, wenn Sie eine 64-Bit-Intel-CPU haben, weniger gut für 64-Bit-AMD-CPUs und auf 32-Bit-CPUs nicht.) Sie müssen vorsichtig sein und einen guten Eindruck machen Denken Sie jedoch an die technische Fehlerbehebung, um dies zu versuchen. Mit einem USB-Flashlaufwerk können Sie einige vorläufige Erkundungen durchführen. Installieren Sie UEFI DUET und sehen Sie, ob Sie es zum Booten bringen können. Wenn es bootet, werden Sie wahrscheinlich sogar Windows regelmäßig installieren und booten können, obwohl es Fallstricke gibt, wie auf meiner Seite zum Thema angegeben. Einmal eingerichtet, wird UEFI DUET im Grunde ein ziemlich großer GPT-Bootloader für Windows.
  • Verwenden Sie Virtualisierung - Es ist nicht ganz das, wonach Sie fragen, aber es ist denkbar, dass Windows in einer virtuellen Maschine akzeptabel funktioniert. Für Spiele bin ich allerdings etwas skeptisch, wenn Sie die Leistung erhalten, die Sie benötigen, aber es lohnt sich vielleicht, es auszuprobieren.
  • Hybrid-MBR - Sie können dies einrichten und Windows auf einer Hybridpartition installieren. Windows löscht Ihren aktuellen MBR-residenten Bootloader. Bereiten Sie sich daher darauf vor, ihn neu zu installieren. Ich persönlich empfehle diese Lösung nicht, da Hybrid-MBRs gefährlich sind. Wenn alle anderen Optionen durchfallen, kann es sein, dass dies unter Windows aufgegeben wird.

Ich möchte auch ein paar Missverständnisse klären:

  • Die Unfähigkeit von Windows, von GPT auf einem BIOS-basierten Computer zu booten, ist definitiv eine Windows-Einschränkung, keine Firmware-Einschränkung (BIOS). Linux, FreeBSD und einige andere Betriebssysteme können auf GPRS-basierten Computern problemlos von GPT-Festplatten gestartet werden. Ich weiß nicht, warum Microsoft das Booten von Windows von GPT auf BIOS-basierten Computern nicht unterstützen möchte, aber sie könnten es auf jeden Fall tun, wenn sie wollten. Wenn nicht anders, könnten sie eine UEFI-Implementierung verwenden, sie auf das Wesentliche beschränken und als Bootloader verwenden.
  • Der GPT-Loader von SYSLINUX verwendet keine hartcodierten Sektorwerte. Es verfügt über genügend intelligente Funktionen, um die GPT zu lesen und zu der Partition zu springen, auf der ein Legacy-BIOS-Bootable-Flag gesetzt ist. Nicht dass mit hartkodierten Sektorwerten etwas falsch ist, wie dies bei GRUB 2 der Fall ist. Die beiden Lösungen haben nur unterschiedliche Vor- und Nachteile.
Ich habe etwas über den SYSLINUX EFI-fähigen MBR-Bootstrap erfahren **, nachdem ich den T13-Vorschlag gefunden hatte, einen eigenen MBR-Bootstrap geschrieben hatte, der die EFI-Partitionstabelle liest, und ihn auf der Welt 2011-06 veröffentlicht -26; Nach dem Schreiben der obigen Antwort bemerkten wir eine Lücke, die gefüllt werden musste. Ich sollte meine Antwort hier wirklich aktualisieren und feststellen, dass ich einer von zwei Menschen auf der Welt bin, die die Lücke gefüllt haben. ☺ JdeBP vor 12 Jahren 3
Durch hartcodierte Sektorwerte wird der Startvorgang äußerst fragil, was zu einer gefürchteten Rettungsaufforderung führt, selbst für die geringste Änderung der Partitionierung. Ich habe es viele Male erlebt und es hat mich eine Weile von Linux abgeschreckt, bis UEFI es robust gemacht hat. Milind R vor 10 Jahren 0
Syslinux verwendet keine hartkodierten Sektorwerte, aber beim Lesen des Assembler-Codes verlässt es sich auf eine fest codierte * Partitions-GUID *. Dies scheint beim MBR-Code von @ JdeBP für GPT-Platten nicht der Fall zu sein. Milind R vor 10 Jahren 0
0
Milind R

Wenn Sie sogar ein kleines MBR-Laufwerk haben, können Sie dies ohne einen der beiden Hacks tun. Es funktioniert auch mit Windows 32 Bit . Eine Diskette oder ein USB-Stick reicht aus.

Starten Sie die Windows-Installations- / Reparaturdiskette. Erstellen Sie das Systemlaufwerk auf dem Stick und bcdbootlegen Sie Ihre Startdateien auf dem Stick ab. Fügen Sie einen Bootssektor mit hinzu bootsect. Ändern Sie devicein boot. Booten Sie von Stick.

Schritte werden hier detailliert beschrieben .