Beginner
Power User

Pre-Flight Checklist

Before you begin, make sure you have everything ready:

What You'll Need

  • A computer — 64-bit processor, 512MB+ RAM, 8GB+ storage (20GB+ recommended)
  • USB drive — At least 4GB capacity (will be erased!)
  • Internet connection — Ethernet cable is easiest; Wi-Fi works too
  • Another device — Phone or laptop to read this guide
  • 1-2 hours — Don't rush it, take your time
BACKUP YOUR DATA!
This process will erase everything on the target drive. Back up any important files to an external drive or cloud storage first!

What You'll Learn

  • How Linux filesystems work
  • Disk partitioning
  • Command line basics
  • System configuration

The Installation Process

01

Download the Arch Linux ISO

Get the installer image (~800MB)

The ISO is a disk image file that contains the Arch Linux installer. It's about 800MB.

Where to download:

  • Go to archlinux.org/download
  • Scroll down to find a mirror in your country
  • Click the mirror link and download the file ending in .iso
Tip: The filename looks like archlinux-2024.01.01-x86_64.iso. The date changes monthly.
$ curl -LO https://mirror.rackspace.com/archlinux/iso/latest/archlinux-x86_64.iso
02

Create a Bootable USB Drive

Burn the ISO to USB using Rufus or dd

We need to "burn" the ISO to your USB drive so your computer can boot from it.

On Windows (using Rufus):

  1. Download Rufus (free, no install needed)
  2. Insert your USB drive
  3. Open Rufus, select your USB under "Device"
  4. Click "SELECT" and choose the Arch ISO file
  5. Click "START" and confirm the warning

On Linux (using dd):

# Find your USB (e.g., sdb)
$ lsblk
# Write to USB (Careful!)
$ sudo dd bs=4M if=archlinux-*.iso of=/dev/sdX status=progress oflag=sync
Warning: This will destroy all data on the USB! Ensure /dev/sdX is the correct device.

Write ISO to USB (Replace /dev/sdX):

$ sudo dd bs=4M if=path/to/archlinux.iso of=/dev/sdX status=progress oflag=sync
03

Boot from the USB Drive

Boot key: F12 (Dell/Lenovo), F8 (Asus), F9 (HP)

Insert USB, restart PC, and press the boot key repeatedly.

Common boot keys:

  • Dell/Lenovo/Acer: F12
  • HP: F9 or Esc
  • ASUS: F8 or Esc
  • MSI: F11
Tip: Disable "Secure Boot" in BIOS if the USB doesn't show up.

Boot from USB media. Ensure Secure Boot is disabled if keys aren't enrolled.

04

Set Keyboard Layout

Optional: Load non-US keymap

Default is US. To change it:

# List layouts
root@archiso ~ # localectl list-keymaps
# Set layout (e.g., uk)
root@archiso ~ # loadkeys uk
root@archiso ~ # loadkeys [layout]
05

Verify Boot Mode

Ensure you are booted in UEFI mode

root@archiso ~ # cat /sys/firmware/efi/fw_platform_size
  • 64 or 32: UEFI mode (Good)
  • No such file: Legacy BIOS (Not covered)
root@archiso ~ # cat /sys/firmware/efi/fw_platform_size
06

Connect to the Internet

Ethernet (plug & play) or Wi-Fi (iwctl)

Ethernet:

Just plug in the cable. Verify with:

# ping -c 3 archlinux.org

Wi-Fi (iwctl):

root@archiso ~ # iwctl
[iwd]# device list
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect "SSID"
[iwd]# exit
# iwctl --passphrase="pass" station wlan0 connect "SSID"
# ping -c 3 archlinux.org
07

Sync System Clock

Ensure accurate time with NTP

Important for HTTPS connections and package verification.

root@archiso ~ # timedatectl set-ntp true

Verify status:

root@archiso ~ # timedatectl status
root@archiso ~ # timedatectl set-ntp true
08

Identify Target Disk

Find your drive (sda, nvme0n1) using lsblk

Find the name of the drive you want to install Arch on.

root@archiso ~ # lsblk

Common names:

  • sda / sdb: SATA SSDs or HDDs
  • nvme0n1: NVMe M.2 SSDs (faster, newer)
  • mmcblk0: eMMC storage (some laptops)
root@archiso ~ # lsblk
09

Partition the Disk

Create ESP, Swap, and Root partitions via cfdisk

We'll use cfdisk for a visual interface. Use arrow keys to navigate.

# Replace /dev/sda with YOUR disk
root@archiso ~ # cfdisk /dev/sda

If asked, select gpt label type.

Create these partitions:

Size Type Purpose
512M EFI System Boot files
4G+ Linux Swap Virtual RAM
Rest Linux Filesystem Root / System

Select [ Write ], type yes, then [ Quit ].

root@archiso ~ # cfdisk /dev/sda

Layout: 512M (ESP), 4G (Swap), Rest (Root - Linux Filesystem)

10

Format Partitions

Format EFI (FAT32), Swap, and Root (EXT4)

Now we add file systems to the empty partitions we just created.

1. Format EFI Partition (FAT32)

root@archiso ~ # mkfs.fat -F32 /dev/sda1

2. Setup Swap

root@archiso ~ # mkswap /dev/sda2
root@archiso ~ # swapon /dev/sda2

3. Format Root Partition (EXT4)

root@archiso ~ # mkfs.ext4 /dev/sda3
Note: Update /dev/sdaX numbers if yours are different!
# EFI
$ mkfs.fat -F32 /dev/sda1
# Swap
$ mkswap /dev/sda2 && swapon /dev/sda2
# Root
$ mkfs.ext4 /dev/sda3
11

Mount Filesystems

Mount Root to /mnt and EFI to /mnt/boot

Now we mount these partitions to make them accessible.

1. Mount Root Partition

root@archiso ~ # mount /dev/sda3 /mnt

2. Create Boot Directory

root@archiso ~ # mkdir /mnt/boot

3. Mount EFI Partition

root@archiso ~ # mount /dev/sda1 /mnt/boot
$ mount /dev/sda3 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot
12

Install the Base System

Install base, kernel, firmware, and essential tools

This is where we actually install Arch Linux! The pacstrap command downloads and installs packages.

root@archiso ~ # pacstrap -K /mnt base linux linux-firmware

What these packages are:

  • base — Essential Arch Linux packages
  • linux — The Linux kernel
  • linux-firmware — Drivers for hardware

Add essential extras:

root@archiso ~ # pacstrap -K /mnt base-devel nano vim networkmanager grub efibootmgr

What these are:

  • base-devel — Tools for building packages (needed for AUR)
  • nano — Easy text editor
  • vim — Advanced text editor
  • networkmanager — Manage network connections after reboot
  • grub — Bootloader
  • efibootmgr — EFI boot manager
This takes 5-15 minutes depending on your internet speed. Go grab a coffee!
root@archiso ~ # pacstrap -K /mnt base linux linux-firmware base-devel nano vim networkmanager grub efibootmgr

Installs Base, Kernel, Firmware, Dev Tools, Editors, NetworkManager, and GRUB.

13

Generate the Filesystem Table

Generate fstab so partitions mount at boot

The fstab file tells Linux what partitions to mount at boot.

root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab

Verify it looks correct:

root@archiso ~ # cat /mnt/etc/fstab

You should see entries for your root and EFI partitions.

root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab
root@archiso ~ # cat /mnt/etc/fstab
14

Enter the New System (Chroot)

Switch to the installed Arch system

Now we "enter" the newly installed system to configure it from the inside.

root@archiso ~ # arch-chroot /mnt

Notice your prompt changes — you're now inside your new Arch system!

From now on, all commands are configuring your new system, not the live USB environment.
root@archiso ~ # arch-chroot /mnt
15

Set the Time Zone

Configure localtime and hardware clock

Tell Linux where you are in the world for correct time display.

Find your timezone:

[root@archiso /]# ls /usr/share/zoneinfo/

Set it (example for New York):

[root@archiso /]# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

Common examples:

  • London: /usr/share/zoneinfo/Europe/London
  • Los Angeles: /usr/share/zoneinfo/America/Los_Angeles
  • Tokyo: /usr/share/zoneinfo/Asia/Tokyo
  • India: /usr/share/zoneinfo/Asia/Kolkata

Set the hardware clock:

[root@archiso /]# hwclock --systohc
[root@archiso /]# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
[root@archiso /]# hwclock --systohc
16

Set the Locale (Language)

Configure language and character encoding

Configure your system's language and character encoding.

Edit the locale file:

[root@archiso /]# nano /etc/locale.gen

Find and uncomment (remove the #) your locale. For US English:

#en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8    ← Uncomment this line
#es_ES.UTF-8 UTF-8
                            

Save and exit: Ctrl+O → Enter → Ctrl+X

Generate the locale:

[root@archiso /]# locale-gen

Set the system-wide locale:

[root@archiso /]# echo "LANG=en_US.UTF-8" > /etc/locale.conf

If you changed the keyboard layout earlier, make it permanent:

[root@archiso /]# echo "KEYMAP=uk" > /etc/vconsole.conf
[root@archiso /]# nano /etc/locale.gen
[root@archiso /]# locale-gen
[root@archiso /]# echo "LANG=en_US.UTF-8" > /etc/locale.conf
17

Set the Hostname

Name your computer and configure hosts file

The hostname is your computer's name on the network. Pick something fun!

[root@archiso /]# echo "myarchpc" > /etc/hostname

Now configure the hosts file:

[root@archiso /]# nano /etc/hosts

Add these lines:

127.0.0.1    localhost
::1          localhost
127.0.1.1    myarchpc.localdomain myarchpc
                            

Save and exit: Ctrl+O → Enter → Ctrl+X

[root@archiso /]# echo "myarchpc" > /etc/hostname
[root@archiso /]# nano /etc/hosts
18

Set the Root Password

Secure the administrator account

The root user is the administrator account. Set a strong password!

[root@archiso /]# passwd

Type your password (it won't show on screen), then type it again to confirm.

Don't forget this password! You won't be able to administer your system without it.
[root@archiso /]# passwd
19

Create Your User Account

Add a user with sudo privileges

You shouldn't use root for daily tasks. Create a regular user account.

Create user (replace yourusername with your desired username):

[root@archiso /]# useradd -m -G wheel -s /bin/bash yourusername

What the flags mean:

  • -m — Create a home directory
  • -G wheel — Add to the wheel group (for sudo)
  • -s /bin/bash — Use bash as the default shell

Set your user password:

[root@archiso /]# passwd yourusername

Enable sudo for the wheel group:

[root@archiso /]# EDITOR=nano visudo

Find this line and uncomment it (remove the #):

# %wheel ALL=(ALL:ALL) ALL
                            

Change it to:

%wheel ALL=(ALL:ALL) ALL
                            

Save and exit: Ctrl+O → Enter → Ctrl+X

[root@archiso /]# useradd -m -G wheel -s /bin/bash yourusername
[root@archiso /]# passwd yourusername
[root@archiso /]# EDITOR=nano visudo

Uncomment %wheel ALL=(ALL:ALL) ALL

20

Install the Bootloader (GRUB)

Setup GRUB for UEFI booting

The bootloader is what starts Linux when you turn on your computer.

Install GRUB to the EFI partition:

[root@archiso /]# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Generate the GRUB configuration:

[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
If you have Windows: GRUB should auto-detect it. After installing, run grub-mkconfig again to add Windows to the boot menu.
[root@archiso /]# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
21

Enable NetworkManager

Ensure internet access on reboot

Enable networking so you can connect to the internet after reboot.

[root@archiso /]# systemctl enable NetworkManager
[root@archiso /]# systemctl enable NetworkManager
22

Reboot into Your New System!

Exit, unmount, and enjoy Arch

You did it! Time to boot into your fresh Arch Linux installation.

Exit chroot:

[root@archiso /]# exit

Unmount all partitions:

root@archiso ~ # umount -R /mnt

Reboot:

root@archiso ~ # reboot

Remove your USB drive when the screen goes black!

Congratulations! You've installed Arch Linux! Log in with your username and password.
[root@archiso /]# exit
root@archiso ~ # umount -R /mnt
root@archiso ~ # reboot

Post-Installation: What's Next?

You now have a working Arch Linux system, but it's command-line only. Here's what to do next:

Install a Desktop Environment

To get a graphical interface:

# Connect to internet first
$ nmtui
# Install GNOME (beginner-friendly)
$ sudo pacman -S gnome
$ sudo systemctl enable gdm
$ sudo reboot

Other desktop options:

  • KDE Plasma — Most customizable
  • XFCE — Lightweight, fast
  • i3 — Tiling window manager (advanced)

Essential Software

# Web browser
$ sudo pacman -S firefox
# File manager
$ sudo pacman -S nautilus
# System info
$ sudo pacman -S neofetch

Check out the Customization page for more tips!

Ready for the next level?

Now that you've installed Arch Linux, it's time to make it truly yours.