Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am attempting to install Arch linux to a new (and very crappy) HP Pavillion 15 Notebook.

This is a UEFI-based machine. After several swings at it, I have managed to get pretty far. Legacy mode is disabled in the system setup, and I have EFI-booted to the Arch DVD I burned, and progressed through both the Arch Beginner's Guide and the more advanced Installation Guide to the point where I am installing grub.

While chrooted, I execute:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug

This emits a ton of output, including:

EFI variables are not supported on this system

The first time I got to this point, I continued with the installation, not knowing if it was an actual problem. Turns out it was, as when I rebooted the machine no bootable medium could be found and the machine refused to boot. I was able at that point to go in to the UEFI setup menu and select an EFI file to boot, and the Arch Linux would boot up.

But I am now going back and reinstalling again, trying to fix the problem above.

How can I get GRUB to install correctly?

share|improve this question
up vote 7 down vote accepted

The problem was simply that the efivars kernel module was not loaded.

This can be confirmed by:

sh-4.2# efivar-tester
UEFI variables are not supported on this machine.

If you are chrooted in to your new install, exit out, and then enable efivars:

modprobe efivars

...and then chroot back in. In my case, this means:

chroot /mnt

but you should chroot the same way you did before.

Once back in, test again:


This will no longer report an error, and you can install grub the same way you did before.

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
share|improve this answer
But what about on a system that doesn't support UEFI? How in the world do I install UEFI-capable GRUB on my USB stick to install Arch on a new UEFI computer if my working computer doesn't support UEFI? There's gotta be a way to do it! – trusktr Nov 12 '13 at 22:35
The efivars module has been replaced by "efivarfs" now (wiki.debian.org/UEFI#efibootmgr_and_efivar). – pedroapero Oct 12 '15 at 13:54

You can't! Building and installing are two different things, the machine you build on must be uefi capable. If you want to use/install linux on uefi capable hardware gpt must already exist. You can build gpt/mbr on uefi but not both if your hardware uses old bios.

share|improve this answer
Please read the post more carefully. – John Dibling Apr 28 at 22:56

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.