Arch Guide

05. Boot setup (EFISTUB)

You should use the data partition's UUID!

If you use the [DATA] (or [DATA_OLD] in case of encryption) we determined before, you might see your system becoming unable to boot if your disk configuration changes in the future (if that happened to you, you need to boot the Arch ISO again, identify your partition's new name and create a new boot entry for it).

To avoid this, you should identify the partition by its UUID instead.

To find the UUID for your partition, run:
lsblk -o NAME,UUID | grep [DATA]
(use [DATA_OLD] if you're using encryption!)

The output will look something like this:
-sda2 abdee473-74a6-4fb0-8130-6ccc4e66711a

Now you can use /dev/disk/by-uuid/[UUID] instead of /dev/[DATA] (or /dev/[DATA_OLD]).

Since the UUIDs tend to be pretty long, you should use the autocompletion feature to save yourself some work and make sure you didn't make any typing mistakes. You can do that by typing /dev/disk/by-uuid/ and then the first few letters of the UUID, then press TAB. It should complete your input to the UUID you found out, then you can add the rest of the command to the start and end of that.

If pressing TAB doesn't insert the entire UUID, you probably didn't give it enough of the characters to clearly differentiate the partition from others, or you mistyped the first few characters.

Without encryption

Run this to create a boot entry called "Arch" for your installation in your UEFI BIOS:
efibootmgr --create --disk /dev/[DISK] --part [PARTITION NUMBER OF BOOT] --label "Arch" --loader /vmlinuz-linux --unicode "root=/dev/[DATA] rw initrd=\initramfs-linux.img"

With encryption

efibootmgr --create --disk /dev/[DISK] --part [PARTITION NUMBER OF BOOT] --label "Arch" --loader /vmlinuz-linux --unicode "cryptdevice=/dev/[DATA_OLD]:root root=/dev/[DATA] rw initrd=\initramfs-linux.img"

Adding kernel parameters

In case you want to add kernel parameters, append them within the last quotes like so (example: nomodeset, no encryption):
efibootmgr --create --disk /dev/[DISK] --part [PARTITION NUMBER OF BOOT] --label "Arch" --loader /vmlinuz-linux --unicode "root=/dev/[DATA] rw initrd=\initramfs-linux.img nomodeset"

Checking if a boot entry was actually created

Run this command and see whether the label and unicode part of what you just entered appears:
efibootmgr --unicode

If nothing like what you entered is listed or you got an error message when running the command to add the boot entry in the first place, you probably made a typing mistake.

Next: Booting the system