How to Install Arch Linux: Beginner’s Step-by-Step Guide

Arch is easy to install. This guide shows you how to install Arch Linux with GNOME Desktop, paving the way for a successful setup.

Arch is easy to install. This guide shows you how to install Arch Linux with GNOME Desktop, paving the way for a successful setup.

Many Linux users want to try Arch Linux, but the general notion that Arch is difficult to install and learn stops them. When people say, it is “hard,” they mean it takes effort. And they’re right – you have to put a little more effort into installing your system, setting everything up, and reading about how to do what you want.

However, as a reward for your efforts, you’ll end up with a system you understand well and set up just how you want it. Once installed, Arch Linux is as easy to run as any other distro, if not easier.

You can install Arch Linux directly to your computer by following this guide, but you can also install it on a virtual machine by using VirtualBox or other virtualization software.

Preinstallation Notes to Virtualbox and KVM Users

IMPORTANT! Before starting the installation, VirtualBox and KVM users must enable EFI in the virtual machine settings. Otherwise, an error will occur when attempting to install the GRUB bootloader.

Arch Linux VirtualBox Install: Enable EFI

However, if you have decided to install Arch on KVM using Virtual Machine Manager to enable UEFI support, the steps are as follows.

In the last step, do not rush to press the “Finish” button when creating the virtual machine. Ensure you have checked the “Customize configuration before install” option, then press “Finish.”

A new window will open. In it, select “UEFI” from the “Firmware” drop-down menu, then confirm with “Apply” and finally hit “Begin Installation.”

Arch Linux Virtual Machine Manager (KVM) Install: Enable EFI

This Arch Linux how-to installation guide shows the whole process in easy-to-follow steps. So, without further ado, let’s get started.

1. Download the Arch Linux Installation Image

The first thing that we need to do is to obtain an image of Arch Linux. To do so, visit the Arch Linux download page to download the ISO image file. Then, grab the latest CD image. Both direct download and torrent links are available.

Download Arch Linux Installation Image

2. Prepare Live Bootable USB

Once your Arch Linux ISO file finishes downloading, you must create a live USB from it. There are many ways to prepare a live USB; one is by using the dd command.

Alternatively, you can use applications such as Etcher or Ventoy, which are good options for creating a bootable USB drive.

3. Boot Arch Linux from the Live USB

Once you have created a live USB for Arch Linux, shut down your computer, plug the USB into it, and boot your system.

Please remember that you can sometimes not boot from a live USB with secure boot enabled. If that’s the case with you, access the BIOS and turn off the secure boot first.

Arch provides you with two installation options – Legacy and UEFI mode. The UEFI (Unified Extensible Firmware Interface) mode is more up-to-date, and most modern hardware only supports the UEFI installation. Therefore, this Arch Linux how-to installation guide will use the UEFI mode.

Once properly booted into the Arch’s ISO, you should see something similar to the image below.

Boot from the Arch Linux Installation ISO File

Choose the “Arch Linux install medium (x86_64, UEFI)” option and hit “Enter.”

After the installer decompresses and loads the Linux kernel, you will be automatically thrown to a terminal with root privileges.

Start Installing Arch Linux

4. Verify Connectivity to the Internet

First of all, check the internet connection. To check it, ping a website, as shown in the example below.

ping -c 3 archlinux.orgCode language: CSS (css)
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=52 time=57.4 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=52 time=57.4 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=52 time=58.4 ms

--- archlinux.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 57.394/57.739/58.376/0.450 msCode language: JavaScript (javascript)

If you use a wired connection, it is usually picked up automatically. However, if you receive an error message, please check your internet connection or router.

Related: How To Set Static IP Address And Modifying Routing Table On Linux

After completing connectivity checks, we can move ahead to our Arch Linux installation.

5. Partition the Disk

The next step in our Arch Linux installation guide is partitioning the hard drive. Here is where you will likely find the most trouble if you are unfamiliar with partitioning tools such as fdisk or cfdisk. But don’t worry, it is easy, as you’ll see.

First, list your disks:

fdisk -l
Disk /dev/sda: 20GiB, 21474836480 bytes, 41943040 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

<meta http-equiv="content-type" content="text/html; charset=utf-8">Disk /dev/loop0: 662.69 MiB, 694882304 bytes, 1357192 sectors
<meta http-equiv="content-type" content="text/html; charset=utf-8">Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesCode language: HTML, XML (xml)

For this guide, a virtual machine has been created with a blank 20 GB hard disk identified by “/dev/sda.” Change “/dev/sda” with your device name.

For a basic partition, we need to create the following partition layout:

  • /dev/sda1: EFI System partition with 512 MB size, FAT32 formatted. This provides space for storing bootloaders and other files required for booting.
  • /dev/sda2: Swap partition, 4GB size. Swap space is used to extend the virtual memory beyond the installed physical memory (RAM) or for suspend-to-disk support.
  • /dev/sda3: Linux partition, with the remaining free disk space size, EXT4 formatted. This is the root (/) partition on which our Arch Linux operating system, files, and other information will be stored.

5.1 Create EFI System Partition

Now let’s start creating a disk layout partition table by running the cfdisk command against the machine’s hard drive.

cfdisk /dev/sda
Arch Linux Install: Start Partitioning

Select the “GPT” label type and hit “Enter.”

Then select “Free Space” and hit “New” from the bottom menu. You can navigate the menu options using the “Tab” or arrow keys.

Arch Linux Install: Create Boot Partition

Type the partition size in MB (“512M“) and press the “Enter” key.

Set Boot Partition Size

With the “/dev/sda1” partition still selected, select “Type” from the bottom menu and choose “EFI System” partition type.

Set Boot Partition Type
Set Boot Partition Type

You’ve finished configuring the EFI System partition.

Boot Partition Successfully Created

5.2 Create Swap Partition

Now let’s create the Swap partition using the same procedure. Select “Free space” again and hit “New.”

Arch Linux Install: Create Swap Partition

Type the partition size in GB (“4G“) and press the “Enter” key.

Set Swap Partition Size

With the “/dev/sda2” partition still selected, select “Type” from the bottom menu and choose “Linux swap” partition type.

Set Swap Partition Type
Set Swap Partition Type

You’ve finished configuring the Swap partition.

Swap Partition Successfully Created

5.3 Create Root Partition

Finally, you must create the root (/) partition. Once again, select the remaining “Free space” and hit on “New.”

Arch Linux Install: Create Root Partition

For size, leave the default size value. This means all the remaining free space. Next, press the “Enter” key.

Set Root Partition Size

With the “/dev/sda3” partition still selected, select “Type” from the bottom menu and choose “Linux filesystem” partition type.

Root Partition Type
Set Root Partition Type

You’ve finished configuring the root partition.

Root Partition Successfully Created

5.3 Write Changes to Disk

Next, you need to save the changes made. Choose “Write” from the bottom menu and hit “Enter.”

Write Changes to Disk

Type “yes” and press the “Enter” key.

Confirm Writing Changes to Disk

We’re done here. Select “Quit” and press “Enter” to do so.

Exit cfdisk Partitioning Tool

6. Create File System

Now that your disk partitions are ready, it’s time to create the file system. But let’s first review the partition table summary by running the following:

fdisk -l
Disk /dev/sda: 20GiB, 21474836480 bytes, 41943040 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8F633EFF-376D-3C46-8540-4C1BB8EBD4B1

Device       Start      End  Sectors  Size  Type
/dev/sda1     2048  1050623  1048576  512M  EFI System
/dev/sda2  1050624  9439231  8388608    4G  Linux swap
/dev/sda3  9439232 41943006 32503775 15.5G  Linux filesystem

Disk /dev/loop0: 662.69 MiB, 694882304 bytes, 1357192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

The “/dev/sda” disk should have three partitions (“/dev/sda1,” “dev/sda2,” and “/dev/sda3“) similar to those shown above.

The creation of the partitions in the previous steps drew boundaries on the storage space offered by the hard drive and specified the type of space between each boundary line.

It is time to format the partitions with the required file systems. We must create three file systems here, so let’s begin.

For the EFI partition type, create a FAT32 file system.

mkfs.fat -F32 /dev/sda1

Prepare the swap partition:

mkswap /dev/sda2
swapon /dev/sda2

For the root partition, create an EXT4 file system:

mkfs.ext4 /dev/sda3

7. Install Arch Linux

First, sync the Pacman repository so that you can download and install any software:

pacman -Syy

We must mount the root partition (“/dev/sda3“) to the “/mnt” directory before we can perform any installation.

mount /dev/sda3 /mnt

With root mounted, it’s time to install all the necessary packages. Use the pacstrap command to install Arch Linux required packages.

pacstrap -K /mnt base linux linux-firmware sudo nano

It will take some time to download and install these packages. But now we can start configuring our system.

8. Configure the Installed Arch System

After the installation completes, generate a “/etc/fstab” file for your new Arch Linux system by issuing the following command:

genfstab -U /mnt >> /mnt/etc/fstabCode language: JavaScript (javascript)

Now that we have installed Arch Linux, we need to switch to the physically installed root partition using the arch-chroot command.

arch-chroot /mnt

Next, let’s configure the timezone. To find your timezone, you can list (ls -l) the contents of the “/usr/share/zoneinfo/” directory.

Find your preferred timezone (“/usr/share/zoneinfo/Zone/SubZone“) where “Zone/SubZone” is your selection, such as “America/New_York,” “Europe/Paris,” “Asia/Bangkok,” and so on. You got the idea.

Create a symbolic link to set the timezone (replace “America/New_York” with your timezone).

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime

Now we need to set up the locale. The file “/etc/locale.gen” contains locale settings and system languages and is commented on by default. We must open this file using a text editor and uncomment the line which contains the desired locale.

nano /etc/locale.gen

Uncomnent “en_US.UTF-8 UTF-8” and “en_US ISO-8859-1” (by removing the “#” sign), and any other needed locales in “/etc/locale.gen.” Then, press “Ctrl+O” followed by “Enter” to save, and finally, “Ctrl+X” to exit the editor.

Arch Linux Install: Setting Up Locales

Now generate the locale config file using the below commands one by one:

locale-gen

Run the command below to synchronize the hardware clock, automatically creating a “/etc/adjtime” file containing descriptive information about the hardware mode clock setting and clock drift factor.

hwclock --systohc

Create and set the “LANG” variable.

echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8Code language: JavaScript (javascript)

Now we will move ahead and set the hostname. A hostname is the computer’s name. So let’s name it, for example, “arch-pc.” Use the following command:

echo arch-pc > /etc/hostnameCode language: JavaScript (javascript)

Add this name to the “/etc/hosts” file also. Edit the file with Nano editor and add the following lines (replace “arch-pc” with the hostname you chose earlier).

nano /etc/hosts
127.0.0.1      localhost
::1            localhost
127.0.1.1      arch-pcCode language: CSS (css)

Remember to set the password for the root account using the passwd command:

passwd

Type your password twice. Be attentive, as you will see nothing while typing.

9. Install GRUB Bootloader on Arch Linux

Now we install the boot loader for Arch to boot up after restart. The default boot loader for Linux distributions and Arch Linux also is represented by the GRUB package.

Install the GRUB bootloader and EFI boot manager packages:

pacman -S grub efibootmgr os-prober mtools

Then create the mount point for “/dev/sda1” and mount it.

mkdir /boot/efi
mount /dev/sda1 /boot/efi

Now let’s install our boot loader.

grub-install --target=x86_64-efi --bootloader-id=grub_uefi
Installing for x86_64-efi platform.
Installation finished. No error reported.

Finally, generate the “/boot/grub/grub.cfg” file.

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

10. Install a Desktop Environment on Arch Linux

Our Arch Linux currently contains only the essential software packages needed to manage the system from the command line, with no GUI (Graphical User Interface).

Arch Linux supports a wide range of desktop environments. I will install GNOME as a desktop environment example.

The first step is to install the X environment. Type the below command to install the Xorg as a display server.

pacman -S xorg-server xorg-apps

Then install an appropriate video driver.

Nvidia users:

pacman -S nvidia nvidia-utils

AMD / ATI users:

pacman -S xf86-video-ati

Intel users:

pacman -S xf86-video-intel

Now, you can install the GNOME desktop environment on Arch Linux using:

pacman -S gnome gnome-extra networkmanager

GNOME offers a choice of providers for the download. Select the appropriate provider for each prompt and press “Enter” to proceed. If you are unsure, press “Enter” to accept defaults.

Finally, enable the GDM display manager and Network Manager.

systemctl enable gdm
systemctl enable NetworkManager

11. Create a Regular User Account

The creation method for the user account will also automatically create the home directory for the user. In addition, we can give this account sudo privileges. Write your name instead of “linuxiac.”

useradd -m -G wheel linuxiac

Be sure to set a password for the new user:

passwd linuxiac

Next, enable sudo privileges for a newly created user:

EDITOR=nano visudo

Scroll down the screen and find the line:

# %wheel ALL=(ALL) ALLCode language: PHP (php)

Uncomment it by removing the # sign.

12. Arch Linux Installation is Done

Congratulations! We are done with our Arch Linux installation, so we will exit from the terminal, unmount the root partition mounted under “/mnt,” and reboot to our newly installed Arch Linux system.

exit
umount -R /mnt
rebootCode language: PHP (php)

The GRUB boot manager will greet you. Wait a few seconds or press “Enter” to start booting the operating system.

GRUB boot manager.

Then, you will be welcomed by GNOME’s GDM login manager. Click on the user you created earlier and enter its password to log in and enjoy your newly installed Arch Linux system.

Arch Linux Successfully Installed
Arch Linux running GNOME 44 desktop environment.

From this point, you can install what you want and configure your Arch Linux according to your needs and preferences. However, if you don’t feel confident about how to do it, don’t worry.

Our comprehensive “The Beginner’s Guide to Using Pacman on Arch Linux” guide will teach you everything you need to know.

Do not feel confident on the command line and prefer graphical applications? No problem – we’ve got you covered. Check out our “3 Best GUI Pacman Frontends for Arch Linux-Based Distributions” article.

Conclusion

So, this step-by-step Arch Linux how-to installation guide is over. I know it was long, but I have tried to cover all steps in brief and other additional things from scratch. You can accomplish it patiently and tell the world, “BTW, I use Arch.”

So, is Arch Linux hard to install? Not at all. It just looks lengthy for a new Linux user to install.

At the same time, it provides a great deal of learning. As you probably know, Arch Linux is a rolling-release distribution. This means you shouldn’t have to install it more than once for any system.

In addition, as an Arch user, the Arch Wiki will be a precious resource to you. It is so well-composed and maintained that even non-Arch users glean knowledge and solutions daily.

If you want to share your experience with the Arch installation process, please leave your comment below.

I have tried to make this tutorial as simple as possible. Thanks for using it!

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Think You're an Ubuntu Expert? Let's Find Out!

Put your knowledge to the test in our lightning-fast Ubuntu quiz!
Ten questions to challenge yourself to see if you're a Linux legend or just a penguin in the making.

1 / 10

Ubuntu is an ancient African word that means:

2 / 10

Who is the Ubuntu's founder?

3 / 10

What year was the first official Ubuntu release?

4 / 10

What does the Ubuntu logo symbolize?

5 / 10

What package format does Ubuntu use for installing software?

6 / 10

When are Ubuntu's LTS versions released?

7 / 10

What is Unity?

8 / 10

What are Ubuntu versions named after?

9 / 10

What's Ubuntu Core?

10 / 10

Which Ubuntu version is Snap introduced?

The average score is 68%