Initial Setup

Based on the Arch Installtion Guide.

Boot media

Copy the ISO to the USB Stick:

sudo cp archlinux-2025.11.01-x86_64.iso /dev/sd

Temporary console settings

loadkeys de-latin1
setfont ter-132b

VIM

Install VIM:

pacman -S vim

Root Password

Set the root password:

passwd

Timezone

Configure the Zurich (Bern!) timezone:

ln -sf /usr/share/zoneinfo/Europe/Zurich /etc/localtime

Locale

# vim /etc/locale.conf
LANG=en_US.UTF-8
# grep en_US.UTF-8 /etc/locale.gen
en_US.UTF-8 UTF-8
locale-gen

Keyboard

# cat /etc/vconsole.conf
KEYMAP=sg-latin1

Time sync

Command that synchronizes the system clock with the hardware clock:

hwclock --systohc

Hostname

# vim /etc/hostname
workhorse

Partitioning

See the Install documentation.

# fdisk -l
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
Disk model: SKHynix_HFS002TEJ9X162N
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 924180FE-9C09-4257-9B8A-F13E40BAA72F

Device           Start        End    Sectors  Size Type
/dev/nvme0n1p1    4096    4198399    4194304    2G EFI System
/dev/nvme0n1p2 4198400 4000796671 3996598272  1.9T Linux LVM
 mkfs.fat -F 32 /dev/efi_system_partition

LUKS encryption

cryptsetup open /dev/nvme 1 cryptlvm
cryptsetup status

Remove KMS from the cpio hook. KMS caused video mode changes and prompt issues and isn't neccessary!

# grep ^HOOKS= /etc/mkinitcpio.conf
HOOKS=(base systemd autodetect microcode modconf keyboard keymap sd-vconsole block sd-encrypt lvm2 filesystems fsck)

LVM

pacman -S lvm2

fstab

To get the UUIDs:

blkid

Initramfs

mkinitcpio -P

Grub

pacman -S grub efibootmgr
# cat /etc/default/grub
GRUB_CMDLINE_LINUX="rd.luks.name=db157d64-8c61-4ca5-9bc6-1b206cc3912a=cryptlvm"
grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Base software

pacman -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman -S gdm
pacman -S wayland
pacman -S baobab
pacman -S gnome-session gnome-shell gnome-backgrounds gnome-bluetooth gnome-calculator gnome-connections gnome-desktop gnome-firmware gnome-software gnome-terminal gedit meld xdg-desktop-portal-gnome gnome-logs gnome-control-center
pacman -S pipewire
pacman -S vlc
pacman -S firefox
systemctl enable gdm
systemctl start gdm

Additonal software

pacman -S gimp
pacman -S steam
pacman -S gnome-tweaks

Hardware specific

Additonal AMD microcode

pacman -S amd-ucode

Remove not required Linux firmware

pacman -R linux-firmware-cirrus
pacman -R linux-firmware-intel
pacman -R linux-firmware-nvidia
# pacman -Q | grep linux-firmware
linux-firmware-amdgpu 20251125-1
linux-firmware-mediatek 20251125-1
linux-firmware-other 20251125-1
linux-firmware-radeon 20251125-1
linux-firmware-realtek 20251125-1
linux-firmware-whence 20251125-1

Vulkan

Arch Wiki

AMD: vulkan-radeon (or lib32-vulkan-radeon)

Pacman and YAY update script

#!/bin/sh

sudo pacman -Suy
yay -Suy --aur
sudo pacman -Sc