Preparation and Live Environment
Download
Download the ISO from archlinux.org and verify the Checksums using sha256sum.
sha256sum archlinux-2026.01.01-x86_64.iso | grep 16502a7c18eed827ecead95c297d26f9f4bd57c4b3e4a8f4e2b88cf60e412d6f
Flash
Flash it to a USB drive using a tool like dd or BalenaEtcher.
dd bs=4M if=archlinux-2026.01.01-x86_64.iso of=/dev/sda conv=fsync oflag=direct status=progress
Note: Replace /dev/sda with the correct device name for your USB drive.
Boot
Plug the USB into your PC, enter your BIOS/Boot menu, and select the USB drive.
Connect to Internet
Ethernet should work automatically. For Wi-Fi, Run iwctl, then device list, scan networks using station wlan0 scan, then station wlan0 get-networks, connect to a network using station wlan0 connect "<SSID>".
Update System Clock: timedatectl set-ntp true
Partitioning the Disk
This is the most important step. We will create two partitions:
- EFI (1GB)
- Root (the rest).
You might be familiar with allocating a third partition for swap space (4GB-8GB), but that’s not necessary. Using a swap file within an existing partition achieves the same performance and can be more flexible.
While a 512MB EFI partition is sufficient if disk space is limited, allocating 1GB is recommended to provide better long-term flexibility.
Identify your drive
Run fdisk -l. (Usually /dev/sda or /dev/nvme0n1)
Partitioning
Use fdisk to partition the disk.
fdisk /dev/nvme0n1
Note: Replace /dev/nvme0n1 with the correct device name for your disk.
In fdisk:
- type
gto create new GPT partition table. - type
nto create a new partition. - type
1to select the first partition. - press Enter to accept the default start sector.
- type
+1Gto set the size of the partition to 1GB. - type
tto change the partition type. - type
efto set the partition type to EFI System. - type
nto create a new partition. - type
2to select the second partition. - press Enter to accept the default start sector.
- press Enter to accept the default end sector.
- type
wto write the changes to disk.
Formatting
EFI partition:
mkfs.fat -F32 /dev/nvme0n1p1
Root partition:
- Btrfs file system
mkfs.btrfs -L arch_root /dev/nvme0n1p2
- or, Ext4 file system
mkfs.ext4 /dev/nvme0n1p2
Installation
Setup mirrors
Sync the pacman repository and install reflector to update the mirror list based on download speed.
pacman -Syy
pacman -S reflector
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
reflector --latest 100 --protocol https --sort rate --save /etc/pacman.d/mirrorlist --number 20
Base Installation
Mount Root:
mount /dev/nvme0n1p2 /mnt
Mount EFI:
mount --mkdir /dev/nvme0n1p1 /mnt/boot
Install Base Packages:
pacstrap /mnt base linux linux-firmware nano vim
Generate Fstab:
genfstab -U /mnt >> /mnt/etc/fstab
System Configuration
Enter your new system:
arch-chroot /mnt
Timezone:
ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
hwclock --systohc
Localization:
Uncomment the desired locale in /etc/locale.gen
en_US.UTF-8 UTF-8
Generate the locale using locale-gen. Set the locale in /etc/locale.conf
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
Network:
Set hostname:
echo "your-cool-hostname" > /etc/hostname
Install and enable NetworkManager:
pacman -S networkmanager
systemctl enable NetworkManager
Users:
Set root password:
passwd
Create a user:
pacman -S sudo
useradd -m username
usermod -aG wheel,audio,video,storage username
passwd username
Edit /etc/sudoers (uncomment the line %wheel ALL=(ALL) ALL):
EDITOR=vim visudo
Bootloader and Desktop Environment
Bootloader (GRUB):
For UEFI systems:
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
For Non-UEFI systems:
pacman -S grub
grub-install /dev/nvme0n1
grub-mkconfig -o /boot/grub/grub.cfg
Drivers:
Intel:
pacman -S xf86-video-intel intel-ucode mesa vulkan-intel intel-media-driver libva-utils
AMD:
pacman -S xf86-video-amdgpu amd-ucode mesa vulkan-radeon libva-mesa-driver
KDE Plasma Installation:
pacman -S xorg plasma-meta plasma-wayland-session sddm konsole dolphin
systemctl enable sddm
Finishing Up
exit
umount -R /mnt
reboot
Optional Packages
Install additional packages - some apps and tools that i use:
sudo pacman -S --needed 7zip a52dec ark base base-devel bash-completion bluez-utils btrfs-progs chromium dolphin dosfstools exfatprogs faac faad2 firefox fwupd git go gst-libav gst-plugin-pipewire gst-plugins-bad gst-plugins-good gst-plugins-ugly guvcview hashcat hashcat-utils iw jdk-openjdk john konsole less libdca libdv libmad libmpeg2 libreoffice-fresh libva-utils linux linux-firmware mesa mpv nano neochat networkmanager ntfs-3g obs-studio obsidian okular openssh partitionmanager pipewire-alsa plasma-meta python-pip qbittorrent qemu-full reflector sddm sof-firmware speech-dispatcher sudo symlinks thunderbird torbrowser-launcher unbound usbutils vim virt-manager virt-viewer wavpack weechat xfsprogs yt-dlp zed
Happy Hacking