Arch Linux Installation Guide

Arch Linux installation guide

Arch Linux is a powerful and flexible Linux distribution known for its minimalist philosophy and “do-it-yourself” approach. It is often chosen by advanced users who want complete control over their system and appreciate its simplicity, transparency, and the rolling release model. While Arch doesn’t come with a graphical installer like Ubuntu or Fedora, setting it up from scratch offers valuable insights into how Linux systems work.

This guide will walk you through the basic installation of Arch Linux on a UEFI system with a 64-bit architecture. By the end of this tutorial, you’ll have a working Arch system with internet connectivity and a functional user account. Graphical environments, desktop environments, and other software can be installed later based on your preferences.


Prerequisites

Before proceeding with the installation, ensure that you have the following:

  • A 64-bit system with UEFI support
  • Arch Linux ISO image – Download it from the official site: https://archlinux.org
  • A bootable USB drive – You can create one using dd, balenaEtcher, Rufus, or similar tools
  • Internet connection
  • A basic understanding of Linux command-line usage

Step 1: Boot into the Arch Linux Live Environment

  1. Insert your bootable USB and boot into it via your system’s UEFI/BIOS menu.
  2. From the boot menu, select Arch Linux install medium (x86_64, UEFI) and press Enter.

Once booted, you will be dropped into a live shell as the root user.


Step 2: Verify UEFI Mode

To ensure you are booted in UEFI mode:

ls /sys/firmware/efi/efivars

If the directory exists and isn’t empty, you’re in UEFI mode. If not, reboot and check your BIOS/UEFI settings.


Step 3: Connect to the Internet

Wired connections are usually configured automatically. To check your connectivity:

ping archlinux.org

If you’re on Wi-Fi, use the iwctl utility:

iwctl

In the interactive prompt:

device list               # Find your wireless device
station wlan0 scan        # Replace wlan0 with your device
station wlan0 get-networks
station wlan0 connect YourSSID
exit

Test connectivity again with ping.


Step 4: Update System Clock

Synchronize the system clock with:

timedatectl set-ntp true

Confirm synchronization:

timedatectl status

Step 5: Partition the Disk

Use fdisk or cfdisk to partition your disk. Here’s a typical UEFI partition layout:

PartitionMount PointTypeSize
/dev/sda1/boot/efiEFI System512MB
/dev/sda2/Linux FilesystemRemaining

Run:

cfdisk /dev/sda
  • Select gpt when prompted.
  • Create a 512MB partition with type “EFI System”.
  • Create a second partition with type “Linux filesystem” using the remaining space.

Step 6: Format the Partitions

mkfs.fat -F32 /dev/sda1       # Format EFI partition
mkfs.ext4 /dev/sda2           # Format root partition

Step 7: Mount the Partitions

mount /dev/sda2 /mnt
mkdir /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi

Step 8: Install the Base System

Install essential packages:

pacstrap -K /mnt base linux linux-firmware vim networkmanager

This installs:

  • base – essential system packages
  • linux – Linux kernel
  • linux-firmware – firmware files for supported hardware
  • vim – text editor
  • networkmanager – network manager

Step 9: Configure the System

Generate fstab

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

Check the file:

cat /mnt/etc/fstab

Chroot into the System

arch-chroot /mnt

Now you’re operating inside your newly installed system.


Step 10: Set the Timezone and Locale

Timezone

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc

Replace Region/City with your actual timezone, like Europe/Berlin.

Locale

Edit /etc/locale.gen and uncomment your desired locale, such as:

en_US.UTF-8 UTF-8

Then generate the locale:

locale-gen

Create /etc/locale.conf:

echo "LANG=en_US.UTF-8" > /etc/locale.conf

Step 11: Set the Hostname

echo "myhostname" > /etc/hostname

Add to /etc/hosts:

echo "127.0.0.1   localhost" >> /etc/hosts
echo "::1         localhost" >> /etc/hosts
echo "127.0.1.1   myhostname.localdomain myhostname" >> /etc/hosts

Replace myhostname with the name of your choice.


Step 12: Set Root Password

passwd

Step 13: Install Bootloader (GRUB)

Install necessary packages:

pacman -S grub efibootmgr

Install GRUB to the EFI system:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

Generate GRUB config:

grub-mkconfig -o /boot/grub/grub.cfg

Step 14: Enable NetworkManager

systemctl enable NetworkManager

useradd -m -G wheel -s /bin/bash alice
passwd alice

Edit /etc/sudoers using visudo and uncomment:

%wheel ALL=(ALL:ALL) ALL

This grants sudo privileges to users in the wheel group.


Step 16: Exit and Reboot

Exit the chroot:

exit

Unmount partitions:

umount -R /mnt

Reboot:

reboot

Remove the installation medium to boot into your new Arch Linux system.


What’s Next?

Congratulations! You’ve successfully installed a basic Arch Linux system. From here, you can:

  • Install a graphical environment (e.g., GNOME, KDE, XFCE)
  • Set up audio and printing support
  • Install development tools, office suites, web browsers, etc.
  • Harden your system for security

Some helpful packages and tools to consider:

  • xorg, xorg-xinit, and a window manager or desktop environment
  • alsa-utils or pipewire for audio
  • cups and hplip for printing
  • firefox or chromium for web browsing
  • base-devel for compiling packages from the AUR

Conclusion

Setting up Arch Linux from scratch is a rewarding experience that not only results in a fast and clean system but also deepens your understanding of Linux internals. While it can be intimidating at first, this approach offers unmatched flexibility and performance.

Arch follows the KISS principle—Keep It Simple, Stupid—and encourages users to build exactly what they need. With the excellent Arch Wiki as your companion, you’ll have everything you need to maintain and grow your custom system.

Whether you’re a hobbyist, a power user, or a budding system administrator, Arch Linux provides a rock-solid foundation for learning and mastery.