Re: grub2 EFI boot loader internal/external booting
For anyone who might be interested:
ubuntu 12.10 (quantal) can be booted from my iMac internal drive without using grub. This is pure efi stub booting using only the kernel and one config file, driven by refind boot manager (not boot loader). You do need to install refind on OSX (http://www.rodsbooks.com/refind/).
The kernel, and it's initrd image, sits on my disk0s1 (EFI) MSDOS partition under folder /EFI/ubuntu. Also there is a file called refind_linux.conf where I put the menu items for this kernel. Each item needs the disk root UUID, but I can include other options like nosplash or nomodeset.
The general refind.conf file is on the main HPFS partition under /efi/refind, where refind was installed. This file tells refind what scope to use when scanning for kernels and what should be the default selected boot icon.
If I do a ubuntu update including a new kernel then this new kernel, and the initrd image, need to be copied over to /EFI/ubuntu to replace the existing ones. You can do this easily from ubuntu by mounting /dev/sda1 and copying these files.
EFI stub boot also works from the main mac partition (disk0s2) but it is MacOSX Extended with journalling, and not so easy to update from linux.
The main problem I have had is the video. For a while I used Device "fbdev" in xorg.conf to get X to work. However, when kernel 3.4 was replaced by kernel 3.5 this stopped working and I was getting black screen on boot. I have cured this by specifying 'nomodeset' in the refind_linux.conf file. This is probably because kernel 3.5 is loading its radeon driver automatically, doing KMS, and that selects the wrong video connector.
Windows is cheap, but linux is free