Installation

Mirror List

To update the mirrorlist using reflector:

reflector --protocol https --verbose --latest 25 --sort rate --save /etc/pacman.d/mirrorlist

Install Essential Packages

To install the essential packages to the new root:

pacstrap -K /mnt base linux linux-firmware base-devel git nano networkmanager

Fstab

To generate an fstab file:

genfstab -U /mnt >> /mnt/etc/fstab

Chroot

To change root into the new system:

arch-chroot /mnt

Time

To set the time zone:

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

Note: You can verify it using the command date:

date

To generate the /etc/adjtime file:

hwclock --systohc

To set up time synchronization with systemd-timesyncd:

systemctl enable systemd-timesyncd.service

Localization

Uncomment the #en_US.UTF-8 UTF-8 line editing the /etc/locale.gen file:

nano /etc/locale.gen

To generate the locales:

locale-gen

Create the locale.conf file, setting the LANG variable accordingly:

nano /etc/locale.conf
LANG=en_US.UTF-8

Hostname

To set a hostname create a hostname file, adding its name, e.g. desktop:

nano /etc/hostname
desktop

Root password

To set the root password, run:

passwd

Creating New User

To create new user, adding it to the wheel group:

useradd -m -G wheel username

To add a password to the user, run:

passwd username

Edit the sudoers configuration file, uncommenting the # %wheel ALL=(ALL:ALL) ALL line:

EDITOR=nano visudo
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL

Enable Network

To enable NetworkManager service:

systemctl enable NetworkManager

Boot Loader

Install systemd-boot

bootctl install

Edit the /efi/loader/loader.conf file:

nano /efi/loader/loader.conf
default  arch.conf
timeout  4
console-mode auto

Create the /efi/loader/entries/arch.conf file:

nano /efi/loader/entries/arch.conf
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw

To make it easy to set the UUID you can use the blkid command and append the output to the arch.conf file.

blkid -s UUID /dev/root_partition >> /efi/loader/entries/arch.conf

Copy everything that is inside the /boot path to /efi.

Reboot

To exit the chroot environment:

exit

To unmount all the partitions and reboot:

umount -R /mnt
reboot

That's it. Good luck!

By the Way

If you have succeeded, there's one last thing to be done.

First download fastfetch:

sudo pacman -S fastfetch

Now run it and enjoy your new achievement:

fastfetch

Note: jokes aside, this last step is a simple and efficient way to verify your installation.