Wie wählt das BIOS in einem Dual-Boot-System den auszuführenden Bootloader aus?


24

Ich habe einen Dual-Boot von Windows und Ubuntu. Wenn ich den Computer einschalte, führt das BIOS einen POST durch und danach startet der Bootloader.

Ich möchte verstehen, wie das BIOS den Bootloader auswählt, der ausgeführt werden soll. Ich möchte den Prozess kennen, der zwischen dem BIOS und dem Bootloader in einem Dual-Boot-Computer abläuft.


Antworten:


40

Die BIOS-Firmware wählt den Bootloader nicht wirklich aus. Es lädt Code aus Sektor 0 eines Laufwerks und führt ihn aus. Was auch immer da ist, es wird ausgeführt. Hoffentlich ist es ein Bootloader (oder etwas, das einen Bootloader lädt), aber das muss nicht sein. In den frühen PC-Tagen gab es Spiele auf Disketten, die einfach ohne Betriebssystem gestartet und ausgeführt wurden - diese werden jetzt als "Booter" bezeichnet.

Die UEFI-Firmware versteht Partitionen und Dateisysteme und sucht auf Laufwerken nach einem Partitionstyp für das UEFI-System. Da dies ein Dateisystem ist, können hier mehrere Bootloader abgelegt werden. Die UEFI-Firmware soll ein Menü oder eine andere Möglichkeit zur Auswahl des verwendeten Bootloaders bieten.

Viele UEFI-Systeme werden im "Legacy-Modus" gestartet, in dem die UEFI ein "Compatibility Service Module" lädt, wodurch es wie ein BIOS aussieht, und tatsächlich wie das BIOS funktioniert.

GRUB ist ein allgemeiner Open-Source-Bootloader, der entweder Linux booten oder einen Windows-Bootloader (normalerweise winload.exe im Boot-Ordner einer Windows-Partition) "chainload" (steuern) kann. GRUB gibt Ihnen die Möglichkeit, eine Entscheidung zu treffen. GRUB kann Konfigurationsdateien lesen und daraus die Standardauswahl treffen.

Lesen Sie dies, wenn Sie ausführliche Informationen wünschen.


Dies ist einer der Gründe, warum Sie unter Ubuntu sudoirgendetwas auf eine nicht gemountete Festplatte schreiben müssen oder root sind. Wenn ein Programm oder ein böswilliger Benutzer Malware auf die
Startpartition

Dank LawrenceC Ihre Erklärung machen mein Verständnis klarer. Nochmals vielen Dank
Prashant Singh

13

Dieses Diagramm zeigt, wie die Steuerung von der Firmware (BIOS oder UEFI) zum Bootloader und vom Bootloader zum Betriebssystem in Ubuntu übergeht.

Bildbeschreibung hier eingeben
          BIOS vs. UEFI

Wenn die Betriebssysteme in verschiedenen Modi (BIOS und UEFI) installiert wurden, können Windows und Ubuntu nicht doppelt gebootet werden.


Ubuntu in UEFI-Modus konvertieren

  1. Starten Sie Boot-Repair und wählen Sie Erweiterte Optionen -> Registerkarte GRUB-Speicherort .
  2. Wenn Sie keine Option Separate / boot / efi-Partition sehen , bedeutet dies, dass Ihr PC keine UEFI-Partition hat.
  3. Wenn Sie eine Option Separate / Boot / EFI-Partition sehen , setzen Sie ein Häkchen in das Kontrollkästchen links daneben und klicken Sie auf die Schaltfläche Übernehmen in der unteren rechten Ecke.

    Ubuntu in UEFI-Modus konvertieren

  4. Richten Sie Ihr BIOS so ein, dass es die Festplatte im UEFI-Modus bootet. Die Möglichkeit , diese Einstellung zu ändern , hängt vom jeweiligen Modell des Computers, aber in der Regel dieser Einstellung in der Startpriorität Einstellungen unter dem ich Boot - Reiter des BIOS / UEFI - Setup - Programms.


7

Im Legacy-Modus (BIOS-Start und nicht UEFI) steuert das BIOS die Laufwerksreihenfolge. Früher wurde dies von den Kabeln gesteuert. Aber das Ändern einer BIOS-Einstellung schlägt das Öffnen der Box und das Wechseln der Kabel.

Das BIOS lädt (in den Speicher) den ersten Sektor (512 Byte Festplatte, MBR oder Master Boot Record genannt) der ersten Festplatte (oder die vom BIOS gesteuerte Laufwerksreihenfolge) und übergibt dann die (CPU-) Steuerung an diesen "Bootloader". Damit hat das BIOS seinen Job abgeschlossen und der Code im ersten Sektor läuft.


SORRY Sir , aber ich bin etwas confuse als BIOS die Steuerung an den Bootloader geben und Fenster und Linux haben verschiedene Bootloader so , auf die Bootloader es Steuer geben .was Prozess BIOS durchlaufen den Bootloader wählen
Prashant Singh

2
Ihr System kann nur einen einzigen Bootloader pro Festplatte haben (und es ist immer nur einer aktiv). Wenn auf Ihrem System zwei Betriebssysteme installiert sind, besitzt das zweite den Bootloader, da dieser seinen eigenen Code in den MBR geschrieben hat. Aus diesem Grund verwendet GNU / Linux (Ubuntu) GRUB. Es ist ein mehrstufiges System (Schritt 1 ist der MBR, die Schritte 1.5 und 2 befinden sich in / boot), das ein Menü anzeigt, in dem Sie gefragt werden, welches Betriebssystem Sie laden / ausführen möchten (diejenigen, die grub sowieso kennt, und welche ISOs Sie haben) hinzugefügt). Wenn Sie zwei Festplatten haben; Sie können auf jedem Laufwerk einen Bootloader installieren, das BIOS bestimmt jedoch, welcher Bootloader ausgeführt wird.
guiverc

Also, wenn ich 2 Betriebssysteme auf meinem Computer habe, ist es notwendig, dass GRUB das Menü aufruft und fragt, welches Betriebssystem ich laden möchte. Warum nicht?
Prashant Singh

Windows hat auch einen Bootloader (auf jeden Fall bis Vista); Aber es ist nicht so schlau wie Grub. Die Windoze-Version sucht nicht nach Nicht-Msft-Produkten (und kann ext / reiserfs / xfs / zfs / btrfs / ... nicht lesen). Sie müssen daher das * nix selbst hinzufügen. und nächstes update ..... die windoze version lohnt sich nicht, da grub so viel besser ist. Wenn sich windoze auf einem Laufwerk befindet, Ubuntu auf dem anderen, können Sie den Startvorgang über das BIOS ändern. aber grub ist schneller / einfacher. (Wenn Sie mit meiner Antwort zufrieden sind, akzeptieren Sie sie, um die Frage zu schließen.)
guiverc

3
@Prashant Singh: Der wichtigste Grund, warum der Windows-Bootloader dies nicht tut (oder nicht tat, als ich etwas über Windows wusste), ist, dass MicroSoft kein Geld verdient, indem Sie andere Betriebssysteme ausführen lassen.
Jamesqf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.