EFI without Bootloader in ArchLinux

I do not know if this procedure is capable of damaging your computer, so any damage caused will be the responsibility of the reader.

From what you've already read in the post title, I'll explain how to boot ArchLinux (no idea if it works on other distros) without any kind of bootloader on EFI or UEFI computers.

First step

Install efibootmgr (if you don't already have it installed)

# pacman -S efibootmgr

Step

Mount efivarfs (if not already mounted)

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

Third step

Add your distro to your computer's "Boot Order"

# efibootmgr -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sdaX initrd=/initramfs-linux.img"

in my case I did it like this

# efibootmgr -c -L "Arch Linux" -l /vmlinuz-linux -u "root=UUID=d5e93b09-02a8-4597-b059-3f87a8221825 initrd=/initramfs-linux.img quiet loglevel=0"

Final step

See if it worked

# efibootmgr -v

Delete your bootorder distro

If for some reason it hasn't worked for you or you just don't like the idea of ​​not using a bootloader, you can do the following:

First step

See which is the number that corresponds to your distro in the bootorder

# efibootmgr -v

You should see something like this:

BootCurrent: 0000 Timeout: 0 seconds BootOrder: 0000,3000,2001,2002,2003
Boot0000 * Arch Linux HD (1,800,100000, bf49dd02-7af7-42bb-ac5d-967ea840e3f8) File (\ vmlinuz-linux) root = .UUID = .d.5.e.9.3.b.0.9 .-. 0.2.a.8 .-. 4.5.9.7 .-. B.0.5.9 .-. 3.f.8.7.a.8.2.2.1.8.2.5. .initrd =. /. initramfs-.linux..img .quiet .loglevel = .0. Boot2001 * USB Drive (UEFI) RC Boot2002 * Internal CD / DVD ROM Drive (UEFI) RC Boot3000 * Internal Hard Disk or Solid State Disk RC Boot3001 * Internal Hard Disk or Solid State Disk RC Boot3002 * Internal Hard Disk or Solid State Disk RC

You will see that it marks Boot0000 *, but in this case we are only interested in the number 0000

Step

Delete your bootorder distro

# efibootmgr -b 0000 -B

Source: Arch Linux Wiki