You are not logged in.

#1 2013-02-17 16:54:55

ryan117
Member
Registered: 2013-02-05
Posts: 14

UEFI installation not booting

I have performed a new installation of Arch 64 according to the beginners' guide on a computer with a Gigabyte GA-78LMT-USB3 motherboard.  Since this has UEFI, I decided to take advantage of this, but am having some trouble getting it to boot.

I created a gpt partition table with three partitions, the first being a 512MB primary partition formatted using a FAT32 filesystem to be used as the UEFI system partition and set the boot flag using parted, the second and third are for root and home formatted as ext4.

I decided to go with grub-efi-x86_64 as despite what the beginners guide says, it looked easier to configure.  I installed GRUB via the following:

# pacman -S grub-efi-x86_64 efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

The wiki then said that since v2.0, grub-install tries to make its own menu entry, so running the following is not necessary:

# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (GRUB)" -l '\EFI\arch_grub\grubx64.efi'

So I skipped that command and when straight on to running:

# grub-mkconfig -o /boot/grub/grub.cfg

I restarted the computer but it did not boot, so I used the arch cd to run this command, just in case the automatic entry was not successful.

# efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l '\EFI\arch_grub\grubx64.efi'

When I rebooted the computer still failed to boot, so I read the following as the end of the EFISTUB section:

7. (Optional) As a fallback, in case efibootmgr created boot entry does not work, copy refind_x64.efi to /boot/efi/EFI/boot/bootx64.efi as follows:

# cp -r /boot/efi/EFI/refind/* /boot/efi/EFI/boot/
# mv /boot/efi/EFI/boot/refind_x64.efi /boot/efi/EFI/boot/bootx64.efi

So I adapted it to copy from grub rather than refind:

# cp /boot/efi/EFI/arch_grub/arch_grubx64.efi /boot/efi/EFI/boot/bootx64.efi

After I rebooted this time, it booted correctly.  Any ideas why this might be?

Offline

#2 2013-02-17 19:08:46

WonderWoofy
Member
From: Los Gatos, CA
Registered: 2012-05-19
Posts: 8,412

Re: UEFI installation not booting

The /EFI/BOOT/BOOTX64.EFI is what the firmware defaults to. This is what is used when you are booting from external media for instance. It wouldn't be too practical to require a boot manager entry for external media, so this is what the UEFI specs call for to handle this situation.

I think it may be worth investigating why efibootmgr entries are not working. You can see exactly what is written to the nvram by using the -v flag. Also, you can (often more reliably) write entries using a tool included with the UEFI Shell v2.0.

Last edited by WonderWoofy (2013-02-17 19:09:31)

Offline

#3 2013-02-17 20:29:37

swordfish
Member
Registered: 2012-01-14
Posts: 160

Re: UEFI installation not booting

ryan117 wrote:

When I rebooted the computer still failed to boot, [...]

What happened when you tried to boot? Any messages on the screen?

On my computers I can invoke a menu using F6 (the Asrock ITX board) or F12 (Thinkpad) while the uefi-bios is booting (think, on your Gigabyte board it should be F12, too). In this menu I can select which device (or which bootloader) to start. Maybe you have a look if Grub appears there and can be started from there.

Another point: The Grub2 part of the wiki concerning UEFI seems to be worth reading. Maybe you could re-check if all directories and all files are where they should be.


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

#4 2013-02-17 20:43:22

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: UEFI installation not booting

ryan117 wrote:

I have performed a new installation of Arch 64 according to the beginners' guide on a computer with a Gigabyte GA-78LMT-USB3 motherboard.  Since this has UEFI, I decided to take advantage of this, but am having some trouble getting it to boot.
...
So I adapted it to copy from grub rather than refind:

# cp /boot/efi/EFI/arch_grub/arch_grubx64.efi /boot/efi/EFI/boot/bootx64.efi

After I rebooted this time, it booted correctly.  Any ideas why this might be?

Yes. The "Hybrid EFI" implementation that Gigabyte uses is a bug-ridden, sorry excuse for an EFI. Read about my experiences with it here. I have exactly the same problem (among many others): The board "forgets" its NVRAM entries. I just use the fallback filename (EFI/BOOT/bootx64.efi) and don't bother even trying to set the NVRAM entries with efibootmgr.

You've already done your installation, but for others with Gigabyte's Hybrid EFI, I recommend against using it in EFI mode unless you absolutely must do so; the pain of doing it is just too great. It sounds like you got lucky on yours (or maybe they've fixed some of the bugs). I only boot in EFI mode because I want to be able to test my rEFInd on as wide a range of EFI implementations as possible.

Offline

#5 2013-02-19 10:45:53

ryan117
Member
Registered: 2013-02-05
Posts: 14

Re: UEFI installation not booting

Ah, thanks srs5694.  I may not bother with EFI then.  Does this mean that I will need to use a MBR partition table though? As a partition set as bootable in a GPT partition table will be regarded as an EFI partition wouldn't it?

Offline

#6 2013-02-19 16:00:39

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: UEFI installation not booting

You can boot most BIOS-based computers off of a GPT disk; however, computers with EFI support tend to have rules to determine which boot mode to use, and those rules can cause problems. My (limited) testing with my GA-78LMT-S2P suggests that it uses a BIOS-mode boot unless the disk uses GPT and has a valid EFI System Partition (ESP). Thus, you should be OK so long as you don't create an ESP (which is a FAT32 partition with the "boot flag" set in a libparted-based program, or with a type code of EF00 in gdisk).

Offline

Board footer

Powered by FluxBB