Install Arch Linux (EFI)

After Downloading the ISO and writing it on a DVD or Pendrive (or using Ventoy), just boot into the installation media and follow these commands.

If you are reading this with elinks, links, lynx, or w3m… Hi! and thanks for your preference :)

Use fast and pretty settings

reflector -c cl --sort score --save /etc/pacman.d/mirrorlist

Change cl for your ccTLD of choice

#nano /etc/pacman.conf
33Color
37ParallelDownloads = 5

pacman -Syy

Prepare the Storage Media

tip: if you have troubles with the file table, use this command to overwrite it

dd if=/dev/zero of=/dev/sda count=100 status=progress
cfdisk /dev/sda

use gpt

IndexSizeMount
[1]1GB/boot
[2]big/
[3]littleswap

Format the filesystems

mkfs.fat -F32 -n "ESP" /dev/sda1
mkfs.btrfs -L "Root" -f /dev/sda2
mkswap -L "swap" /dev/sda3

Mount stuff

swapon /dev/sda3
mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
genfstab -U /mnt > /mnt/etc/fstab

Compression

In the fstab file, you can add the following options to enable compression, here is an example:

#nano /mnt/etc/fstab
1# /dev/sda2 LABEL=Root
2UUID=a-b-c-d-e / btrfs compress=zstd,rw,space_cache=v2 0 0

Also, add lazytime to the options for better performance.


#nano /mnt/etc/fstab
1# /dev/sda2 LABEL=Root
2UUID=a-b-c-d-e / btrfs lazytime,compress=zstd,rw,space_cache=v2 0 0

Now remount the drive in order for the options to apply.


umount -R /mnt
mount -o compress=zstd /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot

Install the system

pacstrap /mnt base base-devel

Install the kernel

pacstrap /mnt linux-zen linux-firmware dkms linux-zen-headers

Install filesystem programs

pacstrap /mnt btrfs-progs dosfstools mtools refind efibootmgr

Install network programs

pacstrap /mnt ntp iptables-nft networkmanager dnsmasq reflector

Install audio programs

pacstrap /mnt pipewire-alsa wireplumber qpwgraph

Log into the new system

arch-chroot /mnt

Configure Locale

Goes without saying, but if you speak another language, change these two commands.


echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
locale-gen

Configure time

Same with the time, if you live in another time zone, use that instead.


ln -s /usr/share/zoneinfo/America/Santiago /etc/localtime
hwclock --systohc --utc
systemctl enable ntpd

Configure Names and Network

You can use any hostname, this is just an example.


echo awa > /etc/hostname
#nano /etc/hosts
1127.0.0.1 localhost
2::1 locahost
3127.0.1.1 awa

systemctl enable NetworkManager
#nano /etc/NetworkManager/conf.d/dns.conf
1[main]
2dns=dnsmasq

dnsmasq settings are now in /etc/NetworkManager/dnsmasq.d/ due to NetworkManager.


Configure Users

Root

passwd

Regular user

You probably want to use your own nickname for the username.


useradd -m -g users -G wheel -s /bin/bash uwu
passwd uwu
#EDITOR=rnano visudo
85%wheel ALL=(ALL:ALL) ALL

Use fast and pretty settings

reflector -c cl --sort score --save /etc/pacman.d/mirrorlist

Change cl for your ccTLD of choice

#nano /etc/pacman.conf
33Color
37ParallelDownloads = 5

pacman -Syy

Install BootLoader

refind-install --usedefault /dev/sda1 --alldrivers
mkrlconf
cd /boot

Configure rEFInd

#nano refind_linux.conf
1“Minimal” “rw root=/dev/sda2”

This is a very small setup, a more complete one looks like this:


#nano refind_linux.conf
1“micro Code” “rw root=/dev/sda2 initrd=amd-ucode.img initrd=initramfs-linux-zen.img”
2“Minimal” “rw root=/dev/sda2”
3“Regular” “rw root=/dev/sda2 initrd=initramfs-linux-zen.img”
4“Fallback” “rw root=/dev/sda2 initrd=initramfs-linux-zen-fallback.img”

These files assume you installed linux-zen and are using an AMD CPU, change those accordingly.

However, keep in mind you will probably want to use PARTUUID in order to use more storage devices at boot.


lsblk -o LABEL,PARTUUID | grep Root

and change the file as needed


#nano refind_linux.conf
1“Minimal” “rw root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”

Exit the system

exit

Unmount everything and reboot

sync
umount -R /mnt
reboot

remember to remove your installation media!