スタンドアロンモードのEFIシステムで、Grub2をブートマネージャーとして使用しようとしています。 (唯一の永続的なハードディスクにはOS Xがあります。LinuxおよびWindowsドライブは時々存在する場合と存在しない場合があるため、スタンドアロンモードです。)
私はEFI実行可能ファイルの1つであるSuperGrub2Diskを使用していますが、このモードでのGrub2の実行可能ファイルには、ルートパーティション用にマウントされたディスクイメージが埋め込まれており、内部に独自の構成ファイルのコピーがあります。
この設定ファイルを外部grub.cfgで上書きまたは修正したいと思います。 grub EFI実行可能ファイルの隣またはESPパーティションのルートに配置しようとしましたが、認識されていません。また、次のコマンドを使用してgrubコマンドラインからロードしようとしました。
configfile (hd3,gpt1)/grub.cfg
これは、lsによって確認されたように設定ファイルが存在する場合でも、画面をクリアする以外の効果はないようです。
EFIスタンドアロンBLOBで外部構成ファイルを使用する方法があるかどうかを教えてもらえますか?
GRUB 2バイナリには、構成ファイルへのハードコーディングされた参照が含まれています。私は本当にすべての詳細を追跡していませんが、私が理解しているように、AMD64/x86-64システム上のUbuntuには2つのEFI GRUB 2つのバイナリがあります。
grub2-efi-AMD64
-これはGRUB 2のバージョンで、notセキュアブートを使用します。私が理解しているように、バイナリ自体は、パッケージに含まれる事前にコンパイルされたコンポーネントからyourコンピューターにリンクされています。結果のバイナリは、Linuxインストールのgrub.cfg
ディレクトリにある/boot/grub
ファイルを参照します。したがって、このパッケージから別のコンピューターにインストールされたgrubx64.efi
バイナリーは、バイナリーが作成されたコンピューター用にカスタマイズされているため使用できません。grub2-efi-AMD64-signed
-このバージョンのGRUB 2は、セキュアブートで署名できるようにCanonicalシステムでコンパイルおよびリンクされますキー。バイナリに署名するという要件の副作用の1つは、システムに合わせてカスタマイズできないことです。その結果、このバージョンのgrubx64.efi
は、grub.cfg
のバイナリと同じディレクトリを検索します。 Ubuntuシステムでは、このgrub.cfg
ファイルは/boot/grub/grub.cfg
を検索しますが、原則として他のことを行うためにカスタマイズできます。したがって、あなたの場合、符号なしGRUB 2バイナリを使用することはできません。ストックのUbuntu GRUB 2バイナリを使用する場合は、署名済みのものを使用する必要があります。あるいは、 here、 で説明されているように、独自のバイナリを構築することもできます。
ただし、あなたの場合、GRUB 2が本当に最適だとは思いません。 rEFIt (現在は放棄されています)とそのフォークの両方 rEFInd、 は、使用可能なブートローダーの動的スキャンを備えています。したがって、rEFItまたはrEFIndを内部ディスクのEFIシステムパーティション(ESP) にインストールし、OSのブートローダーをそれぞれのリムーバブルメディアに配置した場合、rEFIt/rEFIndは、適切なディスクが接続されている場合にのみ、これらのOSを起動するオプションを提供します。ただし、この動作は、ブートローダーの適切な管理に依存し、それぞれをESPに配置します_それぞれのディスクの;ブートローダーがすべて内部ディスクのESPに保存されている場合、rEFIt/rEFIndは、GRUB 2がそうであるように、常に機能しないOSオプションを表示します。どちらの場合でも、rEFItまたはrEFIndを使用すると、手動のGRUB 2設定の泥沼を掘り下げる必要がなくなります。
同じディレクトリに配置されたgrub.cfgがGRUB UEFIイメージによって読み取られて実行され、通常は両方ともESPに保存されると予想されますが、Macのセットアップについてはあまり知りません。 (別の注意では、組み込み構成の機能は非常に限られています。)
埋め込み構成なしでGRUBイメージを自分で作成することで、ソリューションをさらに一歩進めることができます。これらの投稿が役立つ場合があります。