grub2-install: "Diese GPT-Partitionsbezeichnung enthält keine BIOS-Boot-Partition"

77344
Robert S

Es scheint ziemlich viel darüber zu diskutieren, aber ich kann keine einfache Antwort finden.

Wenn ich versuche, grub2 zu installieren, erhalte ich diese Fehlermeldung:

# grub2-install /dev/sda Installing for i386-pc platform. grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible. grub2-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. grub2-install: error: will not proceed with blocklists. 

Hier ist das Layout von / dev / sda:

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA  Device Start End Sectors Size Type /dev/sda1 2048 411647 409600 200M Linux filesystem (/boot) /dev/sda2 411648 4605951 4194304 2G Linux swap /dev/sda3 4605952 46548991 41943040 20G Linux filesystem (/) /dev/sda4 46548992 234441614 187892623 89.6G Linux LVM (/var) 

Gibt es eine einfache Möglichkeit, dieses Problem zu umgehen? Ich verstehe, dass ich am Anfang der Platte eine kleine Partition als "BIOS-Boot-Partition" erstellen muss. Ich denke, eine Option wäre, den Swap nach / dev / sda4 als logisches Volume zu verschieben und / dev / sda2 als / boot zu verwenden.

Alternativ könnte ich einfach zu Grub-Legacy zurückkehren und sich keine Gedanken darüber machen (ist es wirklich von Vorteil, auf grub2 aufzurüsten, wenn es so viel Ärger gibt?).

Gedanken?

31

3 Antworten auf die Frage

17
Rod Smith

Sie sollten zuerst entscheiden, ob Sie einen BIOS / CSM / Legacy-Modus-Boot oder einen EFI / UEFI-Modus-Boot verwenden möchten. Ersteres ist der Weg, auf dem PCs seit den 80er Jahren gebootet werden, aber es ist ein hässliches und hackendes System, das dem Dodo schon bald zu lange gehen wird. Windows bindet das Booten im BIOS-Modus an die MBR-Partitionstabelle, die Sie nicht verwenden (aber Ihre Festplatte ist bei weitem nicht groß genug, um GPT zu erfordern). Linux, FreeBSD und die meisten anderen modernen Betriebssysteme sind flexibler und unterstützen das Booten über GPT im BIOS-Modus. Es gibt jedoch manchmal von der Firmware erzeugte Komplikationen. Wenn Sie sich später für die Installation von Windows in einem Dual-Boot-Setup entscheiden, müssen Sie Änderungen oder Kompromisse eingehen.

Das Booten im EFI / UEFI-Modus ist weniger hackig. EFI-Implementierungen unterscheiden sich jedoch stark in der Qualität, und das allgemeine Fachwissen und der Support für EFI im Web ist niedriger als für BIOS. Windows verbindet GPT mit dem Booten im EFI-Modus. Wenn Sie also Windows jemals auf Ihrem Computer installieren möchten, ist EFI definitiv der richtige Weg. Ältere Computer sind nur für das BIOS verfügbar. EFI begann Mitte 2011 auf dem Markt zu starten. Wenn Ihr Computer älter ist, können Sie EFI möglicherweise nicht verwenden.

Wenn Sie mit dem Booten im BIOS-Modus beginnen, sollten Sie eine BIOS-Bootpartition auf der Festplatte erstellen . Am Anfang Ihrer Festplatte ist genügend Platz für diese Partition vorhanden. Sie müssen jedoch den Wert für die Sektorausrichtung auf 1 (von den üblichen 2048) setzen, damit dies funktioniert. Ich weiß nicht, ob dies möglich ist parted, aber Sie können es auch gdisk. (Beachten Sie, dass der Speicherplatz am Anfang Ihres Datenträgers etwas unter der empfohlenen Größe von 1 MB für eine BIOS-Boot-Partition liegt, jedoch nur von wenigen Sektoren. Er wird wahrscheinlich gut funktionieren, könnte aber möglicherweise irgendwann in der Zukunft ausfallen.) Alternativ Sie können jede Ihrer Partitionen um 1-2 MB verkleinern, um Platz für die BIOS-Boot-Partition zu schaffen. Diese Partition muss nicht die erste Partition auf der Festplatte sein, obwohl dies der übliche Speicherort ist.

Wenn Sie mit dem EFI / UEFI-Modus booten, müssen Sie eine EFI-Systempartition (ESP) erstellen . Diese Partition muss FAT-formatiert sein und deutlich größer als eine BIOS-Bootpartition sein. Sie müssen daher die Größe ändern, um sie zu erstellen. Ich empfehle eine Größe von 550 MB, obwohl ein Zehntel davon in einer Notlage funktionieren könnte.

Um GRUB zu installieren, sollten Sie zuerst sicher sein, dass Sie das richtige GRUB-Paket installiert haben. Ich bin nicht sicher in allen Distributionen, aber in Ubuntu wäre dies grub-pcfür den BIOS / CSM / Legacy-Modus und grub-efi-amd64für den EFI / UEFI-Modus. Bei einer Installation im EFI-Modus ist auch ein Booten erforderlich, um GRUB (wahrscheinlich eine Live-CD / USB) im EFI-Modus zu installieren. Möglicherweise müssen Sie dazu den integrierten Boot-Manager Ihres Computers verwenden, auf den normalerweise über eine Funktionstaste zugegriffen wird. Die Details variieren jedoch von Computer zu Computer.

Danke für Ihre sehr hilfreiche Antwort. Ich habe Dinge auf einer virtuellen Maschine zum Laufen gebracht und ein bisschen herumgespielt. Wenn ich versuche, dies auf meinem "Produktionscomputer" (der zwei Festplatten hat) auszuführen, habe ich eine Reihe von Problemen: `grub2-install grub-setup = / bin / true / dev / sda` gibt` grub2-install: Fehler : Mehrere Installationsgeräte? .`. Auf meiner Arbeits-VM ist der Startsektor mit 32 gekennzeichnet, auf der Produktionsmaschine jedoch 2048. Weiß nicht, ob dies relevant ist. Robert S vor 9 Jahren 0
Wie Flow in seiner Antwort vorschlägt, muss der Partitionstyp der BIOS-Boot-Partition auf 0x04 ("BIOS-Boot") gesetzt sein, andernfalls kann Grub nicht installiert werden. Dies kann zum Beispiel mit dem Befehl "t" von fdisk eingestellt werden. user1225999 vor 6 Jahren 0
Gibt es eine Möglichkeit, Grub 2 ohne Bios-Boot-Partition ** zu installieren? Ich möchte nur UEFI verwenden. CMCDragonkai vor 6 Jahren 0
In einer Installation im EFI-Modus verwendet GRUB 2 keine BIOS-Bootpartition. Wenn GRUB nach einem fragt, ist es wahrscheinlich, dass Sie im BIOS-Modus und nicht im EFI-Modus gestartet sind. Überprüfen Sie Ihre Startoptionen, um sicherzustellen, dass Ihr CSM deaktiviert ist, wie auf meiner Website zum Thema beschrieben: http://www.rodsbooks.com/efi-bootloaders/csm-good-bad-ugly.html Rod Smith vor 6 Jahren 1
6
Flow

Wenn Sie GPT-Partitionen mit dem alten BIOS-Startmodus verwenden möchten, müssen Sie auf dem Gerät, auf dem Grub installiert werden soll, eine BIOS-Partition von wenigen Megabytes (16 MB sollte gut und zukunftssicher sein) erstellen grub-install.

Verwenden Sie zum Beispiel fdiskdie Partition des Typs "BIOS boot" irgendwo auf Ihrer Festplatte. Beispielausgabe:

# fdisk -l /dev/sda Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 57E16A16-36B4-4445-A216-031EF6501415  Device Start End Sectors Size Type /dev/sda1 2048 4196351 4194304 2G Linux RAID /dev/sda2 4196352 35653631 31457280 15G Linux RAID /dev/sda3 35653632 37750783 2097152 1G Linux swap /dev/sda4 37750784 37816319 65536 32M BIOS boot /dev/sda5 37816320 1953525134 1915708815 913.5G Linux LVM 
3
Kevin Huntly

Die Bootpartition muss als Fat32 formatiert sein, damit sie funktioniert

mkfs.vfat -F32 /dev/sdXY 

Sollte es für dich reparieren

Auch das Boot-Flag muss teilweise gesetzt sein:

set 1 boot on