Standalone-Grub2-EFI-Installation – Platzierung von grub.cfg?

Standalone-Grub2-EFI-Installation – Platzierung von grub.cfg?

Ich versuche, Grub2 als Bootmanager auf einem EFI-System im Standalone-Modus zu verwenden. (Auf der einzigen persistenten Festplatte befindet sich OS X; Linux- und Windows-Laufwerke können manchmal vorhanden sein oder auch nicht, daher der Standalone-Modus.)

Ich verwende SuperGrub2Disk, eine ausführbare EFI-Datei, und so wie ich es verstehe, verfügt die ausführbare Datei von Grub2 in diesem Modus über ein eingebettetes Disk-Image, das es für seine Root-Partition mountet und das eine Kopie seiner eigenen Konfigurationsdatei darin enthält.

Ich möchte diese Konfigurationsdatei mit einer externen grub.cfg überschreiben oder ergänzen. Ich habe versucht, sie neben der ausführbaren Grub-EFI-Datei oder im Stammverzeichnis der ESP-Partition zu platzieren, aber sie wird nicht erkannt. Ich habe auch versucht, sie mit dem folgenden Befehl von einer Grub-Befehlszeile aus zu laden:

configfile (hd3,gpt1)/grub.cfg

Dies scheint keine andere Auswirkung zu haben, als den Bildschirm zu löschen – obwohl die Konfigurationsdatei vorhanden ist, wie von ls bestätigt.

Kann mir jemand sagen, ob es eine Möglichkeit gibt, eine externe Konfigurationsdatei mit einem eigenständigen EFI-Blob zu verwenden?

Antwort1

GRUB 2-Binärdateien enthalten fest codierte Verweise auf ihre Konfigurationsdateien. Ich habe nicht wirklich alle grausamen Details verfolgt, aber so wie ich es verstehe, gibt es zwei EFI GRUB 2-Binärdateien für Ubuntu auf AMD64/x86-64-Systemen:

  • grub2-efi-amd64-- Dies ist die Version von GRUB 2, die auf Computern verwendet wird, dienichtVerwenden Sie Secure Boot. So wie ich es verstehe, ist die Binärdatei selbst verknüpft aufdeinComputer aus vorkompilierten Komponenten, die im Paket enthalten sind. Die resultierende Binärdatei verweist auf eine grub.cfgDatei im Verzeichnis Ihrer Linux-Installation /boot/grub. Daher können Sie die grubx64.efiaus diesem Paket auf einem Computer installierte Binärdatei nicht auf einem anderen verwenden, da die Binärdatei für den Computer angepasst ist, auf dem sie erstellt wurde.
  • grub2-efi-amd64-signed-- Diese Version von GRUB 2 wurde auf einem Canonical-System kompiliert und verknüpft, sodass sie mit einem Secure Boot-Schlüssel signiert werden kann. Ein Nebeneffekt der Anforderung, dass die Binärdatei signiert sein muss, ist, dass sie nicht für Ihr System angepasst werden kann. Daher grubx64.efisucht diese Version von im selben Verzeichnis wie die Binärdatei nach grub.cfg. Auf einem Ubuntu-System grub.cfgsucht diese Datei nach /boot/grub/grub.cfg, aber im Prinzip könnte sie angepasst werden, um etwas anderes zu tun.

In Ihrem Fall können Sie also nicht die unsignierte GRUB 2-Binärdatei verwenden. Wenn Sie eine Standard-Binärdatei von Ubuntu GRUB 2 verwenden möchten, müssen Sie die signierte verwenden. Alternativ können Sie Ihre eigene Binärdatei erstellen, wie beschriebenHier,unter anderem.

In deinem Fall halte ich GRUB 2 allerdings nicht für optimal. BeidereFit(das jetzt aufgegeben wurde) und meine Abzweigung davon,rEFInd,dynamische Suche nach verfügbaren Bootloadern. Wenn Sie also rEFIt oder rEFInd auf Ihreminterne Festplatte EFI-Systempartition (ESP)und die Bootloader für Ihre Betriebssysteme auf den jeweiligen Wechseldatenträgern ablegen, bietet Ihnen rEFIt/rEFInd Optionen zum Booten dieser Betriebssysteme, wenn und nur wenn die entsprechende Festplatte angeschlossen ist. Dieses Verhalten hängt jedoch von der ordnungsgemäßen Verwaltung Ihrer Bootloader ab, indem Sie jeden auf dem ESP der jeweiligen Festplatte ablegen. Wenn Ihre Bootloader alle auf dem ESP Ihrer internen Festplatte gespeichert sind, zeigt rEFIt/rEFInd jederzeit nicht funktionsfähige Betriebssystemoptionen an, genau wie GRUB 2 dies tun würde. In beiden Fällen macht die Verwendung von rEFIt oder rEFInd es überflüssig, sich in den Sumpf der manuellen GRUB 2-Konfiguration zu vertiefen.

Antwort2

Ich würde erwarten, dass eine im selben Verzeichnis abgelegte grub.cfg von einem GRUB UEFI-Image gelesen und ausgeführt wird, wobei beide normalerweise auf dem ESP gespeichert sind, aber ich weiß nicht so viel über Mac-Setups. (Übrigens hat die eingebettete Konfiguration eine sehr eingeschränkte Funktionalität.)

Vielleicht bringt Sie die Erstellung des GRUB-Images selbst ohne eingebettete Konfiguration der Lösung einen Schritt näher. Diese Beiträge könnten hilfreich sein:

Antwort3

Es kann eine eigenständige GRUB 2 UEFI-Anwendung erstellt werden, die eine isolierte GRUB 2-Installation enthält, die eine Konfigurationsdatei im selben Verzeichnis wie die Anwendungsbinärdatei liest.

Dieser Prozess istbeschrieben im Arch Linux Wiki, kann aber auf jeder Verteilung durchgeführt werden (solange die Pfade entsprechend angepasst werden).

verwandte Informationen