Hi everyone, I would like to know if right now boot-update is compatible with the UEFI stuff ?
If so, can someone tell me where it install the grub.efi file and also, where is the grub.cfg now ? Does everything is now inside /boot/efi/EFI or they splitted the file from /boot/grub2 and /boot/efi
I don't believe boot-update supports (U)EFI in any meaningful way at this point in time. The problem most likely stems from the fact that you can boot a Linux kernel in a multitude of ways on (U)EFI systems. As a result, a boot configuration may or may not be required and may be placed in 1 of many different places if it is. It would most likely require expansion of the installation documentation as well as an update to boot-update if the support was to be added.
That said, it's quite pleasant booting Funtoo on EFI systems with kernel EFI stub support.
I know, but you need to configure your bootmanager by hand with efibootmgr and you need to remove Grub2.
Also, where do you install your stub kernel ? Did you use the dirty hack : /boot/efi/EFI/BOOT/BOOTX64.EFI
Yes, I did remove Grub2 (and as a result, boot-update) because I didn't need it. Instead I use a general EFI bootloader called rEFInd (a fork of rEFIt which is supposed to be less Apple focused) along with kernels with EFI stub support (don't forget to add ".efi" to the filename). rEFInd scans the EFI system partition for EFI executables and displays them as bootable options. You can also add static options if you want to (like Grub2 does) but I just configure kernel options using the built-in kernel command line and boot the kernel as it's automatically discovered by rEFInd.
If you do want to use Grub2, the .efi file and whatever configuration files it needs (grub.cfg, for example) needs to be installed in the same folder on a volume that your EFI firmware can access. By default, this is only the EFI system partition (or on Apple machines, HFS+ volumes as well, IIRC). Then you have to bless the Grub EFI executable (Mac OS X term) using bless (from Mac OS X) or efibootmgr (from Linux) in order to tell EFI that it needs to start it by default.
Just to be clear, there is no magic place to put EFI executables on the EFI system partition. You can put it anywhere you want. What matters is that you tell EFI where to find the executable you want to start by default (hence the need for bless/efibootmgr). For example, I keep my kernel(s) in /EFI/FUNTOO on my workstations at work. If I were using Grub2, I would probably put it in /EFI/GRUB2 or /EFI/GRUB. If EFI support is going to be built in to boot-update, now might be a good time for someone to standardize where the EFI system partition will be mounted (/boot/efi?) and what folder Funtoo will use.
If you wanted to, EFI stub support allows you to start up a kernel as if it were itself an EFI executable. This can be done either from an EFI shell or by blessing it (again, don't forget to add ".efi" to the filename). It's the least flexible option, but not necessarily a bad one if Funtoo is the only operating system you will be booting on the machine and you have a simple configuration.
Anyway, no matter what you do, unless your particular flavor of EFI comes with some kind of default, you should need bless/efibootmgr to set the bootloader no matter what option you choose. This includes Grub2.
Last edited by kaorihinata (2012-11-29 05:58:00)
Where did you find the Gentoo package for rEFInd ?
There isn't one that I'm aware of.
The binary rEFInd package contains only an installation script, EFI programs and the required icons for the interface. I don't know if there's really an appropriate place to install its contents besides directly to an EFI system partition. The installation script depends on either bless (and, by extension, Mac OS X) or efibootmgr and assumes you have the EFI system partition mounted at /boot/efi, IIRC. It's a pretty simple bootloader, like rEFIt before it.
The source package contains the source, but needs either the Tianocore development kit or the GNU/EFI toolchain (in theory, need to test it) to build. I haven't tried either yet.
Thinking about it more, it might be reasonable for an ebuild to install the binaries to the EFI system partition itself. I had forgotten that there was an eclass for mounting /boot used by Grub2 for installing files to the /boot partition. Could always do the same thing for the EFI system partition, but /boot/efi would probably end up being the permanent default mount point for the EFI system partition. The installation script would probably be renamed, or stowed under /usr/share/doc for the time being.
Last edited by kaorihinata (2012-11-29 22:02:32)