Hi On Fri, Mar 1, 2013 at 10:44 PM, David Benfell <benfell@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.