Arch Linux Installation Guide
Categories:
5 minute read
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
- Insert your bootable USB and boot into it via your system’s UEFI/BIOS menu.
- 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:
Partition | Mount Point | Type | Size |
---|---|---|---|
/dev/sda1 | /boot/efi | EFI System | 512MB |
/dev/sda2 | / | Linux Filesystem | Remaining |
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 packageslinux
– Linux kernellinux-firmware
– firmware files for supported hardwarevim
– text editornetworkmanager
– 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
Step 15: Create a New User (Optional but Recommended)
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 environmentalsa-utils
orpipewire
for audiocups
andhplip
for printingfirefox
orchromium
for web browsingbase-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.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.