Benötigt rEFInd im MBR Code, um Windows auf einem Mac zu starten?

1422
David Anderson

Ich habe viele Beiträge zum Installieren und Booten von Windows auf Mac-Computern gelesen. Viele Prozeduren verwenden rEFInd, um eine BIOS-Installation von Windows zu starten. Die Verfahren scheinen keine Installation von Code im MBR anzuzeigen. Es wird also davon ausgegangen, dass im MBR bereits Code aus einer früheren Installation vorhanden ist, oder rEFInd benötigt keinen solchen Code, um Windows zu starten. Kennt jemand die Antwort?

0

2 Antworten auf die Frage

2
Rod Smith

Sowohl rEFIt als auch rEFInd fügen eine Kopie des SYSLINUX MBR-Startcodes in den MBR ein, wenn der MBR nicht bereits startfähig ist und der Bootcode in einer Partition vorhanden ist. Der Boot-Code sollte jedoch im MBR vorhanden sein, obwohl er durch Partitionierungstools zerstört werden kann, die davon ausgehen, dass die ersten 440 Byte des MBR auf einem GPT-Datenträger auf Null gesetzt werden sollten, wie dies normalerweise bei EFI-bootfähigen GPT-Datenträgern der Fall ist.

Dies führt jedoch zu einem weiteren Punkt: Windows 8 (und vermutlich Windows 10) lässt sich auf vielen Macs im EFI-Modus ziemlich gut installieren. Bei dieser Installation ist weder im MBR noch in den Windows-Partitionen ein Boot-Code im BIOS-Modus erforderlich. Eine Installation im EFI-Modus ist wahrscheinlich sicherer, da der gefährliche Hybrid-MBR, den Macs für das Dual-Boot von OS X und früheren Windows-Versionen verwenden, nicht erforderlich ist. Der Haken bei diesem Installationstyp besteht darin, dass das Festplatten-Dienstprogramm und einige andere OS X-Tools einen hybriden MBR erstellen, wenn Sie versuchen, die Festplatte für Windows vorzubereiten, beispielsweise durch das Einrichten einer FAT-Partition. Wenn das Windows-Installationsprogramm, das im EFI-Modus gestartet wurde, den Hybrid-MBR erkennt, wird er sich beschweren, dass es nicht auf einem MBR-Datenträger installiert werden kann. Sie können dieses Problem umgehen, indem Sie eine beliebige Anzahl von Tools verwenden (z. B. gdiskTyp x, dannndann w), aber es kann frustrierend und verwirrend sein, wenn Sie die Art des Problems nicht verstehen oder wissen, wie Sie es beheben können.

1
luttztfz

Wenn CSM verwendet wird, besteht eine Option darin, den MBR-Startcode wie ein BIOS zu laden.

Die Logik: Der CSM muss genau wie ein BIOS arbeiten, um kompatibel zu sein. Das Betriebssystem legt den erforderlichen Startcode in den MBR und den Bootsektor (en) der Partition ab.

Aber das ist für CSM-basiertes Booten von Anfang an. Beachten Sie, dass es sich bei rEFInd selbst um eine EFI-Startoption handelt. Aus diesem Grund wird rEFInd von der (U) EFI als übliche binäre ausführbare EFI-Datei (je nach EFI 32 oder 64 Bit) geladen, wie jeder Loader für ein EFI-Betriebssystem. Wenn das rEFInd-Menü angezeigt wird, wurde noch kein CSM geladen. Da rEFInd als EFI-Programmdatei gebootet wird, ist CSM nicht erforderlich.

Mit dem von EFI gebooteten rEFInd als Ausgangspunkt wird rEFInd selbst weiterhin nach bootfähigen Optionen suchen, dh nach Partitionen, anderen EFI-Loadern oder Kerneln. Bei BIOS-basierten Betriebssystemen bestimmt rEFInd, ob eine Option genau wie ein CSM bootfähig ist, indem Sie von Ihrem BIOS-basierten Betriebssystem nach einer MBR- (Hybrid) -Partition mit Bootcode suchen. Wenn es fehlt oder fehlerhaft ist, startet das Betriebssystem nicht. (Ein Grund könnte sein, dass beim Installieren des Betriebssystems auf der MBR-Partition ein Fehler aufgetreten ist.)

So die kurze Antwort ist: nein. Nur beim Booten einer Festplatte (keine Partition!) Vom CSM wird der MBR-Startcode geladen. rEFInd, das als EFI-Bootloader gestartet wurde, ist nicht erforderlich oder kann den MBR überhaupt nicht starten.

Stellen Sie sich vor REFind würde den MBR starten (und dafür nehmen wir an, nur, dass es auch die UEFI Last der CSM machen könnte): wenn es einen Fehler in der Boot - Code und / oder Partitionierung (wie keine Partition als gesetzt aktiv ) oder wenn der ausgewählte Die Boot-Option (über rEFInd) ist nicht diejenige, die in der MBR-Partitionstabelle als aktive Partition markiert ist. Der MBR-Boot-Code lädt die ausgewählte Partition nicht, wodurch der gesamte Zweck des rEFInd-Bootauswahlmenüs null und nichtig wird.

Von den REFind Boot Managern: EFI - Treiber, Abschnitt Auswahl eines EFI - Treiber :

NTFS - Samuel Liao steuerte diesen Treiber bei, der das Treiber-Framework rEFIt / rEFInd verwendet. Beachten Sie, dass dieser Treiber zum Booten von Windows mit rEFInd nicht erforderlich ist, da Windows seinen EFI-Bootloader auf dem (FAT) ESP speichert und der BIOS-Startvorgang (im Allgemeinen beim Doppelstart auf einem Mac) nur vom Boot-Sektor der Partition abhängig ist, das ohne den Vorteil dieses Treibers gelesen wird.

Dies bedeutet eindeutig, dass rEFInd nur den Boot-Sektor der jeweiligen MBR-Partition lädt (muss jedoch eine Hybridpartition sein), wodurch der MBR absichtlich übersprungen wird.

Darüber hinaus bietet UEFI (EFI 1.x auf dem Mac) die Möglichkeit, eine ausgewählte Partition "Legacy-Boot" zu starten, die bei Auswahl / Aufforderung die CSM automatisch lädt. Nicht alle UEFI-Maschinen verfügen über diese Fähigkeit. Wenn es fehlt, kann rEFInd kein BIOS-basiertes Betriebssystem von einer MBR-Partition starten.

Aus dem OSDev-Wiki, Abschnitt UEFI-Klasse 0-3 und CSM :

PCs werden als UEFI-Klasse 0, 1, 2 oder 3 kategorisiert. Ein Computer der Klasse 0 ist ein Altsystem mit einem älteren BIOS. dh überhaupt kein UEFI-System.

Eine Klasse-1-Maschine ist ein UEFI-System, das ausschließlich im Compatibility Support Module (CSM) -Modus ausgeführt wird. CSM ist eine Spezifikation, wie UEFI-Firmware ein älteres BIOS emulieren kann. UEFI-Firmware im CSM-Modus lädt ältere Bootloader. Ein UEFI-System der Klasse 1 kündigt möglicherweise keine UEFI-Unterstützung an, da es für den Bootloader nicht verfügbar ist. Es ist nur UEFI "innerhalb" des BIOS.

Eine Klasse-2-Maschine ist ein UEFI-System, das UEFI-Anwendungen starten kann, aber auch die Option zur Ausführung im CSM-Modus enthält. Die meisten modernen PCs sind UEFI-Klasse-2-Maschinen. Manchmal ist die Wahl der Ausführung von UEFI-Anwendungen im Vergleich zu CSM eine ein- oder andere Einstellung in der BIOS-Konfiguration. In anderen Fällen entscheidet das BIOS, welche Einrichtung verwendet werden soll, nachdem das Startgerät ausgewählt und geprüft wurde, ob es einen älteren Bootloader oder einen älteren Bootloader hat UEFI-Anwendung.

Eine Klasse-3-Maschine ist ein UEFI-System, das CSM nicht unterstützt. UEFI-Klasse-3-Maschinen führen nur UEFI-Anwendungen aus und implementieren CSM nicht für die Abwärtskompatibilität mit älteren Bootloadern.

Vom rEFInd-Boot-Manager: Verwenden des Abschnittes rEFInd: Booten von älteren Betriebssystemen :

Um zu helfen, wenn Sie im BIOS-Modus starten müssen, unterstützt rEFInd das Starten älterer Betriebssysteme. Die Details variieren jedoch zwischen Macs und UEFI-PCs. Beachten Sie außerdem, dass bei einigen UEFI-PCs das Compatibility Support Module (CSM) fehlt, das für diese Funktion erforderlich ist. Dies gilt auch für einige Computer, die BIOS-basierte Betriebssysteme nativ starten können. Dies kann passieren, weil es sich bei der Firmware im Wesentlichen um ein BIOS mit einer UEFI-Implementierung handelt. Solche Systeme sind zum Booten auf das native BIOS angewiesen und bieten EFI-Anwendungen möglicherweise keine Möglichkeit, über CSM-Mechanismen auf die BIOS-Funktionen zuzugreifen. Wenn Sie über einen solchen Computer verfügen und eine ältere Startoption in der Konfigurationsdatei aktivieren, werden Sie von rEFInd darauf hingewiesen, dass beim Starten keine älteren Startoptionen angezeigt werden können.

Wenn Sie daran interessiert sind, ob Sie tatsächlich einige CSM-Einträge in Ihrem EFI-Startmenü haben - nicht rEFInd, sondern echte (U) EFI-Startoptionen -, können Sie es efibootmgr -vmit Linux versuchen . Dies funktioniert nur, wenn Linux selbst als (U) EFI-Betriebssystem gestartet wird. Wenn Linux als CSM-Startauswahl gebootet wird, hat es keinen Zugriff auf die zugrunde liegende EFI-Implementierung. Nur unter Linux gibt es keinen großen Unterschied bezüglich der Partitionierung, da Linux nicht so wählerisch ist wie Windows und im BIOS-Modus die GPT-Partitionierung problemlos verwenden kann.

# efibootmgr -v Timeout: 2 seconds BootOrder: 0000,0004,0005 Boot0000* Windows Boot Manager HD(2,GPT,1bf25484-f461-4892-a640-a24136b1d45f,0xe1800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...e................ Boot0004* Hard Drive BBS(HD,,0x0)P0: INTEL SSDSC2CT060A3 . Boot0005* UEFI: SanDisk Extreme 0001 PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(4,0)/HD(1,MBR,0x97,0xb4,0x298c)/File(\EFI\BOOT\BOOTX64.EFI) 

In diesem Beispiel gibt es nur UEFI-Einträge.

# efibootmgr -v BootCurrent: 0002 Timeout: 3 seconds BootOrder: 0003,0002,0000,0004 Boot0000* CD/DVD Drive BIOS(3,0,00) Boot0001* Hard Drive HD(2,0,00) Boot0002* Fedora HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\fedora\grubx64.efi) Boot0003* opensuse HD(1,800,61800,6d98f360-cb3e-4727-8fed-5ce0c040365d)File(\EFI\opensuse\grubx64.efi) Boot0004* Hard Drive BIOS(2,0,00)P0: ST1500DM003-9YN16G 

In diesem Beispiel sind Boot0000und Boot0004CSM-Auswahlmöglichkeiten (beachten Sie den BIOSPfad), und die UEFI bootet diese Einträge mit geladener CSM. Beachten Sie jedoch, dass es immer noch die UEFI ist, die den Start des ausgewählten Eintrags aufruft!

Wenn rEFInd CSM-Mechanismen verwenden soll, um ältere Betriebssysteme von MBR- (Hybrid-) Partitionen zu booten, kann ich nur annehmen, dass dies den permanenten UEFI-Starteinträgen sehr ähnlich ist. Es kann sein, dass rEFInd einmalige Starteinträge (wie BootNext) für diese Aufgabe verwendet ...