![Was ist der Zweck der aktiven MBR-Partition?](https://rvso.com/image/1592544/Was%20ist%20der%20Zweck%20der%20aktiven%20MBR-Partition%3F.png)
Das Konzept des Bootens der Bootloader auf UEFI ist unkompliziert und einfach, da die .efi
Bootloader auf der EFI-Systempartition abgelegt werden. Die .efi
Datei lädt dann die entsprechenden Betriebssysteme. Ich verstehe jedoch immer noch nicht, warum MBR eine aktive Partition zum Booten des Betriebssystems benötigt.
Nach meinen bisherigen Studien befindet sich der MBR-Bootstrap-Code in den ersten 446 Bytes der Festplatte und wird vom BIOS nach dem POST automatisch ausgeführt (als De-Faktor-Standard). Er kann das Betriebssystem direkt laden, aber meistens ist der Code so klein, dass seine Hauptaufgabe darin besteht, den eigentlichen Bootloader zu laden, der irgendwo auf einer anderen Partition liegt.
Warum müssen wir eine Partition als aktiv festlegen, um von ihr zu booten? Theoretisch kann der MBR-Bootstrapcode alles ausführen, wo immer es ihm beliebt.
Antwort1
Warum müssen wir eine Partition als aktiv festlegen, um von ihr zu booten? Theoretisch kann der MBR-Bootstrapcode alles ausführen, wo immer es ihm beliebt.
Ja, und in der Praxis macht der MBR-Bootstrapcode oft genau das.
Aber der Bootstrap-Code brauchtmancheMethode, um herauszufinden, wo die nächste Stufe des Bootloaders gespeichert ist. (Der gesamte Bootloader ist nie nur 446 Byte groß; der MBR ist nur seine Stufe 1.)
Ein Bootsektor, der die MBR-Partitionstabelle analysiert und nach dem Flag „aktiv“ sucht, ist eine sehr vielseitige Lösung für dieses Problem – er ermöglicht einen vollständig statischen Bootsektor (zu dessen Generierung ist kein spezielles Tool erforderlich) und jeder Bootsektor, der dies tut, funktioniert mit jedem Betriebssystem gleich gut.
BeispielsweisesyslinuxDer MBR-Bootsektor scheint vollständig mit dem Windows-MBR-Bootsektor austauschbar zu sein. Wenn Sie Linux und Windows im Dual-Boot-Modus verwenden, spielt es keine Rolle, welchen Bootsektor Sie verwenden, da beide dasselbe tun. Sie können also immer einfach das „aktive“ Bit austauschen, um das Betriebssystem auszutauschen. (Und die Installation des Bootsektors besteht lediglich darin, mbr.bin auf die Raw-Festplatte zu kopieren.)
Aber verschiedene Bootloader haben sicherlich unterschiedliche Ansätze: zum Beispiel speichert das beliebte Linux GRUB2 seine zweite Stufe in der "Post-MBR-Lücke" und generiert den Bootstrap-Code dynamisch entsprechend seiner Position; d.h. der MBR-Bootsektor weiß, bei welchem LBA die zweite Stufe beginnt (unter völliger Ignorierung der Partitionstabelle und des "aktiven" Flags), und dies kann zwischen Festplatten variieren, also der Bootsektormusswerden vom grub-install
Programm für jede Platte einzeln geschrieben.
(GRUB2 verwendet normalerweise auch keine Partitions-VBRs; esdürfen„chainload“ diese, seine typische Konfiguration greift tatsächlich direkt auf das echte Dateisystem zu und lädt die Betriebssystem-Kerneldateien.)
Antwort2
Sehen Wikipedia Master Boot Record für Informationen zum Verlauf des MBR-Formats.
Die Notwendigkeit einer aktiven Partition ist im Grunde eine Designentscheidung der frühen IBM/DOS-Bootloader und ist seither so geblieben.
Diese frühen Bootloader durchsuchten die Liste der Partitionen in der eingebetteten Partitionstabelle des MBR, um die einzige zu finden, die mit dem aktiven Flag markiert ist, und luden und führten dann den Volume Boot Record (VBR) dieser aktiven Partition aus.
Dies ist lediglich eine weitere frühe Designentscheidung im Leben des IBM PC, die für immer Bestand hatte, und zwar aus keinem anderen Grund als einer Entscheidung eines frühen Entwicklerteams (die möglicherweise sogar von nur einer Person getroffen wurde).