[lfs-support] Good Results with LFS and EFI
bruce.dubbs at gmail.com
Mon Nov 18 08:54:33 PST 2013
Dan McGhee wrote:
> At the start here, I want to apologize to those who may be frustrated
> with my changing the subject line for this EFI stuff. The subject
> appears to be at least a "warm one," if not a "hot one." Therefore,
> many things get hidden in the replies. So, in an attempt to keep things
> fresh and simple, I just start a new thread. When the time comes, and it
> will be quite soon now,
I think that's a good approach.
> I will post the basics of my "how I did it" and,
> if people are interested, post what I learned, the reasons why I did
> what I did, my conclusions and what I think is left for my future testing.
> I was able to get the kernel to load. That's the good news. The bad
> news is that I got a kernel panic. But, as I write this, I'm fixing
> that. I have another kernel in the oven.
> Using the kernel's efi-stubs was last on my list of testing. I thought
> I knew grub pretty well and didn't know anything about initrd's and
> initramfs, and everything that I had read about the efi-stubs included
> one of those two. But Geoff's success with his imbedded kernel command
> line looked promising so I did it.
> One of the things he cautioned about, and I'm reinforcing now, is to
> make sure that all the drivers the kernel needs to boot are either
> configured into the kernel or made available on the EFI partition so
> that the kernel can load them. That turned out to be my problem. I had
> the "ahci" drivers configured as modules, and since the kernel couldn't
> load my hard drive, it couldn't mount the filesystem. Here are the
> kernel configuration options I used:
> CONFIG_CMDLINE="root=/dev/xxxx" (xxxx=partition containing LFS)
> CONFIG_EFI_VARS=n (shows up as "Not Set)
> Please note that these are the same as Geoff posted last night with the
> exception that he used EFIVARS and not EFIVARFS. I did this because
> efivarfs is replacing efivars sometime in the future.
> Then it's just a matter of getting the kernel to the EFI partition and
> getting the entry into the Boot Manager. My EFI partition is mounted at
> /boot/efi so it was:
> mkdir -vp /boot/efi/EFI/lfs-7.4
> cp -v /boot/vmlinuz-<et cetera> /boot/efi/EFI/lfs-7.4/vimliuz-<et
> I don't know if the ".efi" was necessary, but all the files I've seen on
> the EFI partition end like that. Geoff gave the command he used for
> efibootmgr, but I started using gummiboot, so I did my "gummiboot thing."
> The result of booting was a kernel panic, but that's farther than I have
> gotten since I started doing this research. I can fix a kernel panic.
> But the interesting conclusion that I have drawn is that unless GRUB2 is
> hacked it won't boot a kernel "in the old way." When I was testing, I
> never got my kernel to load and I couldn't load Ubuntu unless I
> chainloaded its efi file like I do Windoze. Last night William
> Harrington posted a link to the Fedora site regarding grub patches.
> There were a lot. Also, let me quote the "FEDORA.README" from that link:
>> GRUB 2 provides various feature enhancements over the previous GRUB version
>> (referred to as "GRUB", or "GRUB Legacy") which has been unmaintained upstream
>> for years. GRUB has thus been deprecated in Fedora and replaced by GRUB 2 for
>> BIOS systems. (EFI systems still uses GRUB Legacy from the new grub-efi package.)
> So, Fedora is using grub legacy to boot into an efi environment. The
> vast majority of threads I have found at arch-linux, ubuntu, gentoo and
> openSuse all talk about not being able to boot other things with GRUB2.
> Very few, if any, people complain about their distros not booting.
> I think that if LFS is going to document how to boot using an EFI
> partition, then the most stripped down way is with the kernel efi-stubs
> and efibootmgr. If someone chooses that option for their system, there
> is no need for GRUB2. Multiboot options can be handled either by
> efibootmgr, which is the simplest, gummiboot or rEFInd.
> I'm still going to try to find a way to use GRUB2 in this. But, I
> haven't done any building for my LFS system in almost a month and I want
> to get back to it. I'm going to let this grub stuff grow penicillin in
> my brain for awhile and then try again.
I monitor the grub-devel mailing list and there is a lot of activity
discussing UEFI. This seems to be an important issue. What I'd like to
do is have GRUB load and then be able to load whatever I want to
whatever partition I specify without having to rebuild a kernel every
time. I also like having the command line capability of GRUB.
Right now I think GRUB on UEFI are really bleeding edge. I can't
participate directly because I don't have the HW but I think your work
is important for LFS. It is, at a minimum, a good transition to what
will end up being a stable solution.
More information about the lfs-support