Arch Linux is a lightweight, flexible, and highly customizable Linux distribution designed for users who prefer a minimal base system and complete control over their environment. Unlike many other distributions, Arch does not come with a preconfigured desktop or default software—instead, it provides a streamlined base system that users build upon according to their needs.

This guide provides a detailed, step-by-step approach to installing Arch Linux, covering partitioning, package installation, system configuration, and post-installation setup. Whether you’re a beginner or an experienced Linux user, this guide will help you successfully install and configure Arch Linux.
Prerequisites
Before starting, ensure you have:
- A USB drive (4GB+ recommended) to create a bootable Arch Linux installer.
- A stable internet connection (Ethernet is preferred; Wi-Fi setup is possible).
- A UEFI or BIOS system (this guide covers both).
- Basic familiarity with Linux commands.
Step 1: Download & Boot the Arch Linux ISO
1. Download the latest Arch Linux ISO from the official website.
2. Create a bootable USB using:
- Linux/macOS:
dd if=archlinux.iso of=/dev/sdX bs=4M status=progress
- Windows: Use Rufus or Balena Etcher.
3. Boot from the USB (enter BIOS/UEFI and select the USB drive).
Step 2: Verify Boot Mode & Connect to the Internet
Check Boot Mode (UEFI/BIOS)
Run:
ls /sys/firmware/efi/efivars
- If the directory exists → UEFI mode.
- If not → BIOS (Legacy) mode.
Connect to the Internet
- Ethernet: Should work automatically.
- Wi-Fi: Use
iwctl
:
iwctl
device list
station wlan0 scan
station wlan0 connect "SSID"
exit
- Verify connection:
ping archlinux.org
Step 3: Partitioning the Disk
Identify Disks
fdisk -l
(Assume /dev/sda
for this guide.)
Partition Scheme (UEFI + GPT)
Mount Point | Partition | Type | Size |
---|---|---|---|
/boot/efi | /dev/sda1 | EFI | 512MB |
/ | /dev/sda2 | Linux (ext4/Btrfs) | 20GB+ |
/home (optional) | /dev/sda3 | Linux | Remaining space |
[SWAP] (optional) | /dev/sda4 | Linux swap | ≥RAM size |
Partitioning with cfdisk
(Recommended)
cfdisk /dev/sda
- Create partitions (EFI, root, home, swap).
- Set types (
EFI System
,Linux filesystem
). - Write changes and exit.
Step 4: Format & Mount Partitions
Format Partitions
mkfs.fat -F32 /dev/sda1 # EFI
mkfs.ext4 /dev/sda2 # Root
mkfs.ext4 /dev/sda3 # Home (optional)
mkswap /dev/sda4 && swapon /dev/sda4 # Swap (optional)
Mount Partitions
mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
mkdir /mnt/home && mount /dev/sda3 /mnt/home # If using /home
Step 5: Install Base System
pacstrap /mnt base linux linux-firmware base-devel
(Add amd-ucode
for AMD CPUs or intel-ucode
for Intel.)
Step 6: Configure the System
Generate fstab
genfstab -U /mnt >> /mnt/etc/fstab
Chroot into the New System
arch-chroot /mnt
Set Time Zone & Locale
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc
Edit /etc/locale.gen
and uncomment en_US.UTF-8 UTF-8
, then:
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
Set Hostname & Network
echo "myhostname" > /etc/hostname
Edit /etc/hosts
:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
Set Root Password
passwd
Install & Configure Bootloader (GRUB)
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
(For BIOS, use grub-install --target=i386-pc /dev/sda
.)
Step 7: Create a User & Enable Services
Add a User
useradd -m -G wheel username
passwd username
Grant Sudo Access
EDITOR=nano visudo
Uncomment:%wheel ALL=(ALL) ALL
Enable NetworkManager
systemctl enable NetworkManager
Step 8: Reboot & Finalize
Exit Chroot & Reboot
exit
umount -R /mnt
reboot
(Remove the USB after reboot.)
Post-Installation Setup
- Install a Desktop Environment (e.g., KDE Plasma, GNOME, Xfce):
pacman -S xorg plasma kde-applications
systemctl enable sddm
- Install Additional Software:
pacman -S firefox vim git
Conclusion
You now have a fully functional Arch Linux system! From here, you can:
- Install graphical environments (GNOME, KDE, etc.).
- Configure AUR helpers (yay, paru).
- Optimize performance & security.
For more details, you can refer to the Arch Wiki or comment down for any assistance.