[arch-general] UEFI madness

Anatol Pomozov anatol.pomozov at gmail.com
Fri Mar 8 14:50:13 EST 2013


Hi

On Fri, Mar 1, 2013 at 10:44 PM, David Benfell
<benfell at parts-unknown.org> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi all,
>
> So far, my attempt to install Arch Linux on a UEFI system is a total
> facepalm moment. The problem is in booting post-install.
>
> So, first, does anyone have actual--and successful--experience
> installing Arch on a UEFI system? Yes, I went to the Arch Wiki, which
> initially pointed me at GummiBoot. There are actually two sets of
> instructions, one given where I looked first, for the UEFI entry, and
> another under the entry for GummiBoot. Neither succeeds, but I wound up
> following the latter set of instructions (and cleaning up extra entries
> with efibootmgr, which fortunately makes this relatively easy).
>
> GummiBoot says it can't find /vmlinuz-linux. I tried modifying the
> configuration to say /boot/vmlinuz-linux, but no joy. Apparently, I'm
> really supposed to copy this file and the initrd image to the EFI
> partition, but nobody says where in the EFI partition, so I have no idea.
>
> I also tried following the instructions for grub-efi. I'm just
> mystified. I managed to install the right package, but from there I just
> wasn't understanding a thing. I've been using linux since 1999 so this
> shouldn't be so completely mystifying.
>
> I tried installing rEFInd (from sourceforge). As near as I can tell, it
> does indeed detect all the possible boot options on the system. But when
> I try booting the Arch installation, it says it can't find the root
> partition. It also detects the GummiBoot option, but that leads the same
> place as before. Finally, it detects the Windows option, which I hope
> still works (unfortunately I do need this).
>
> I guess getting something that just works--like it did with BIOS
> systems--is not in the cards. What do I do now?

I installed Arch on my new home server several days ago and I had
similar experience with UEFI that you had.

I decided to go with gummiboot as it sounds simpler, and installation
instructions [1] are cleaner than for other UEFI bootloaders.
efibootmgr did not work for me so I started from "copy it to the
'default' location $esp/EFI/boot/bootx64.efi for x86_64 systems." (see
[1]). I was hoping that my ASRock H61M/U3S3 will recognize gummiboot
bootloader. But no. It shown me cryptic error something "No device
found".

I reformatted UEFI system partition, upgraded motherboard UEFI, but
nothing helped. So I renamed gummiboot.efi to $ESP/shellx64.efi and
then booted "default shell" from matherboard UEFI graphical UI. Only
then I was able to run efibootmgr and set path to gummiboot binaries.

Resume: my motherboard does not recognize " $esp/EFI/boot/bootx64.efi"
as a default shell.

I mounted $ESP to /boot, copied kernel there, setup systemd hook for
gummiboot binaries and everything works like charm now. Additionally I
use multiple-devises btrfs [2] for root fs so I had to add "btrfs"
hook to mkinitcpio.conf.

[1] https://wiki.archlinux.org/index.php/Gummiboot
[2] https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

PS: UEFI works great with Arch, but some Arch UEFI documentation
cleanup is required.


More information about the arch-general mailing list