[arch-general] UEFI madness
-----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? Thanks! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJRMZ+5AAoJELJhbl/uPb4SAA4P/3xG4C5viqdgdZhtZ72hFC9v VLBWw9CguzTvqYMydO4TTqwpyObW0iPFMWRzlkMt7YjmC83qgQJDAI1P7KR4fpHE fHjyqS7IKFnLe4ckKnKJIQMGeEbwcsAaF0Loy/22dW+5U10IRy39NIlvUdWQJKtc O7vpch/lZ2DKFd7zmKgKLu2FLuZK0FvwN2cGH91cYP66rloqaXytXWLZ3IIvCtf5 mGJqwx4CjKWf3FefFANXYsPtb4rmfbE1xl/xeIT4OH0F+0H77EFhFTkBsDknYnHM pUg9B5pHmJ+xMiVSDIYYIXpgT/Spk9DWp4+PZN5N8GBE63J8kzWuUqTVV/XVyR1x 0aZCJAo0Ke+swBa6cGZ/WSWRqA4kP9nJBtJ00qX+PE3FFFd8vjYyP7Qz0cmIhfqV VHx3UXzI9Q8EkMzlENWD79M+WHLeUPQopsdfmWOOI1E7N+5seeFRmekmB+jY1NRJ uXNPCq5w0iIaWB4KuAmchbP3qtoGxU5oXJ5IPh3NQOIdbScN0+4l6HtOmnxMQ2H1 HyR/2nV0e5rvuhsuKBn2ZGyLOvYN6I9AjFBPI5VmY2Ansy750AOOBqXIPLlBouqb Oy0h26dfyn8RdlcoYm4QlXzra1p6ZBk5dJ9GxYhVsXxAaUnlrprXtk3HPQcIjpiS I4n74T8MiK5TxjSDJO60 =6UgK -----END PGP SIGNATURE-----
On Sat, Mar 2, 2013 at 7:44 AM, David Benfell <benfell@parts-unknown.org> wrote:
So, first, does anyone have actual--and successful--experience installing Arch on a UEFI system?
Yes, I'm using it without major problems for months now.
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.
The layout I have is as follows (where /boot/efi is my UEFI system partition): /boot/efi/EFI/arch/vmlinuz-linux.efi /boot/efi/EFI/arch/initramfs-linux.img /boot/efi/EFI/arch/initramfs-linux-fallback.img /boot/efi/EFI/gummiboot/gummiboot.efi /boot/efi/loader/loader.conf /boot/efi/loader/entries/arch.conf /boot/efi/loader/entries/arch-fallback.conf And loader/entries/arch.conf reads as follows: title Arch Linux linux /EFI/arch/vmlinuz-linux.efi initrd /EFI/arch/initramfs-linux.img options root=UUID=<UUID of root fs> rootfstype=ext4 ro quiet To automatically copy newly installed kernels and gummiboot loaders, have a look at these links: https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Systemd https://wiki.archlinux.org/index.php/Gummiboot#Automatic_copy_on_update HTH! Best, Mika
On Sat, Mar 2, 2013 at 6:44 AM, 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?
Thanks!
I have a system that I installed a couple of weeks ago using rEFInd -
which works really beautifully and needs no manual intervention when new kernels arrive. However it did take me some time with a lot of help from Rod Smith to get it all set up correctly. Basic steps were: 1) Format disks with GPT instead of MSDOS 2) Make sure that there is a /boot/efi/EFI ESP which is formatted FAT32 3) Since I also wanted /boot to contain initial ramdisk and kernel I had /boot as a directory in my root (/) partition which is ext4. 4) In order to get it to work I made sure that the rEFInd config files were set up in the ESP as well as the required files in /boot (and including the ext4 rEFInd driver files in the ESP so that rEFInd can read the initrd and kernel files unde ext4 in /boot (and include the rEFInd driver files in those directories also. 5) In my system I found that the standard method to write the nvram entries failed to work - so I had to boot to the efi shell from the arch install iso on usbkey and write the nvram entries from the shell. If you want more details I can post more tomorrow. I hope this helps. -- mike c
On 03/02/2013 10:32 AM, Mike Cloaked wrote:
which works really beautifully and needs no manual intervention when new kernels arrive. However it did take me some time with a lot of help from Rod Smith to get it all set up correctly.
Basic steps were: 1) Format disks with GPT instead of MSDOS 2) Make sure that there is a /boot/efi/EFI ESP which is formatted FAT32 3) Since I also wanted /boot to contain initial ramdisk and kernel I had /boot as a directory in my root (/) partition which is ext4. 4) In order to get it to work I made sure that the rEFInd config files were set up in the ESP as well as the required files in /boot (and including the ext4 rEFInd driver files in the ESP so that rEFInd can read the initrd and kernel files unde ext4 in /boot (and include the rEFInd driver files in those directories also. 5) In my system I found that the standard method to write the nvram entries failed to work - so I had to boot to the efi shell from the arch install iso on usbkey and write the nvram entries from the shell.
If you want more details I can post more tomorrow.
I hope this helps.
Of these, step 4 seems to me to be undocumented. And I'm assuming I don't need to worry about step 5 unless it bites me? How will I know? Thanks!
On Sat, Mar 2, 2013 at 9:26 AM, David Benfell <benfell@parts-unknown.org>wrote:
On 03/02/2013 10:32 AM, Mike Cloaked wrote:
which works really beautifully and needs no manual intervention when new kernels arrive. However it did take me some time with a lot of help from Rod Smith to get it all set up correctly.
Basic steps were: 1) Format disks with GPT instead of MSDOS 2) Make sure that there is a /boot/efi/EFI ESP which is formatted FAT32 3) Since I also wanted /boot to contain initial ramdisk and kernel I had /boot as a directory in my root (/) partition which is ext4. 4) In order to get it to work I made sure that the rEFInd config files
set up in the ESP as well as the required files in /boot (and including
were the
ext4 rEFInd driver files in the ESP so that rEFInd can read the initrd and kernel files unde ext4 in /boot (and include the rEFInd driver files in those directories also. 5) In my system I found that the standard method to write the nvram entries failed to work - so I had to boot to the efi shell from the arch install iso on usbkey and write the nvram entries from the shell.
If you want more details I can post more tomorrow.
I hope this helps.
Of these, step 4 seems to me to be undocumented. And I'm assuming I don't need to worry about step 5 unless it bites me? How will I know?
Thanks!
The thread on the forum where I got the information that led me to my working system is at: https://bbs.archlinux.org/viewtopic.php?id=157119 This may help - you will see in that thread what led to me needing to use the efi shell. I hope this helps. -- mike c
On Sat, Mar 2, 2013 at 7:44 AM, 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?
Thanks!
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJRMZ+5AAoJELJhbl/uPb4SAA4P/3xG4C5viqdgdZhtZ72hFC9v VLBWw9CguzTvqYMydO4TTqwpyObW0iPFMWRzlkMt7YjmC83qgQJDAI1P7KR4fpHE fHjyqS7IKFnLe4ckKnKJIQMGeEbwcsAaF0Loy/22dW+5U10IRy39NIlvUdWQJKtc O7vpch/lZ2DKFd7zmKgKLu2FLuZK0FvwN2cGH91cYP66rloqaXytXWLZ3IIvCtf5 mGJqwx4CjKWf3FefFANXYsPtb4rmfbE1xl/xeIT4OH0F+0H77EFhFTkBsDknYnHM pUg9B5pHmJ+xMiVSDIYYIXpgT/Spk9DWp4+PZN5N8GBE63J8kzWuUqTVV/XVyR1x 0aZCJAo0Ke+swBa6cGZ/WSWRqA4kP9nJBtJ00qX+PE3FFFd8vjYyP7Qz0cmIhfqV VHx3UXzI9Q8EkMzlENWD79M+WHLeUPQopsdfmWOOI1E7N+5seeFRmekmB+jY1NRJ uXNPCq5w0iIaWB4KuAmchbP3qtoGxU5oXJ5IPh3NQOIdbScN0+4l6HtOmnxMQ2H1 HyR/2nV0e5rvuhsuKBn2ZGyLOvYN6I9AjFBPI5VmY2Ansy750AOOBqXIPLlBouqb Oy0h26dfyn8RdlcoYm4QlXzra1p6ZBk5dJ9GxYhVsXxAaUnlrprXtk3HPQcIjpiS I4n74T8MiK5TxjSDJO60 =6UgK -----END PGP SIGNATURE-----
Make sure the EFI System Partition is mounted at /boot. Gummiboot expects this: The /vmlinuz-linux path is relative to the ESP. With the ESP at /boot, pacman automatically installs the kernels where they need to be, and no ugly copying hacks are necessary.
On 03/02/2013 11:13 AM, Jan Steffens wrote:
Make sure the EFI System Partition is mounted at /boot. Gummiboot expects this: The /vmlinuz-linux path is relative to the ESP. With the ESP at /boot, pacman automatically installs the kernels where they need to be, and no ugly copying hacks are necessary. And up it comes. Thank you very much!
Mounting the ESP at /boot struck me as ugly, but yes, it solves the problem of installing the kernel and the initrd where they need to be. I now have Arch running on this thing, but barely installed thunderbird before responding--which is why this doesn't carry my usual GPG signature.
On Sat, Mar 2, 2013 at 12:13 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
With the ESP at /boot, pacman automatically installs the kernels where they need to be, and no ugly copying hacks are necessary.
Do you mean something other than "/boot/vmlinuz-linux" by "where they need to be"? Because that location is not really ideal. To avoid conflicts with other operating systems the kernels should go into an OS-specific subdirectory on the ESP (i.e. /boot/arch/vmlinuz-linux or even /boot/EFI/arch/vmlinuz-linux, I never quite understood what the EFI directory is there for...).
On Sat, Mar 2, 2013 at 12:13 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
With the ESP at /boot, pacman automatically installs the kernels where they need to be, and no ugly copying hacks are necessary.
Do you mean something other than "/boot/vmlinuz-linux" by "where they need to be"? Because that location is not really ideal. To avoid conflicts with other operating systems the kernels should go into an OS-specific subdirectory on the ESP (i.e. /boot/arch/vmlinuz-linux or even /boot/EFI/arch/vmlinuz-linux, I never quite understood what the EFI directory is there for...). As it happens, this system will *only* be dual-boot with Windows, so Jan's suggestion works fine with no conflict, but yes, this gave me
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 03/02/2013 03:31 AM, Mika Fischer wrote: pause. I think if I were experimenting with multiple distributions or some BSDs, however, I'd definitely need to do something more like what Mika suggested. In any event, I now have a bootable Linux. I've been between it and Windows and back now so the emergency is covered. It would be nice to clean up rEFInd, however, since it still blows up when it tries to boot Arch directly rather than through gummiboot. I'll see if I can find the configuration and make sense of it. Thanks! -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJRMqe/AAoJELJhbl/uPb4SVrsP/29t3mzIbI38mXYUFeMYmk8x yPzi7RJhLd6eoRCSAarWl/icGVvwFeaAyatRnMzuz/ZzOJXr//WoafpDDUMWFbtW Ga5K591FM/tiWBqYx68eMsuO1/rDDWWKYqDHI/fMMGAk+q5jdos0ZPtgixExsP8g 7Cv3AiiJGMunvkElwymC/K6p+ejnwyJVIoV9ash3Fk/pEDP1dvVqL1/ICVIUATvF zkXynOTGA3w6pFY0zB3TNXRKVaWGJN4CS4SRhBL043LqrVHyLjwe0giGGwX3y3jQ A/zQHc/shvKmeYxfYsUYzFcsYVz71f2Yt8Hvod/eFw/NLEB8j0N7a+HQLda8Xuxb IwhYOjib8A6+wy/GrQrgy0iKscSBxk4HJjbzUB3+reUMGuKKWfH2fzpkOU7DzPry Mc2XjzFr/B5jwM2UzaEorQpfEzfLcr6mkOxavSVw9niZ9D8EOa1RdI+tfKwUKcJg 3dDYlRBjptoXx+W/MvJ04tP8Eq1x45D2olaMNs9QcTIKbIOKpS4wzIa2zbY/mlsa glCeYPnNpBsCmbd0guDQfzgC8vFULetGkBhtTCGOYxEy6MxPXex0mq/TjxKHiD97 /jhvWc/uiuVvSmXTluabzR0ie2wRYxo04Wef9B1Gv+ppGWNpq31NVG7xNlA3hxN2 QwJgcZ65xVRM4KbS6VPW =MFAT -----END PGP SIGNATURE-----
On Sun, Mar 3, 2013 at 2:30 AM, David Benfell <benfell@parts-unknown.org> wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sat, Mar 2, 2013 at 12:13 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
With the ESP at /boot, pacman automatically installs the kernels where they need to be, and no ugly copying hacks are necessary.
Do you mean something other than "/boot/vmlinuz-linux" by "where they need to be"? Because that location is not really ideal. To avoid conflicts with other operating systems the kernels should go into an OS-specific subdirectory on the ESP (i.e. /boot/arch/vmlinuz-linux or even /boot/EFI/arch/vmlinuz-linux, I never quite understood what the EFI directory is there for...). As it happens, this system will *only* be dual-boot with Windows, so Jan's suggestion works fine with no conflict, but yes, this gave me
On 03/02/2013 03:31 AM, Mika Fischer wrote: pause. I think if I were experimenting with multiple distributions or some BSDs, however, I'd definitely need to do something more like what Mika suggested.
It's what our default loader/entries/arch.conf uses. Of course, it's suboptimal when booting multiple installs. When booting with at least systemd 198, kernel 3.8, and gummiboot 11, the ESP will be mounted at /boot by default. No fstab configuration necessary. Having a non-empty /boot or a configured mount disables this feature. The systemd guys are cooking up a kernel-install tool which installs the kernels into an installation-specific subdirectory in /boot (based on machine-id) and automatically writes loader entries for them. I hope we can make use of this in the future.
On Sun, Mar 3, 2013 at 3:15 AM, Jan Steffens <jan.steffens@gmail.com> wrote:
The systemd guys are cooking up a kernel-install tool which installs the kernels into an installation-specific subdirectory in /boot (based on machine-id) and automatically writes loader entries for them. I hope we can make use of this in the future.
That sound very nice! Is this being discussed publicly anywhere? I'm just curious. I assume you mean the Arch systemd guys, not systemd upstream, right?
On Sun, Mar 3, 2013 at 12:12 PM, Mika Fischer <mika.fischer@zoopnet.de> wrote:
On Sun, Mar 3, 2013 at 3:15 AM, Jan Steffens <jan.steffens@gmail.com> wrote:
The systemd guys are cooking up a kernel-install tool which installs the kernels into an installation-specific subdirectory in /boot (based on machine-id) and automatically writes loader entries for them. I hope we can make use of this in the future.
That sound very nice! Is this being discussed publicly anywhere? I'm just curious.
I assume you mean the Arch systemd guys, not systemd upstream, right?
No, upstream. So check the systemd mailing list.
On Sun, Mar 3, 2013 at 12:24 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
The systemd guys are cooking up a kernel-install tool which installs the kernels into an installation-specific subdirectory in /boot (based on machine-id) and automatically writes loader entries for them. I hope we can make use of this in the future.
That sound very nice! Is this being discussed publicly anywhere? I'm just curious.
I assume you mean the Arch systemd guys, not systemd upstream, right?
No, upstream. So check the systemd mailing list.
OK, I found this: http://www.freedesktop.org/software/systemd/man/kernel-install.html But this does not really help by itself. Arch would still need to change where the kernels are installed to prevent clobbering the root of the ESP, for instance by installing somewhere in /usr and then calling this tool in post_install() to install the kernel to the proper location in /boot, which is system-specific. Is anything in this direction planned? Such a change might also be somewhat disruptive to users with BIOS and users with EFI who don't use gummiboot...
On Sun, Mar 3, 2013 at 12:54 PM, Mika Fischer <mika.fischer@zoopnet.de> wrote:
OK, I found this: http://www.freedesktop.org/software/systemd/man/kernel-install.html
But this does not really help by itself. Arch would still need to change where the kernels are installed to prevent clobbering the root of the ESP, for instance by installing somewhere in /usr and then calling this tool in post_install() to install the kernel to the proper location in /boot, which is system-specific.
Is anything in this direction planned? Such a change might also be somewhat disruptive to users with BIOS and users with EFI who don't use gummiboot...
Just for reference: the whole thing is also explained in some detail here: http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
On Sun, Mar 3, 2013 at 8:54 PM, Mika Fischer <mika.fischer@zoopnet.de> wrote:
itself. Arch would still need to change where the kernels are installed to prevent clobbering the root of the ESP, for instance by installing somewhere in /usr and then calling this tool in post_install() to install the kernel to the proper location in /boot, which is system-specific.
Yup, this would be the idea.
Is anything in this direction planned? Such a change might also be somewhat disruptive to users with BIOS and users with EFI who don't use gummiboot...
We hope to be able to follow this scheme. Ideally all boot-loaders would use the same configuration files, which would make this "just work". So far I'm aware of patches against grub2, hopefully more will follow. Even without that, it shouldn't be too hard to transition non-gummiboot systems to using this scheme, but we haven't discussed it in detail. -t
On 02/03/13 06:44, David Benfell 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?
Thanks!
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJRMZ+5AAoJELJhbl/uPb4SAA4P/3xG4C5viqdgdZhtZ72hFC9v VLBWw9CguzTvqYMydO4TTqwpyObW0iPFMWRzlkMt7YjmC83qgQJDAI1P7KR4fpHE fHjyqS7IKFnLe4ckKnKJIQMGeEbwcsAaF0Loy/22dW+5U10IRy39NIlvUdWQJKtc O7vpch/lZ2DKFd7zmKgKLu2FLuZK0FvwN2cGH91cYP66rloqaXytXWLZ3IIvCtf5 mGJqwx4CjKWf3FefFANXYsPtb4rmfbE1xl/xeIT4OH0F+0H77EFhFTkBsDknYnHM pUg9B5pHmJ+xMiVSDIYYIXpgT/Spk9DWp4+PZN5N8GBE63J8kzWuUqTVV/XVyR1x 0aZCJAo0Ke+swBa6cGZ/WSWRqA4kP9nJBtJ00qX+PE3FFFd8vjYyP7Qz0cmIhfqV VHx3UXzI9Q8EkMzlENWD79M+WHLeUPQopsdfmWOOI1E7N+5seeFRmekmB+jY1NRJ uXNPCq5w0iIaWB4KuAmchbP3qtoGxU5oXJ5IPh3NQOIdbScN0+4l6HtOmnxMQ2H1 HyR/2nV0e5rvuhsuKBn2ZGyLOvYN6I9AjFBPI5VmY2Ansy750AOOBqXIPLlBouqb Oy0h26dfyn8RdlcoYm4QlXzra1p6ZBk5dJ9GxYhVsXxAaUnlrprXtk3HPQcIjpiS I4n74T8MiK5TxjSDJO60 =6UgK -----END PGP SIGNATURE-----
There is an article in "Linux Format" magazine issue March 2013 (no 168) about UEFI and it includes a worked example that uses Arch as a guest in VirtualBox. It uses GPT partitions and Grub as a boot loader and can boot either via BIOS or UEFI. If there's a chance you can get hold of that it may help you out. In case you can't here's a gist... 1. Boot system from the Arch November 2012 CD 2. Format disk with gdisk and create 4 partitions, for example (this was a 10Gb test disk): Number Start End Size Code Name 1 2048 411647 200.0 MiB EF00 EFI System 2 34 2047 1007.0 KiB EF02 BIOS boot partition 3 411648 821247 200.0 MiB 8300 Linux /boot filesystem 4 821248 20971486 200.0 MiB 8300 Linux /root filesystem # parted /dev/sda (parted) unit s (parted) mktable gpt (parted) mkpart primary 2048 411647 (parted) set 1 boot on (parted) name 1 "EFI System Partition" (parted) mkpart primary 34 2047 (parted) name 2 "BIOS Boot Partition" (parted) set 2 bios_grub on (parted) mkpart primary ext2 411648 821247 (parted) name 3 "Linux /boot filesystem" (parted) mkpart primary ext4 821248 20971486 (parted) name 4 "Linux /root filesystem" (parted) quit (the BIOS partition is there so you can also install a BIOS boot partition in case you want to move the disk to a non-UEFI system. You probably won't need it - it just sits in the wasted space between the end of the GPT partition table and the first aligned sector). 3. Make and mount filesystems # mkfs.vfat -F32 /dev/sda1 # mkfs.ext2 /dev/sda3 # mkfs.ext4 /dev/sda4 # mount /dev/sda4 /mnt # mkdir /mnt/boot # mount /dev/sda3 /mnt/boot # mkdir /mnt/boot/efi # mount /dev/sda1 /mnt/boot/efi 4. Install # pacstrap /mnt base # genfstab -p -U /mnt | sed 's/cp437/437/' >> /mnt/etc/fstab # arch-chroot /mnt pacman -S grub-efi-x86_64 # modprobe efivars # arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id= arch_grub --recheck # arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg # umount /mnt/boot/efi /mnt/boot /mnt 5. reboot 6. If you want to make it BIOS compatible too: # pacman -S grub-bios # grub-install --target=i386-pc --recheck /dev/sda Hope it helps. John.
On Fri, 2013-03-01 at 22:44 -0800, David Benfell wrote:
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?
Thanks!
I have been succesfully using a GRUB2 based UEFI system for the past year, but it died on me a week ago. Didn't want to load any kernel anymore... I switched to refind and it works beautiffuly, just follow the wiki here: https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Using_rEFInd and set your ESP partition like Mike suggested. The tricky part is to boot the iso into efi mode, it complains about it having no loader config (at least for me). You can work around that if you already have refind on the ESP partition, if you don't, install it in EFI/Boot/ and name the efi file bootx64.efi (be sure that it scans externals, or optical if you're using a CD). You can then load refind by going into your EFI bios and choosing "Load EFI Shell" (note that not all EFI bioses have that option). -- Maxime
On Sat, Mar 2, 2013 at 2:25 PM, Maxime Gauduin <alucryd@gmail.com> wrote:
I have been succesfully using a GRUB2 based UEFI system for the past year, but it died on me a week ago. Didn't want to load any kernel anymore... I switched to refind and it works beautiffuly, just follow the wiki here: https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Using_rEFInd and set your ESP partition like Mike suggested. The tricky part is to boot the iso into efi mode, it complains about it having no loader config (at least for me). You can work around that if you already have refind on the ESP partition, if you don't, install it in EFI/Boot/ and name the efi file bootx64.efi (be sure that it scans externals, or optical if you're using a CD). You can then load refind by going into your EFI bios and choosing "Load EFI Shell" (note that not all EFI bioses have that option).
I followed the following to make a uefi bootable iso on a usbkey: https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#C... -- mike c
Oh thx for the link! I didn't bother because I had already installed refind last week, plus previous isos booted fine without further tweaking. Gummiboot started acting funny recently. -- Maxime On Mar 3, 2013 11:32 AM, "Mike Cloaked" <mike.cloaked@gmail.com> wrote:
On Sat, Mar 2, 2013 at 2:25 PM, Maxime Gauduin <alucryd@gmail.com> wrote:
I have been succesfully using a GRUB2 based UEFI system for the past year, but it died on me a week ago. Didn't want to load any kernel anymore... I switched to refind and it works beautiffuly, just follow the wiki here: https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Using_rEFInd and set your ESP partition like Mike suggested. The tricky part is to boot the iso into efi mode, it complains about it having no loader config (at least for me). You can work around that if you already have refind on the ESP partition, if you don't, install it in EFI/Boot/ and name the efi file bootx64.efi (be sure that it scans externals, or optical if you're using a CD). You can then load refind by going into your EFI bios and choosing "Load EFI Shell" (note that not all EFI bioses have that option).
I followed the following to make a uefi bootable iso on a usbkey:
https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#C...
-- mike c
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.
participants (9)
-
Anatol Pomozov
-
archlinux@jelmail.com
-
David Benfell
-
Jan Steffens
-
Maxime GAUDUIN
-
Maxime Gauduin
-
Mika Fischer
-
Mike Cloaked
-
Tom Gundersen