LinuxLinuxArch LinuxGuideInstallation

TechHeart’s 2025 Arch Linux (w/ Sauce!) Install Guide

by paulie420·May 1, 2025

    Title: MmcM - WaL sOk

🐧 Vanilla Arch Linux and Extra Sauce (2025 Edition)

This is a full, step-by-step Arch Linux install guide, built for clarity, encryption, and customization. The goal is a clean base system with KDE Plasma, AUR support, and some visual flair.

🔧 Pre-Installation

1. Set Your Keymap

localectl list-keymaps | grep <KEYMAP>
loadkeys <KEYMAP>

2. Connect to the Internet

ping 8.8.8.8
ip a
iwctl --passphrase <SSID_PASSWORD> station <WLAN_DEVICE> connect <SSID_NAME>

3. Optimize Mirrors

pacman -Sy reflector
reflector --country <COUNTRY> --age 12 --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
cat /etc/pacman.d/mirrorlist

4. Partition and Encrypt the Disk

cfdisk /dev/<DEVICE>
lsblk
cryptsetup -y -v luksFormat /dev/<PARTITION2>
cryptsetup open /dev/<PARTITION2> luksroot
lsblk
mkfs.ext4 /dev/mapper/luksroot
mkfs.fat -F32 /dev/<PARTITION1>

5. Mount and Install the Base System

mount /dev/mapper/luksroot /mnt
mkdir /mnt/boot
mount /dev/<PARTITION1> /mnt/boot
lsblk

pacstrap /mnt base linux linux-firmware nano vim <EXTRA_PACKAGES>

💾 Base System Setup

6. Generate fstab and Chroot

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

arch-chroot /mnt

7. Add a Swapfile

dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab

Add this to /etc/fstab:

/swapfile none swap defaults 0 0

8. Timezone, Locale, Hostname

ln -sf /usr/share/zoneinfo/<REGION>/<CITY> /etc/localtime
hwclock --systohc
nano /etc/locale.gen

Uncomment:

en_US.UTF-8 UTF-8
locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf
echo KEYMAP=us >> /etc/vconsole.conf
echo <HOSTNAME> >> /etc/hostname
nano /etc/hosts

Add this to /etc/hosts:

127.0.0.1 localhost
::1 localhost
127.0.1.1 <HOSTNAME>.localdomain <HOSTNAME>
passwd

9. Install Core Packages

pacman -S base-devel bluez bluez-utils cups dialog dosfstools efibootmgr git grub linux-headers mtools network-manager-applet networkmanager os-prober pulseaudio-bluetooth reflector wireless_tools wpa_supplicant xdg-user-dirs xdg-utils

10. Enable Encryption in Initramfs

nano /etc/mkinitcpio.conf

Modify the HOOKS line to include:

... block encrypt filesystems ...
mkinitcpio -p linux

11. Install and Configure GRUB

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
blkid

Find your LUKS UUID and add it to:

nano /etc/default/grub

Change the GRUB_CMDLINE_LINUX_DEFAULT line to:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet cryptdevice=UUID=<YOUR_UUID>:luksroot root=/dev/mapper/luksroot"
grub-mkconfig -o /boot/grub/grub.cfg

12. Enable Services and Create User

systemctl enable NetworkManager
systemctl enable bluetooth
systemctl enable NetworkManager-dispatcher.service

useradd -mG wheel <USERNAME>
passwd <USERNAME>
visudo

Uncomment this line:

%wheel ALL=(ALL:ALL) ALL

13. Reboot into Your New Arch System

reboot

14. Connect with nmtui and Install AUR Helper

nmtui

cd Downloads/
git clone https://aur.archlinux.org/paru.git
cd paru/
makepkg -si
cd ..
rm -rf paru/

🎨 Desktop Environment & Extras

15. Install GPU Drivers

sudo pacman -S xf86-video-intel

or for AMD

sudo pacman -S amd-ucode

or for NVIDIA

sudo pacman -S nvidia nvidia-utils nvidia-settings

16. Add a GRUB Theme

git clone --depth 1 https://gitlab.com/VandalByte/dedsec-grub-theme.git
cd dedsec-grub-theme/
sudo python3 dedsec-theme.py --install

sudo reboot now

17. Install KDE Plasma Desktop

sudo pacman -S plasma-meta
sudo pacman -S kde-applications-meta
sudo systemctl enable sddm
sudo systemctl status sddm

sudo reboot now

18. Add Plymouth Boot Splash

paru -S plymouth-theme-optimus-git
paru -S plymouth-git

Edit mkinitcpio.conf:

nano /etc/mkinitcpio.conf

Add "plymouth" before "encrypt" in HOOKS:

... block plymouth encrypt filesystems ...

Edit GRUB config:

nano /etc/default/grub

Update GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash cryptdevice=UUID=<YOUR_UUID>:luksroot root=/dev/mapper/luksroot"

Then:

grub-mkconfig -o /boot/grub/grub.cfg
sudo plymouth-set-default-theme -R optimus

sudo reboot now

TechHeart.life