Good day, everybody. I'm trying to shorten the boot process of an iMac dual-booting OS-X and Ubuntu as much as possible. So far i managed to boot grub (and Ubuntu afterwards) directly by Apple's EFI boot manager. I've accomplished this by masquerading (via hardlinks, alias, folder's tree, etc.) the grub binaries as what Apple's firmware expects for booting OsX itself. (Example:
$>sudo ln EFI/ubuntu/grubx64.efi System/Library/CoreServices/boot.efi
)
Now i'm trying to go a step further, that is, eliminating GRUB. I know that modern Linux distros' do have EFI stubs incorporated in the kernel, so that, in principle, one could boot directly into the kernel (via EFI/UEFI firmware) without the need of a (secondary) boot manager, such as GRUB2, for instance. (Like this:
$>sudo ln vmlinuz System/Library/CoreSerivces/boot.efi
) The problem with Apple is it's "peculiar" EFI implementation. In order for the Linux kernel's EFI stub to work, one must be able to pass parameters to it (root path, initial ram disk, etc.) Well, this is easily accomplished using secondary boot managers (GRUB, rEFInd, ELILO, etc. They do pass a command line string to the EFI binary) but this is exactly what i'd like to bypass. Is there a way to pass parameters to an arbitrary EFI binary, loaded by Apple's EFI firmware? (I've tried with the com.apple.Boot.plist but to no avail.) Or, alternatively, is there some way to pass parameters to the linux kernel during the boot process WITHOUT the commandline (maybe via some text file)?