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
- 1. Download the Arch Linux Installation Image
- 2. Prepare Live Bootable USB
- 3. Boot Arch Linux from the Live USB
- 4. Verify Connectivity to the Internet
- 5. Partition the Disk
- 6. Create File System
- 7. Install Arch Linux
- 8. Configure the Installed Arch System
- 9. Install GRUB Bootloader on Arch Linux
- 10. Install a Desktop Environment on Arch Linux
- 11. Create a Regular User Account
- 12. Arch Linux Installation is Done
- Conclusion
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.
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.”
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.
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.
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.
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.org
Code 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 ms
Code 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 bytes
Code 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
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.
Type the partition size in MB (“512M“) and press the “Enter” key.
With the “/dev/sda1” partition still selected, select “Type” from the bottom menu and choose “EFI System” partition type.
Youโve finished configuring the EFI System partition.
5.2 Create Swap Partition
Now let’s create the Swap partition using the same procedure. Select “Free space” again and hit “New.”
Type the partition size in GB (“4G“) and press the “Enter” key.
With the “/dev/sda2” partition still selected, select “Type” from the bottom menu and choose “Linux swap” partition type.
Youโve finished configuring the Swap partition.
5.3 Create Root Partition
Finally, you must create the root (/) partition. Once again, select the remaining “Free space” and hit on “New.”
For size, leave the default size value. This means all the remaining free space. Next, press the “Enter” key.
With the “/dev/sda3” partition still selected, select “Type” from the bottom menu and choose “Linux filesystem” partition type.
Youโve finished configuring the root partition.
5.3 Write Changes to Disk
Next, you need to save the changes made. Choose “Write” from the bottom menu and hit “Enter.”
Type “yes” and press the “Enter” key.
We’re done here. Select “Quit” and press “Enter” to do so.
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/fstab
Code 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.
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-8
Code 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/hostname
Code 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-pc
Code 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) ALL
Code 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
reboot
Code language: PHP (php)
The GRUB boot manager will greet you. Wait a few seconds or press “Enter” to start booting the operating system.
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.
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!