Grub – Fehlerdiagnose

In diesem Artikel werden Probleme beschrieben, die beim Versuch, GRUB2 zu verwenden oder zu installieren, auftreten können. Eine Grundanleitung gibt es hier

Installationsfehler
GRUB2 aus einer Chroot installieren

Wenn eine separate / boot-Partition vorhanden ist, stellen Sie sicher, dass die Ziel-Root-Partition vor dem chrooting bereitgestellt wird. Hängen Sie die / boot-Partition jedoch erst nach dem chrooting in die neue Umgebung ein. Dies ist erforderlich, da grub-mkconfig / boot nicht als separate Partition erkennt und davon ausgeht, dass das Verzeichnis / boot und das Stammverzeichnis (/) auf derselben Partition liegen.
Den GRUB2 EFI-Bootmanager-Eintrag erneut installieren

Falls die Bootmanagereinträge wiederhergestellt werden müssen, können sie ohne Aufrufen von grub-install erneut hinzugefügt werden. Laden Sie das efivars Kernel-Modul und installieren Sie sys-boot / efibootmgr:

root #modprobe efivars
root #emerge --ask sys-boot/efibootmgr

Als nächstes fügen Sie einen Startmenüeintrag hinzu:

root #efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "gentoo" --loader "\\EFI\\gentoo\\grubx86.efi"

grub-install: error: cannot find EFI directory.

Hinweis
In den folgenden Beispielen wird eine 64-Bit-Installation von EFI GRUB2 vorausgesetzt. Passen Sie die 32-Bit-EFI entsprechend an.

root #grub-install --target=x86_64-efi
grub-install: error: cannot find EFI directory.

Durch richtiges Setzen der GRUB_PLATFORMS-Variablen in /etc/portage/make.conf wie oben aufgeführt, sollte dieser Fehler behoben werden. Legen Sie die Variable GRUB_PLATFORMS fest, und erstellen Sie GRUB2 mit folgendem Befehl erneut:

root #emerge --ask --newuse sys-boot/grub:2

Wenn dieser Fehler weiterhin besteht, versuchen Sie, die Installation im EFI-Verzeichnis zu erzwingen, indem Sie den Befehl grub-install mit den richtigen Parametern für die Optionen –target und –efi-directory ausgeben:

root #grub-install --target=x86_64-efi --efi-directory=/boot

grub-install: Versuch, GRUB2 auf einer Festplatte oder Partition zu installieren

root #grub-install /dev/sda1 
Attempting to install GRUB to a partition disk or to a partition. This is a BAD idea. Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.

Es kann viele Gründe für diesen Fehler geben.
Kein gemountetes / boot

Eine / boot-Partition ist nicht gemountet.

root #mount /boot

Keine BIOS-Bootpartition während des BIOS-GPT-Setups

Dies kann bedeuten, dass es keine EF02- oder bios_boot-Partition gibt, in die die Datei core.img eingebettet werden kann.

Das Erstellen einer kleinen Partition von einigen hundert Kilobyte reicht möglicherweise aus, obwohl es sich als üblich empfiehlt, diese Partition auf 2048 Sektoren auszurichten, um einen Leistungsabfall bei der Festplatte zu vermeiden. Eine 1-MiB-Partition sollte gut funktionieren.

Versuch, GRUB2 in einer Partition zu installieren

Beim Versuch, GRUB2 in einer Partition zu installieren, z. / dev / sda5 (beispielsweise weil der Bootloader von einem anderen Bootloader verkettet wird), fügen Sie einfach den Optionsschalter –force hinzu, um die Installation zu erzwingen.

Fehlende Zielerkennung

Wenn grub-install keine Fehlernachricht ausgibt oder wenn die Fehlermeldung das Überprüfen von Datenträgerdateien betrifft und in /etc/portage/make.conf mehrere Plattformen aktiviert sind, während auf der Festplatte nichts installiert ist, bearbeiten Sie die Datei / sbin / grub- Installieren Sie das Skript mit einem Texteditor Ihrer Wahl.

Ändern Sie die Plattformvariable auf die entsprechende Plattform für den aktuellen Anwendungsfall. Die Plattform muss beim Auftauchen von sys-boot / grub richtig eingestellt sein. Andernfalls wird sie im Skript / sbin / grub-install falsch konfiguriert.

Um beispielsweise die Plattform für „PC“ festzulegen, ändern Sie platform = qemu in platform = pc.

Hinweis
Dies gilt nur für die GRUB-Version 1.99x. Für GRUB2 ist die richtige zu untersuchende Datei unter /etc/grub.d/00_header zu finden. change transform = „s, grub, grub-qemu“, um transform = „s, grub, grub2“ zu ändern, um beispielsweise mit grub- $ platform-install korrekt installiert zu werden.

grub-setup: no post-MBR gap

root #grub-bios-setup
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible! grub-bios-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged. grub-bios-setup: error: If you really want blocklists, use --force.

Dieser Fehler bedeutet, dass GRUB2 die übliche Lücke zwischen dem MBR und der ersten Partition einer Festplatte nicht finden konnte. Es ist möglich, dass die Lücke nicht besteht. Einige Tools (z. B. LiveUSB Disk Installer) formatieren die Datenträger so, dass die erste Partition bei Sektor 1 statt 2048 beginnt.

Möglicherweise ist eine Neupartitionierung erforderlich, um das Problem zu beheben.

grub-install: embedding area is unusually small

root #grub-install /dev/sda

grub-install: warn: Your embedding area is unusually
small. core.img won't fit in it.
grub-install: warn: Embedding is not possible. GRUB can
only be installed in this setup by using blocklists. However,
blocklists are UNRELIABLE and their use is discouraged.
grub-install: error: will not proceed with blocklists.

Vor der ersten Partition ist am Anfang der Festplatte nicht genügend Platz.

Im Allgemeinen ist dies ein Problem, das behoben werden muss. Eine oder mehrere Partitionen müssen in der Größe geändert werden, um zu Beginn des Laufwerks etwas freien Speicherplatz zu haben. Die GParted LiveCD oder (Gentoo-basierte) SystemRescueCD sind hervorragende Werkzeuge, um diese Arbeit zu erleichtern.

Wenn die Swap-Partition die erste Partition auf der Festplatte ist (z. B. / dev / sda1), können Sie einfach die vorhandene Swap-Space-Partition entfernen und den Speicherbereich neu partitionieren. Diese Auflösung würde das Booten eines Live-Mediums für die Größenänderung einer Root-Partition (/) vermeiden.

localhost /boot/grub # grub-install /dev/sda           
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.