Grub2を使用してマルチブートの状況を作成しようとしています。これはかなり新しいのでご容赦ください。ただし、EFIパーティションから起動する機能が不足しているだけです。私の状況の詳細は次のとおりです。
各OSは個別のハードドライブにあります。
すべてが完全に起動しますstandalone。すなわち、(w/o)grub。 UbuntuとWindows 10の両方を正常に起動できます。私が抱えている問題は、OS XドライブのEFIパーティションを起動することです。インターネットに関する広範な調査の後、EFIパーティション用に次のgrub2メニューを思い付きました。
menuentry "OSX" {
insmod chain
insmod part_gpt
insmod search_fs_uuid
search --fs-uuid --no-floppy --set=root 8366-0C13
chainloader /EFI/CLOVER/CLOVERX64.efi
}
これは40_custom
ファイルにロードされます。これをロードした後、Sudo grub-mkconfig -o /boot/grub/grub.cfg
を実行し、次にSudo update-grub
を実行するとメニューは正常に表示されますが、Yosemiteアイテムを選択するとエラーが発生します。
CLOVERX64.efi
ファイルはその場所に存在します。Lsコマンドを実行すると、パーティションとすべてのファイルが正常に起動します。
OSXメニュー項目の実行時に受け取ったエラーはinvalid signature
です。最後の行をboot
ではなくchainloader
に変更しようとすると、エラーyou need to load the kernel first
が表示されます。私はカーネルを調査しましたが、現時点では答えが見つかりません。これは厳密にテストシステムであるため、システムのクラッシュについてはあまり心配していません。
誰かアイデアがあれば教えてください。
編集:Cloverは公式のAppleブートローダーとMacではなく、この答えを書いたときに期待していたHackintoshブートローダーであることを思い出しただけです。
invalid signature
OSXインストールは、Windowsプラットフォームでのセキュアブートのようなセキュアブートチェーンを期待しているようです。ここに当てはまるかどうかはわかりませんが、通常はhfs-bless
またはMac bless
コマンドを使用して、Mac上の非OSXインストールのEFIブートを許可しました。 Linux Foundationsプリローダーが未署名のEFIローダーのギャップを埋める方法と同様に、bless
は理論的には外部ローダー(GRUB)がOSXを起動できるようにする必要があります。
hfs-bless
は Mactel PPA で利用可能です。
ところでchainloader
は正しく、Sudo grub-mkconfig -o /boot/grub/grub.cfg
およびSudo update-grub
は同じです。whereis
を実行してパスを見つけ、update-grub
エディターで。 ????
LiveWireBTは正しい軌道に乗っていますが、答えは少し異なります。 LiveWireBTと同様に、これはセキュアブートの問題だと思います。問題は、知る限りでは、Cloverはセキュアブートを明示的にサポートしていないことです。たとえそれがあったとしても、Appleはそうではないので、Appleのブートローダーはセキュアブートキーで署名されていません。Cloverは、セキュアブートの場合に署名が必要な方法でEFIアプリケーションを起動することで動作しますただし、アクティブであるため、ファームウェアで提供されたキーによって署名されていない場合、Cloverを介して起動されたものはすべて失敗します。
この問題の簡単な解決策は、ファームウェアでセキュアブートを無効にすることです。セキュアブートを無効にすると、セキュアブートチェックは行われず、すべてが機能します。このアプローチの問題は、セキュアブートの利点が得られないことです。つまり、マルウェアは理論的にはコンピューターのブート前環境を制御できますが、これは修正が非常に困難です。知る限りでは、そのような攻撃は野生ではまれ(存在しない可能性があります)ですが、可能です。
中程度の複雑さの解決策は、GRUB= my rEFInd。 で置き換えるか、補足することです。rEFIndはセキュアブートをサポートしますが、GRUBとは異なる方法で行うため、 -onプログラムは、それをサポートするために明示的に記述されていない場合でもShimを使用します。したがって、rloverからCloverを起動すると、CloverはShimが認識するキーで署名されたプログラムを起動できます。クローバー、クローバーのドライバー、アップルのboot.efi
独自のキーを使用します。これにより、セットアップとメンテナンスの負担が増えます。
最も複雑なソリューションは、コンピューターの現在のセキュアブートキーのセットを独自のセットに置き換えることです。このセットにはMicrosoftのキーを含めることができますが、Clover、Cloverのドライバー、Appleのboot.efi
。これらはすべて、セキュアブートがアクティブな状態で起動します。 GRUB、rEFInd、またはその他の何でも起動できます。 (Cloverをメインブートローダーとして設定し、それを使用してWindows、GRUB、OS Xから選択することもできます。)主な欠点は、キーの交換がかなり複雑なプロセスであることです。詳細に説明します ここで 試してみたい、または試してみたいかどうかを評価するために少なくとも読んでみたいと思っているなら。また、この方法を使用する場合、Clover、Appleブートローダーなど)を更新するときに、更新されたバイナリに定期的に署名する必要がある場合があります。 rEFIndソリューションと同じです。