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-pc
für den BIOS/CSM/Legacy-Modus und grub-efi-amd64
fü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, fdisk
um 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.