Hi guys, So im following the guide here and specifically on that page, i get to the part (following the uefi/gpt guide) where im supposed to preform # grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=grub where esp is the mountpoint for the EFI, so /boot. I did this, and did not recieve an error. However, it did output: Installing for x86_x64-efi platform. efibootmgr: EFI variables are not supported on this system. efibootmgr: EFI variables are not supported on this system. Installation finished. No error reported. My concern is in regard to that middle part, "EFI variables are not supported on this system." Is this a problem? Do I have to redo the entire thing, this time with BIOS/MBR? Is it just saying that because the efi partition is formatted fat32, unlike the root partition?
Im a complete newbie to linux, and this is my first time instilation! Any help would be greatly appreciated
Well... I see the one or another thing wrong in here ...
First, the mountpoint for the EFI partition is NOT /boot! The vfat partition is supposed to be mounted to /boot/efi. I didn't check the guide you are following, but it should actually advise you to issue "sudo mkdir /boot/efi" to create the mountpoint directory (doesn't exist when you initially installed "BIOS"/"MBR").
Second, the "grub-install" command is wrong! The parameter --efi-directory has a totally bogus value. It should read something along this line...
Also, the "EFI variables are not supported on this system" error message can be caused by a couple of things...
You are NOT booted in UEFI mode. Verify by "ls -la /sys/firmware/efi/efivars" - if the directory cannot be found or comes up empty then you are running Legacy/CSM. Reboot your system and select the "UEFI: (device id)" entry for your boot medium (either Live USB thumb-drive or Live DVD) in the boot menu.
You are in the chroot but you forgot to mount "efivarfs" into the chroot. IF you are booted in UEFI mode (you passed the "look-see" above) - you have to issue "sudo mount -t efivarfs efivarfs /sys/firmware/efi/efivars" AFTER you entered the chroot.
I actually did a Manjaro Linux "BIOS to UEFI" conversion this weekend (desktop box of a friend who installed Manjaro in "Legacy" mode by accident) and had the same error message... in my case I forgot to mount "efivarfs" into the chroot ... once the missing "mount" was done "grub-install" and "update-grub" went through perfectly fine without throwing any out-of-normal message.
EDIT: Yes, the partitioning of the hard drive should look like that (example - your layout may differ):
/dev/sda1 vfat (FAT32) 512MB boot, esp <-- mounted to /boot/efi /dev/sda2 / (ext4) 30GB <-- also contains /boot aong with /boot/efi directory) /dev/sda3 swap (swap) 8GB <-- System swap space /dev/sda4 /home (ext4) 460GB <-- Here'd be Dragons... err... user home directories. ;)
Partition table HAS to be "GPT" - if your drive still contains a "MBR" partition table it won't work!!! UEFI can only boot off GPT drives!
Hey thank you! Considering what you said, I think i'll pretty much stay true to the wiki, and not some other guide lol. Thank you again, this helped alot
Difference might be that you're installing "vanilla" Arch while I'm - as well as couple of friends - running Manjaro.
Anyhow, the basic principle should be the same...
/boot/efi is the mountpoint for the vfat ESP partition. It's actually universal across all distros (see OpenSuSE, Ubuntu, Debian - or based thereof - and you will see that this is a constant).
The grub-install command will most likely fail when you invoke it from the "live system" (read: the Arch "now type yourself to death" install sys) ... it should be invoked from within the chroot into your installed, or "pseudo-installed" if you are still on the way to setup the base system for first boot, OS.
In my experience this are the three most common issues ... not in UEFI mode, no "efivarfs" mounted, not chroot'ed into your install and/or efivarfs not mounted into the chroot.