Was genau veranlasst das BIOS zu entscheiden, ob ein Laufwerk bootfähig ist oder nicht?
Das BIOS entscheidet , ob ein Laufwerk gebootet wird auf der Grundlage der 16-Byte - Partition aufnehmen, vorhanden , nachdem den MBR - Code - Bereich (in einer Tabelle am Ausgang 446 gehalten ten Byte). Das erste Byte in jedem Partitionsdatensatz gibt den startfähigen Status des Laufwerks an (und wird auf " 0x80
startfähig" gesetzt, 0x00
wenn nicht). Einige BIOS überprüfen möglicherweise andere Teile des MBR (z. B. Partitionstypen, Prüfsummen), aber die Grundvoraussetzung ist das Boot-Flag.
Wie wird die Startsequenz von Laufwerk 1 übersprungen und versucht, von Laufwerk 2 zu starten, wenn mehr als ein Laufwerk im System installiert ist?
Dies ist implementierungsabhängig. Aus diesem Grund müssen Sie eine Startreihenfolge ordnungsgemäß auswählen. In den meisten Fällen durchsucht das BIOS jedes Speichermedium in der von Ihnen festgelegten Reihenfolge und ermittelt, ob es von diesem Gerät (über die MBR-Daten) gestartet werden kann. Wenn dies möglich ist, wird die Schleife durch die anderen Geräte fortgesetzt (ebenfalls in der von Ihnen ausgewählten Reihenfolge).
Nachdem das BIOS die Kontrolle auf den Bootloader auf Laufwerk 1 übertragen hatte, der zufällig keine "bootfähigen" Partitionen hatte - wie genau wird der Bootloader auf dem zweiten Laufwerk aufgerufen?
Sobald ein gültiges Boot-Gerät gefunden wurde (dh das Boot-Flag gesetzt ist und weitere zusätzliche Prüfungen bestanden wurden), kopiert das BIOS den MBR-Sektor in den RAM. Das BIOS verschiebt dann den Befehlszeiger an den Anfang dieses Speicherorts (unter Verwendung eines JUMP
Befehls), an dem sich das MBR-Codesegment befindet, und der Computer startet dann.
Wenn das BIOS die BIOS- Startspezifikation unterstützt , kann der MBR-Code die Steuerung mit einer bestimmten Anweisung an das BIOS zurückgeben, um diesen über einen Startfehler zu informieren und ihn aufzufordern, das nächste Gerät zu versuchen. Ältere BIOSe geben jedoch nur eine Fehlermeldung aus. Wenn Ihr BIOS dies unterstützt, können Sie feststellen, ob Sie von USB booten können.
Ich verstehe, dass das einzige, was das BIOS normalerweise auf einem MBR überprüft, seine Signatur ganz am Ende des 512-Byte-Sektors ist und dann nur die Steuerung an den anfänglichen Bootloader überträgt, der sich in den ersten 446 Bytes des Bootsektors befindet.
Dies ist korrekt, obwohl zu beachten ist, dass die meisten modernen BIOS-Systeme neben der älteren, konventionellen MBR-artigen Tabelle auch nach einer GUID-Partitionstabelle suchen.
Bedeutet dies, dass die ersten 446 Bytes des Bootsektors einen aussagekräftigen Bootloader-Code enthalten MÜSSEN, auch wenn die Festplatte nicht bootfähig ist?
Nein , aber das Laufwerk muss über eine gültige MBR- oder GUID-Partitionstabelle verfügen. Andernfalls wird sie vom Computer nicht erkannt. Während der Codeteil des MBR tatsächlich leer sein kann, muss der erste Sektor des Laufwerks einen wohlgeformten MBR / GPT aufweisen.
fdisk
die Fälle behandelt, obwohl die ursprüngliche Version tat Flag ungültig MBR - Header). Ich habe dem OP geraten, den unformatierten MBR-Header zu posten, aber er / sie möchte möglicherweise auch das bootfähige Flag "ein- / ausschalten" (um das Flag manuell zu setzen / zurückzusetzen).