On 10/28/2013 10:55 AM, Bruce Dubbs wrote:
Dan McGhee wrote:
When all this is successful, I could write the procedure up and post
it. Then, if anyone wanted to, it could be put in the book somewhere.
I could also write a hint if that were more practical.
For now, just let us know your results.
-- Bruce
So far my results are just learning. I really haven't done anything yet,
but some people may be interested in what I have found to date. This is
long.
Booting Linux in general, or LFS specifically *can be* as
straightforward as it always has been. But if someone wants to make use
of their UEFI--formerly EFI--firmware, then it is not so straightforward
and can be down right complex.
The first thing to note, in the current milieu, is that if you want to
use *secure boot*--which is an add-on to and not synonymous with
UEFI--you can install GRUB like you always have, but you will never see
it boot anything because, if you're doing it in a "pre-UEFI" fashion,
it's irrelevant to secure boot and won't be seen. Secure boot is an
option in Linux right now if and only if you are using Ubuntu>12.10,
Fedora, OpenSuse--I don't know the version numbers--or if you have paid
Microsoft $95 to let you write a key that you can use with your firmware
and then figure out how to write a file that will check with the
firmware to make sure all is OK and then check with the bootloader to
make sure it's not vicious or malicious. (Sorry for the sarcasm). All of
this means that you must turn off secure boot in your firmware setup.
So far the only thing we have done in our preparation to boot LFS is
turn off secure boot. Onward!
The next option is to turn turn on "legacy mode" or "CMS" in the
firmware. This is vendor specific so there are probably a number of
things this is called. It just means "going back to the way things used
to be."--a bootloader in the first sector of the disk. In days of yore
this was the way all computers shipped. We are all familiar with it--one
bootloader, chain-linking and four primary partitions. Except if you
have a GPT partition table. To insure backwards compatibility GPT
partition tables now have an area at the beginning of the disk called
the "Protective MBR Layer." This is the place where GRUB would go on a
GPT disk.
This is also the place at which things start to muddy a bit. BIOS based
firmware could handle only one bootloader, because it was "limited" to
one physical spot on a fixed disk. UEFI overcomes that by using a "Boot
Manager" to select the boot loader, and there can be, theoretically, any
number of boot loaders, because these loaders now reside in a partition
and not an actual physical spot on the disk. The following is the
snipped results of my running <parted -l /dev/sda>
Number Start End Size File system Name Flags
1 1049kB 420MB 419MB ntfs Basic data partition hidden, diag
2 420MB 693MB 273MB fat32 EFI system partition boot
If someone has this partition, chances are they've been booting in EFI
Mode. What I've read so far is that the EFI partition is usually the
first partition of the disk, but it's not on mine. Another vendor thing
I think. This partition contains two directories: boot and EFI. I've
discovered that it's standard in Linux to mount it at /boot/efi--that's
the way it is in my Ubuntu system and it's listed in /etc/fstab. Here
are the results of <ls /boot/efi/EFI> using Ubuntu on my HP-Envy:
Boot HP Microsoft ubuntu
I've put this in here because the Boot Manager--whether written by HP or
Microsoft I don't know--reads this directory and gives, as choices, the
names of the directories--Boot comes across as Recovery for an option.
You can access the Boot Manager by interrupting the boot process. On my
machine it's done by holding the ESC key during boot and then selecting
what I want. This is what I had to do to get to Ubuntu after I first
installed it. The problem is in getting the Boot Manager to have a
different default selection other than Microsoft. The solution to that
is not trivial and I don't want to write about it until I study the
process some more and, possibly, try it.
But at this point let me show you the magic. Since version 3.3, the
Linux kernel has had "efi hooks." So--and I think it's this simple--you
could create a directory in /boot/efi/EFi--let's call it LFS-7.4--and
put the kernel in it. Then "LFS-7.4" would appear as option in the EFI
Boot Manager, you select it and "Holy shiny boots, Batman, there's my
new LFS system and I didn't even use GRUB!"
What I've tried to do is describe the "easy" ways to boot LFS now. If
you want the computer to default to Grub2 with all the selections on it,
then there's more.
I've found two interesting articles on the "nuts and bolts" of all of this.
"Managing EFI Bootloaders for Linux"
<http://www.rodsbooks.com/efi-bootloaders/installation.html> gives a lot
of good detail about EFI, elilo, Grub2 and the kernel. That document
links to UEFI Booting <https://help.ubuntu.com/community/UEFIBooting>
which has some good info also. It's slanted toward Ubuntu, but it's
usable in general.
I have some questions about specific GRUB2 options, but this is enough
for tonight.
Thanks for wading through this.
Dan
--
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page