grub2-install: „Diese GPT-Partitionsbezeichnung enthält keine BIOS-Bootpartition“

grub2-install: „Diese GPT-Partitionsbezeichnung enthält keine BIOS-Bootpartition“

Darüber wird anscheinend ziemlich viel diskutiert, aber ich finde keine einfache Antwort.

Beim Versuch, 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 Festplatte eine kleine Partition als „BIOS-Bootpartition“ erstellen muss. Ich denke, eine Möglichkeit wäre, den Swap als logisches Volume nach /dev/sda4 zu verschieben und /dev/sda2 als /boot zu verwenden.

Alternativ könnte ich einfach zu grub-legacy zurückkehren und mir darüber keine Gedanken machen (gibt esWirklichein Vorteil bei der Aktualisierung auf Grub2, wenn dies so viele Probleme verursacht?).

Gedanken?

Antwort1

Sie sollten zunächst entscheiden, ob Sie einen BIOS/CSM/Legacy-Modus-Boot oder einen EFI/UEFI-Modus-Boot verwenden möchten. Ersteres ist die Art und Weise, wie PCs seit den 1980er Jahren booten, aber es ist ein hässliches und hackiges System, das in nicht allzu ferner Zukunft aussterben wird. Windows verknüpft den BIOS-Modus-Boot an die MBR-Partitionstabelle, die Sie nicht verwenden (aber könnten; 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 den BIOS-Modus-Boot von GPT; aber es gibt manchmal durch die Firmware verursachte Komplikationen, und wenn Sie sich später entscheiden, Windows in einem Dual-Boot-Setup zu installieren, müssen Sie natürlich Änderungen vornehmen oder Kompromisse eingehen.

Das Booten im EFI/UEFI-Modus ist weniger ein Hack; die Qualität der EFI-Implementierungen variiert jedoch erheblich und das allgemeine Niveau an Fachwissen und Support im Internet für EFI ist geringer als für BIOS. Windows verknüpft die Verwendung von GPT mit dem Booten im EFI-Modus. Wenn Sie also vorhaben, jemals Windows auf Ihrem Computer zu installieren, ist EFI definitiv die beste Wahl. Ältere Computer sind nur mit BIOS ausgestattet. EFI begann Mitte 2011 auf dem Markt Fuß zu fassen. Wenn Ihr Computer also älter ist, können Sie EFI möglicherweise nicht verwenden.

Wenn Sie den BIOS-Modus zum Booten verwenden, sollten Sie eineBIOS-Bootpartitionauf der Festplatte. Am Anfang Ihrer Festplatte ist genug Platz für diese Partition, aber Sie müssen Ihren Sektorausrichtungswert auf 1 (von den üblichen 2048) setzen, damit dies funktioniert. Ich weiß nicht spontan, ob dies mit möglich ist parted, aber mit geht es gdisk. (Beachten Sie, dass der Platz am Anfang Ihrer Festplatte etwas unter der empfohlenen Größe von 1 MiB für eine BIOS-Bootpartition liegt, aber nur um ein paar Sektoren. Es wird wahrscheinlich gut funktionieren, könnte aber irgendwann in der Zukunft fehlschlagen.) Alternativ können Sie jede Ihrer Partitionen um 1-2 MiB verkleinern, um Platz für die BIOS-Bootpartition zu schaffen. Diese Partition tut esnichtmuss die erste Partition auf der Festplatte sein, obwohl das der herkömmliche Speicherort ist.

Wenn Sie im EFI/UEFI-Modus booten, müssen Sie eineEFI-Systempartition (ESP).Diese Partition muss FAT-formatiert sein und deutlich größer als eine BIOS-Bootpartition sein. Sie müssen also etwas an der Größe ändern, um sie zu erstellen. Ich empfehle eine Größe von 550 MB, obwohl zur Not auch ein Zehntel davon ausreichen könnte.

Um GRUB zu installieren, sollten Sie zunächst sicherstellen, dass Sie das richtige GRUB-Paket installiert haben. Ich bin mir nicht sicher, ob es in allen Distributionen so heißt, aber in Ubuntu wäre es grub-pcfür den BIOS/CSM/Legacy-Modus und grub-efi-amd64für den EFI/UEFI-Modus. Bei einer Installation im EFI-Modus müssen Sie außerdem das, was Sie zur Installation von GRUB verwenden (vermutlich eine Live-CD/USB), im EFI-Modus booten. Dazu müssen Sie möglicherweise den integrierten Bootmanager Ihres Computers verwenden, auf den Sie normalerweise über eine Funktionstaste zugreifen können, aber die Details variieren von Computer zu Computer.

Antwort2

Sie haben bereits diese winzige Partition, also beginnt die erste Partition nicht mit 1, sondern mit 2048

/dev / sda1 2048 411647 409600 200M Linux file system (/boot)

Sie müssen den Etikettentyp ändern, vonStiefelZubios_grubzum Beispiel durch parted:

parted /dev/sda
set 1 boot off
set 1 bios_grub on
q

Dann wieder:

grub2-install /dev/sda

Antwort3

Wenn Sie GPT-Partitionen mit dem BIOS-Startmodus im alten Stil verwenden möchten, müssen Sie auf dem Gerät, auf dem Sie Grub installieren möchten, eine BIOS-Partition von einigen Megabyte (16 MiB sollten ausreichen und zukunftssicher sein) erstellen grub-install.

Verwenden Sie es beispielsweise, fdiskum irgendwo auf Ihrer Festplatte eine Partition vom Typ „BIOS-Boot“ zu erstellen. 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

Antwort4

Ich hatte dieses Problem gerade auf einer Maschine im EFI-Modus mit einer GPT-Festplatte (Ubuntu 18.04 Server), die eines Tages beschloss, von selbst nur bis zur GRUB-Shell zu booten.

Irgendwie wurde grub-pc (für BIOS-Modus/i386-Maschinen) installiert, grub-efi jedoch nicht. Nachdem das Problem identifiziert war, war die Lösung einfach:

# apt install grub-efi
# update-grub
# grub-install

Beachten Sie, dass der erste Befehl grub-pc deinstalliert hat.

verwandte Informationen