皆さん、こんばんは。iMac デュアルブート OS-X と Ubuntu のブート プロセスを可能な限り短縮しようとしています。これまでのところ、AppleのEFIブートマネージャーから直接grub(およびその後Ubuntu)を起動できました。AppleのファームウェアがOsX自体を起動するために期待するものとして、grubバイナリを(ハードリンク、エイリアス、フォルダのツリーなどを介して)マスカレードすることでこれを達成しました。(例:
$>sudo ln EFI/ubuntu/grubx64.efi System/Library/CoreServices/boot.efi
)
今、私はさらに一歩進んで、GRUB を排除しようとしています。最新の Linux ディストリビューションには EFI スタブがカーネルに組み込まれていることを知っています。そのため、原則として、GRUB2 などの (セカンダリ) ブート マネージャーを必要とせずに (EFI/UEFI ファームウェアを介して) カーネルを直接起動できます。 、 例えば。(このような:
$>sudo ln vmlinuz System/Library/CoreSerivces/boot.efi
) Apple の問題は、それが「独特な」EFI 実装であることです。Linux カーネルの EFI スタブが機能するためには、パラメーターを渡すことができる必要があります (ルート パス、初期 RAM ディスクなど)。これは、セカンダリ ブート マネージャー (GRUB、rEFInd、ELILO など) を使用して簡単に実現できます。彼らはコマンドライン文字列をEFIバイナリに渡します)が、これはまさに私がバイパスしたいものです。Apple の EFI ファームウェアによってロードされた任意の EFI バイナリにパラメータを渡す方法はありますか? (私は com.apple.Boot.plist で試しましたが、役に立ちませんでした。) または、代わりに、ブートプロセス中にコマンドラインなしで (おそらくテキストファイルを介して) Linux カーネルにパラメータを渡す方法はありますか?