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 |
---|---|
33 | Color |
37 | ParallelDownloads = 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
Index | Size | Mount |
---|---|---|
[1] | 1GB | /boot |
[2] | big | / |
[3] | little | swap |
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 |
2 | UUID=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 |
2 | UUID=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 |
---|---|
1 | 127.0.0.1 localhost |
2 | ::1 locahost |
3 | 127.0.1.1 awa |
systemctl enable NetworkManager
# | nano /etc/NetworkManager/conf.d/dns.conf |
---|---|
1 | [main] |
2 | dns=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 |
---|---|
33 | Color |
37 | ParallelDownloads = 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!