Hello. I have a problem with booting Arch iso from USB in UEFI mode. I've read on the wiki how to do it, copied all the files and tried to boot the pendrive but it said that isolinux.bin is corrupted or missing. I've searched google on how to fix that and the only fix I've been able to find is to use dd to mirror the iso into the pendrive, but that way I can't edit the pendrive anymore to edit the files like the wiki says. Is there a way to fix that?
Last edited by mooop12 (2013-05-05 01:02:00)
I don't think you need to be using isolinux.bin, as isolinux.bin is part of syslinux which is definitely not UEFI (at least there is no stable UEFI syslinux yet).
Can you be more specific on how you make this UEFI USB live media? I use that very same technique, but I copy it to my ESP as a last resort kind of thing. That method continues to work just fine for me.
Is this the wiki page you are referring to? Because in the case of UEFI and a USB stick, a simple dd will not work.
I got that taken care of. It turns out I wasn't booting that pendrive in UEFI mode... In my bios there were two options for my pendrive, one that boots it in bios mode and another for UEFI. But I encountered another problem along the way: https://bugs.archlinux.org/task/34641
As someone in the comments there said, downgrading linux kernel to 3.7 allows the use of efibootmgr. I know fixing bugs takes time, but something like this is crucial, without it you can't even boot your system...
Anyway, I'm setting this thread to "SOLVED".
You should be able to boot your system without using an efibootmgr entry. First, if you have a UEFI Shell, you can use its native command there to create entries (it starts with a "b", but it has been a while since I have tried to use it). Also, the UEFI spec states that there is to be a "default" efi application position. So if you put a UEFI bootloader or bootmanager at \EFI\boot\bootx64.efi, then choose the drive as the boot device (in UEFI mode), it will launch that path.
So for example, gummiboot (which is what I use) has un update/install mechanism that copies itself to the proper \EFI\gummiboot\gummibootx64.efi, but will also put a copy as \EFI\boot\bootx64.efi. This has actually saved my ass once, as I was changing things in my BIOS, went to save the changes, and hit F9 instead of F10. F9 reset defaults, while F10 saved.... stoopid design if you ask me. So I accidentally deleted all my efibootmgr entries.
Edit: It should be noted that the paths above are relative to the root of the EFI System Partition. So I mount my ESP at /boot, so the default in my case would be /boot/EFI/boot/bootx64.efi.
Last edited by WonderWoofy (2013-05-05 01:07:36)
My motherboards firmware must be out of date, because I couldn't get UEFI Shell v2 to work, and that's the one that includes bcfg command. Also, I couldn't boot anything other than my pendrive in UEFI mode. But after downgrading the kernel to 3.7 I was able to add UEFI entry to my BIOS with efibootmgr, so the system boots fine.
Well, sometimes you need to put the UEFI Shell on the machine yourself. For example, despite the fact that most sources will tell you that Pheonix SecureCore Tiano bioses come with a UEFI Shell which *should* be accessible with F6, Thinkpads (and presumably other Lenovo systems) do not.
If you place the UEFI Shell at the root of your ESP with a certian name, then use gummiboot and let it install itself in the default spot, it will automatically detect the UEFI Shell and give you an option to boot it.
But I could boot UEFI Shell v2 from my pendrive, my motherboard just doesn't support it, it just showed some error and from what I've read on google it's because my motherboards firmware doesn't support it.
Wait, so are saying that you could boot the UEFI Shell from the installer? This is to be expected since the default Arch Linux archiso live media has both UEFI Shell version on it.
It is the mobo of any given machine that is hit or miss in having a built in UEFI Shell. If you firmware is supposed to have one, but doesn't you can simply pull the one from your "pendrive" and stick it on your machine's ESP. Then of course, set it up to boot it. That *should* work just fine. Or is this what you are saying doesn't work?
It just doesn't work. I had an error that said: "assert_efi_error (status=not found)" which, from what I've read, means that my motherboard doesn's support needed UEFI specifiation (minimum of UEFI 2.3 from what I've read).