webentwicklung-frage-antwort-db.com.de

Eigenständige Grub2 EFI-Installation - grub.cfg-Platzierung?

Ich versuche, Grub2 als Boot-Manager auf einem EFI-System im Standalone-Modus zu verwenden. (Auf der einzigen persistenten Festplatte ist OS X installiert. Linux- und Windows-Laufwerke können gelegentlich vorhanden sein oder nicht, daher der Standalone-Modus.)

Ich verwende SuperGrub2Disk, eine ausführbare EFI-Datei. Soweit ich weiß, enthält die ausführbare Datei von Grub2 in diesem Modus ein eingebettetes Festplatten-Image, das für die Stammpartition bereitgestellt wird, und eine Kopie der eigenen Konfigurationsdatei.

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

configfile (hd3,gpt1)/grub.cfg

Dies scheint nichts anderes zu bewirken, als den Bildschirm zu löschen - obwohl die Konfigurationsdatei dort 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?

1
martona

GRUB 2-Binärdateien enthalten fest codierte Verweise auf ihre Konfigurationsdateien. Ich habe nicht wirklich alle wichtigen Details im Auge behalten, aber meines Wissens 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, die nicht Secure Boot verwenden. Soweit ich weiß, ist die Binärdatei selbst auf your Computern mit vorkompilierten Komponenten verknüpft, die im Paket enthalten sind. Die resultierende Binärdatei verweist auf eine grub.cfg - Datei im /boot/grub - Verzeichnis Ihrer Linux-Installation. Daher können Sie die aus diesem Paket installierte Binärdatei grubx64.efi Nicht auf einem Computer auf einem anderen Computer 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 wird auf einem kanonischen System kompiliert und verlinkt, damit sie mit signiert werden kann ein Secure Boot-Schlüssel. Ein Nebeneffekt der Anforderung, dass die Binärdatei signiert sein muss, besteht darin, dass sie nicht für Ihr System angepasst werden kann. Daher befindet sich diese Version von grubx64.efi Im selben Verzeichnis wie die Binärdatei für grub.cfg. . Auf einem Ubuntu-System sucht diese grub.cfg - Datei nach /boot/grub/grub.cfg, Aber im Prinzip kann sie angepasst werden, um etwas anderes zu tun.

In Ihrem Fall können Sie daher die vorzeichenlose GRUB 2-Binärdatei nicht verwenden. Wenn Sie eine Ubuntu GRUB 2-Binärdatei verwenden möchten, müssen Sie die signierte verwenden. Alternativ können Sie Ihre eigene Binärdatei erstellen, wie unter anderem in hier beschrieben.

In Ihrem Fall halte ich GRUB 2 jedoch nicht für wirklich optimal. Sowohl rEFIt (das jetzt aufgegeben wird) als auch mein Fork, rEFInd, bieten eine dynamische Suche nach verfügbaren Bootloadern. Wenn Sie also rEFIt oder rEFInd auf Ihren internen LaufwerkenEFI System Partition (ESP) installieren und die Bootloader für Ihre Betriebssysteme auf die entsprechenden Wechselmedien kopieren, müssen Sie rEFIt/rEFInd bietet Ihnen 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, die sich jeweils auf dem ESP der jeweiligen Festplatte befinden ; Wenn Ihre Bootloader alle auf dem ESP Ihrer internen Festplatte gespeichert sind, zeigt rEFIt/rEFInd jederzeit nicht funktionierende Betriebssystemoptionen an, genau wie GRUB 2 dies tun würde. In beiden Fällen müssen Sie sich mit rEFIt oder rEFInd nicht mehr mit dem Morast der manuellen GRUB 2-Konfiguration befassen.

3
Rod Smith

Ich würde erwarten, dass eine grub.cfg, die sich in demselben Verzeichnis befindet, 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 . (Die eingebettete Konfiguration weist eine sehr eingeschränkte Funktionalität auf.)

Wenn Sie das Image GRUB möglicherweise selbst erstellen, ohne eine eingebettete Konfiguration zu haben, können Sie mit den folgenden Beiträgen einen Schritt weiter zu einer Lösung gelangen:

1
LiveWireBT