EFI-Boot-Partition und Biosgrub-Partition

21

Warum brauche ich diese? Ich habe Ubuntu unter einem Nicht-UEFI (Master Boot Record) installiert und Ubuntu ohne 'Biosgrub' installiert, und es funktioniert einwandfrei, während ich manchmal gebeten werde, eine 'Biosgrub'-Partition zu erstellen. Ich habe keine Ahnung, warum ich es manchmal brauche und andere nicht (beide waren auf demselben System).

Dasselbe passiert, wenn ich UEFI (GUID Partition Table) verwende. Der einzige Unterschied besteht darin, dass ich gebeten werde, eine EFI-Boot-Partition zu erstellen. Wie beim Biosgrub werde ich jedoch manchmal gebeten, sie zu erstellen, und manchmal werde ich nicht gebeten, sie zu erstellen.

Für meine aktuelle Installation wurde ich gebeten, eine zu erstellen, habe dies aber nicht getan, und mein System ist in Ordnung. Es gibt keine Änderungen am System, der gleichen Hardware, dem gleichen BIOS usw. Könnte jemand Aufschluss darüber geben?

GhostMotleyX
quelle
2
Sie müssen beim Booten konsistent sein. Nur wenn Sie im UEFI-Startmodus eine efi-Partition benötigen und nur im BIOS-Startmodus mit gpt-Partitionierung, benötigen Sie eine bios_grub-Partition. Wenn Sie UEFI verwenden, Boot-Repair jedoch im BIOS-Modus starten und versuchen, grub im BIOS-Modus zu installieren, werden Sie aufgefordert, eine bios_grub-Partition zu erstellen.
Oldfred

Antworten:

34

Es gibt vier Bedingungen (BIOS vs. EFI und MBR vs. GPT), von denen jedoch zwei identische Anforderungen haben (und eine davon ist äußerst selten):

  • Auf einem traditionellen BIOS-basierten Computer mit einer traditionellen MBR-Partitionstabelle wird der ausführbare Code von GRUB wie von einem Baby geworfene Spaghetti verteilt. Ein Teil davon befindet sich im Boot-Code-Abschnitt des MBR, ein Teil in Post-MBR-Sektoren, die offiziell nicht zugeordnet sind, und ein Teil in der Linux- /bootPartition. Dies ist ein echtes Durcheinander, und es funktioniert nur, weil Entwickler buchstäblich Jahrzehnte damit verbracht haben, clevere Hacks zu erstellen und (fast) alle Probleme zu lösen.
  • Auf einem herkömmlichen BIOS-basierten Computer mit einer neuen GUID-Partitionstabelle (GPT) ähnelt der GRUB-Code dem im vorherigen Fall. Die unmittelbar auf den MBR folgenden Sektoren sind jedoch nicht unzugeordnet. Sie werden vom GPT selbst verwendet. GPT bietet GRUB keinen analogen Ort zum Entführen. Daher entschieden sich die GRUB-Entwickler für die BIOS-Boot-Partition (die parteddurch ein bios_grubFlag gekennzeichnet ist), um den Code zu speichern, der in den Post-MBR-Sektoren auf einer MBR-Festplatte gespeichert wird. Dies ist tatsächlich sicherer und sauberer als der MBR-Ansatz, da der GRUB-Code vor anderen Programmen geschützt wird, die möglicherweise versuchen, diesen nicht zugewiesenen Speicherplatz zu verwenden.
  • Auf einem Computer mit einem neueren EFI anstelle eines BIOS werden Bootloader nicht im MBR, in offiziell nicht zugewiesenen Post-MBR-Sektoren oder in BIOS-Bootpartitionen gespeichert. Stattdessen befinden sich Bootloader als normale Dateien auf einer FAT-Partition, die als EFI-Systempartition (ESP) bezeichnet wird . ( Verwirrenderweise bezeichnen Debian- und Ubuntu-Installer das ESP mit dem Namen "EFI-Boot-Partition", aber dieser Name ist nicht Standard. GParted und partedidentifizieren das ESP als "ESP".bootflag "gesetzt, obwohl diese Terminologie auf MBR-Laufwerken etwas völlig anderes bedeutet.) Ein ESP kann entweder auf einem GPT-Laufwerk oder einem MBR-Laufwerk vorhanden sein, ersteres ist jedoch auf EFI-basierten Computern viel häufiger. Der EFI-Ansatz ist viel sicherer und Viel flexibler als der BIOS-Ansatz, da er unformatierten Code nicht an seltsamen Stellen verstaut, sondern Bootloader wie Programme auf Betriebssystemebene in Dateien gespeichert werden. Dadurch können sie leichter identifiziert und bearbeitet werden. (OTOH, EFI speichert auch Daten auf Bootloadern im NVRAM, was einen zweiten Fehlerpunkt im Bootprozess darstellt. Die Neuheit von EFI bedeutet auch, dass es nicht so gut getestet ist, was eine Vielzahl von EFI-spezifischen Problemen erklärt.)

GhostMotleyX, Ihr Kommentar zu LiveWireBTs Antwort war der Meinung , dass BIOS / MBR die "beste" Installationsmethode ist. Das ist natürlich subjektiv, aber ich bin mit dieser Einschätzung nicht einverstanden. Der BIOS / MBR-Ansatz ist am wenigsten sicher und am meistenungeschickt von den drei Ansätzen, die ich gerade skizziert habe. Der EFI-Ansatz ist der sicherste und flexibelste Ansatz. Ich vermute, dass Sie sich darüber ärgern, dass für die GRUB / GPT- und EFI-Ansätze separate Partitionen erforderlich sind, aber das ist keine große Sache. Abgesehen von der Einrichtung des Systems oder der Partitionswartung sind diese Partitionen für Sie praktisch unsichtbar und bieten Ihnen viel Flexibilität. Im Gegensatz zu MBR ist GPT nicht auf vier primäre Partitionen beschränkt, sodass Sie Ihre primären Partitionen nicht wie einen Kobold horten müssen, der sein Gold hortet.

Rod Smith
quelle
Vielen Dank an alle, die geantwortet haben, wirklich hilfreiche Informationen; vor allem Rod Smith.
GhostMotleyX
Auf einem EFI-Boot-System benötigen Sie also immer noch nur eine kleine Partition? Der MBR-Boot-Sektor und der EF02Inhalt der gdisk- Partition (oder ein gleichwertiges Element ) können in Datei (en) in der FAT-formatierten EFI-Systempartition (mit gdisk-Typ EF00) gespeichert werden .
Peter Cordes
Peter, ja, das ist im Grunde richtig. EFI-Bootloader sind Dateien, die auf dem ESP gespeichert sind, nicht in Festplatten- oder Partitionsbootsektoren.
Rod Smith
Was ist, wenn ich sowohl das UEFI-Booten als auch das BIOS-Booten unterstützen möchte ? Hätte ich dann zwei Kopien von Grub, eine in der EFI System Partitionund die andere in der BIOS boot partition?
Hallo Welt
Hallo Welt, Sie benötigen einen EFI-Modus und einen BIOS-Modus-Bootloader. Sie müssen nicht beide GRUB sein. In der Tat empfehle ich, dass mindestens einer von ihnen nicht sein, da das ziemlich verwirrend werden könnte. Eine solche Konfiguration ist jedoch für das Booten eines einzelnen Betriebssystems ziemlich sinnlos. Dies kann für einige Dual-Boot-Szenarien erforderlich sein, z. B. wenn einem Betriebssystem ein EFI-Modus-Bootloader fehlt und das andere aus irgendeinem Grund im EFI-Modus gestartet werden muss (z. B. wenn Windows installiert ist und Ihre Festplatte mehr als 2 TB hat) Sie benötigen GPT, um die volle Größe zu unterstützen.
Rod Smith
7

Sie müssen eine Biosgrub-Partition auf einer GPT-partitionierten Festplatte erstellen, wenn Sie den Legacy- Startvorgang einrichten, oder eine EFI-Startpartition (für GPT- oder MBR-partitionierte Festplatten), wenn Sie den UEFI- Startvorgang einrichten .

  • GRUB erfordert eine BIOS-Boot-Partition (2 MiB, kein Dateisystem, EF02Typcode in gdisk oder bios_grub-Flag in GNU Parted) in BIOS-Systemen, um die core.imgDatei einzubetten , da nach dem MBR keine Lücke in GPT-Datenträgern vorhanden ist . [...]

https://wiki.archlinux.org/index.php/GPT#Bootloader_Support

LiveWireBT
quelle
1
Danke, ich glaube ich verstehe jetzt; Wenn ich Ubuntu ohne UEFI auf einer MBR-Festplatte installiere, brauche ich keinen Biosgrub. Wenn ich Ubuntu unter UEFI auf einer GPT-Festplatte installiere, muss ich eine EFI-Partition erstellen. Und dann trat die Inkonsistenz auf, als ich Ubuntu ohne UEFI auf einer GPT-Festplatte und auch UEFI mit MBR installierte. Der theoretisch beste Weg, Ubuntu zu installieren, ist Non-UEFI mit MBR-Partitionstabelle oder UEFI mit GPT-Partitionstabelle.
GhostMotleyX
@ GhostMotleyX Das ist richtig.
LiveWireBT
sogar 1MiB ist mehr als genug. Ich möchte es vor die erste "normale" 1MiB-ausgerichtete Partition stellen, wie ich im letzten Absatz von en.wikipedia.org/wiki/BIOS_boot_partition#Overview (den ich gerade bearbeitet habe) erklärt habe. Ich habe nicht entschieden, ob ich den sortBefehl gdisk lieber verwenden möchte , um die Partitionen in der Reihenfolge des Startsektors neu zu nummerieren, oder ob ich ihn als sdc4oder ohne Namen belassen möchte . Wahrscheinlich ist die Sortierung weniger seltsam, sodass meine Madenpartitionen es immer sein werden sdX1.
Peter Cordes
3

Ich werde einen zusätzlichen Punkt / ein zusätzliches Motiv für EFI- und BIOS-Grub nennen.

USB-Stick zum Booten einer Live SystemRescueCD.iso-Schleife von Grub2.

Warum? Einfache Antwort: Es bootet auf vielen PCs, einige haben UEFI, andere nur ein 32-Bit-altes BIOS usw.

Wirklich komplexes Motiv: Verwenden Sie wenn möglich fortgeschrittene Hardware (UEFI).

Real Live Use Beispiel:

  • USB-Stick (formatiert im GPT-Modus) mit vier Partitionen
  • Erste Partition (ab Windows 7 sichtbar) unter NTFS mit der restlichen Größe des USB-Sticks
  • Zweite Partition für Grub2- und SystemRescueCD.iso-Datei mit mindestens 1 GB (besser, wenn 2 GB vorhanden sind, damit Sie zwei Versionen von SystemRescueCD.iso gleichzeitig ausführen können, nur um die neue Version zu testen, bevor die alte ersetzt wird). Normalerweise verwende ich das Ext4-Dateisystem dafür
  • Dritte Partition für EFI (was Windows als ESP bezeichnet), formatiert als Fat32 mit mindestens 512 MB (ich habe einige PCs gesehen, die, wenn sie weniger verwenden, keinen USB-Stick als bootfähiges Medium anzeigen)
  • Vierte Partition für BIOS_Grub (kein Format, aber beim Erstellen gelöscht)

Eine wichtige Sache: Ich habe einen 8-GB-LG-USB-Stric gesehen (einen, den ich besitze), der sich weigert, in einem physischen UEFI-PC-Boot aufgeführt zu werden, wenn Partitionen nicht auf Zylinder ausgerichtet sind, sondern auf anderen UEFI-PCs und auch auf VirtualBOX mit UEFI-Boot Modus aktiviert ... wenn es partitioniert wird, wenn es auf MiB ausgerichtet ist, verwendet es den gesamten Speicherplatz, keinen unpartitionierten Speicherplatz von nahe 1 MB am Ende, aber wenn es auf Zylinder ausgerichtet ist, wird der letzte unvollständige MiB nicht verwendet ... wenn ich dies in Betracht ziehe, wird MiB partitioniert (mit anderen Worten, ich mache eine manuelle Zylinderausrichtung) es funktioniert, aber wie ich sage, ist es immer noch zylinderausgerichtet (ich mache es manuell, anstatt das Partitionierungswerkzeug zu lassen, um es für Sie zu tun).

So bekommen Sie einen so tollen USB-Recovery-Stick (es gibt zwei Tricks):

  1. Partitionen an Zylindern ausrichten (bessere Kompatibilität, um nur an MiB auszurichten)
  2. Führen Sie eine Grub-Installation durch --target = i386-pc und anschließend eine weitere Grub-Installation durch --target = x86_64-efi auf derselben Grub-Partition, sodass Sie für beide Startmodi nur eine grub.cfg verwenden

Wie es bootet:

  • a) Booten Sie das alte BIOS, laden Sie den MBR, dann Stage2 von der BIOS_grub-Partition und dann core.img von der Grub2-Partition
  • b) Beim Booten von UEFI-kompatiblen Geräten wird die EFI-Datei von der ESP-Partition geladen
  • grub.cfg wird gelesen (falls auf der grub2 Partition vorhanden)
  • dann wird das Menü grub2 angezeigt
  • dann wähle ich, um von der Schleife SystemRescueCD.iso (mit dem Parameter dochace) zu booten, ich habe zwei Optionen auf grub.cfg gesetzt, eine für 32 Bit, eine für 64 Bit (ich habe wirklich vier Optionen, da ich auf zwei einen Parameter dostartx auf setze direkt über die GUI booten).
  • Nach dem Booten kann ich den USB-Stick auswerfen (das gesamte Live-Linux befindet sich dank eines solchen Docaches im RAM-Laufwerk). Es muss kein Befehl eingegeben werden. Pendrive ist nicht gemountet (wiederum dank des Docache-Parameters).

Mit diesem Stick kann ich alten PC (wenn sie von USB booten lassen) in 32 Bit oder auch 64 Bit (wenn sie eine Erweiterung für den Prozessor haben) booten, aber im BIOS-Modus.

Mit diesem Stick kann ich auch einen neuen PC (wenn sie von USB booten lassen) in 32 Bit und 64 Bit booten, aber im UEFI-Modus booten (ach ja, es kann im UEFI-Modus booten und dann einfach Linux Live SystemRescueCD in 32 Bit booten Modus sowie im 64-Bit-Modus).

So habe ich alle in einem USB-Stick Recovery Boot-Medien, in der Lage, in nahezu allen PCs zu booten, modern oder alt (nur USB-Boot-Unterstützung erforderlich), egal ob 32-Bit oder 64-Bit, BIOS oder UEFI, etc ... und ich kann Wählen Sie, was ich 32bit oder 64bit ausführen möchten.

Außerdem hatte ich auf einem PC getestet, der sich weigerte, Windows 64Bits (alter 32Bits-Prozessor) zu installieren, aber in der Lage war, ein 64-Bit-Linux Live auszuführen (da auf diesem Prozessor PAE-Fähigkeit vorhanden ist).

Randnotiz: Eine solche erste Partition wie NTFS dient zum Speichern von Daten, die mit Windows 7 und höher gemeinsam genutzt werden können (XP wird sie nicht sehen, da GPT-Partitionierung nicht unterstützt wird). Es muss die erste Partition sein und muss nicht initial sein Teil der CD, kann sein, wo immer Sie wollen, aber Brei als erster Eintrag in der Partitionstabelle liegen, dies wird durch den Windows-Modus verursacht, um Partitionen auf entfernbare zu mounten kann die anderen nicht gleichzeitig montieren.

Extra für Windows- und USB-Partitionen: Wenn Sie Partitionseinträge in der Partitionstabelle austauschen, dh wenn Sie die Partition, auf die Sie zugreifen möchten, als erste in der Tabelle angeben, können Sie in Windows darauf zugreifen (wenn das Format verstanden wird, fat32) und NTFS direkt, ext2 mit speziellen Treibern usw.), aber nur derjenige, der sich am ersten Eintrag der Partitionstabelle befindet, wird Zugriff gewährt ... Es gibt ein Tool (BootICEx86.exe), das solche Arbeiten unter Windows ausführen kann ohne auch nur den usb stick abziehen zu müssen.

Super extra: es gibt auch ein paar pendrives (ich bin sehr froh, ein Sony 16GiB zu besitzen), die mit speziellen tools (meins mit einem tool von lexar) etwas verändert werden können, so dass sie Windows als USB HDD anstatt als USB stick erscheinen Nach dieser Änderung können Sie in allen Fenstern Partitionen löschen, erstellen und verwalten. Es können auch mehrere Partitionen gleichzeitig gemountet werden, jede mit einem eigenen Buchstaben.

Linux-Benutzer kümmern sich nicht darum, da Linux es als partitionierbares Block-Gerät ansieht und keinen speziellen Code zum Blockieren von Mounten von Partitionen usw. implementiert, wie dies bei Windows der Fall ist.

Oh, ja, diese letzten Absätze sind nur für den Fall geschrieben, dass jemand auf M $ sie liest, damit ihr Gesicht auf den Boden fällt. Ich versuche (werde es nie bekommen, ich weiß, es ist ein verlorenes Ziel), sie zu entfernen hässlicher Code von Windows und lassen Sie Benutzer Partitionen auf USB-Stick auf native Weise haben.

Claudio
quelle