Arch Linux is not difficult to install. This guide will show you how to install Arch Linux with the GNOME Desktop Environment easily.
Many Linux users want to give Arch Linux a try, but the general notion that Arch is difficult to install and learn stops many. When people say it’s “hard,” they mean that it takes effort. And they’re right – you do have to put a little more effort into installing your system, setting everything up, and reading about how to do what you want to do.
However, you end up with a system you understand very 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.
IMPORTANT! VirtualBox’s users must enable EFI in the virtual machine settings before starting the installation. Otherwise, an error will occur when attempting to install the GRUB bootloader.
This Arch Linux how-to installation guide shows the whole process in easy-to-follow steps.
So, without wasting any more time, 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 will have to create a live USB of Arch Linux from the ISO you just downloaded. There are many ways to prepare a live USB, one of them is by using the dd command.
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 keep in mind that you may not be able to boot from live USB with secure boot enabled in some cases. If that’s the case with you, access the BIOS and disable the secure boot first.
There are two possible options for Arch Linux installation – legacy and UEFI mode. The UEFI (Unified Extensible Firmware Interface) mode is more up-to-date, and most of the modern hardware supports only the UEFI installation. Therefore, this Arch Linux how-to installation guide will use the UEFI mode.
Once you have properly booted into the Arch ISO, you should see something similar to the below image.
Arch Linux install medium (x86_64, UEFI) option and hit the
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 internet connectivity, ping a website, as shown in the example below.
ping -c 3 archlinux.org
PING archlinux.org (126.96.36.199) 56(84) bytes of data. 64 bytes from archlinux.org (188.8.131.52): icmp_seq=1 ttl=52 time=57.4 ms 64 bytes from archlinux.org (184.108.40.206): icmp_seq=2 ttl=52 time=57.4 ms 64 bytes from archlinux.org (220.127.116.11): 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
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.
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 most likely find the most trouble if you are unfamiliar with partitioning tools such as
cfdisk. But don’t worry, it’s easy as you’ll see.
First, list your disks:
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 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
For this guide, a virtual machine has been created with a blank 20GB hard disk identified by
/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 boot loaders 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 size of the remaining free disk space, 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.
GPT label type and hit
Free Space and hit on
New from the bottom menu. You can navigate through the menu options using the
Tab or arrow keys.
Type the partition size in MB (
512M) and press
/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 the remaining
Free space again and hit on
Type the partition size in GB (
4G) and press
/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 need to create the root (
/) partition. Once again, select the remaining
Free space and hit on
For size, leave the default size value. This means all the remaining free space. Next, press
/dev/sda3 partition still selected, select
Type from the bottom menu and chose
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
yes and press the
We’re done here. Select
Quit and press
Enter to do so.
6. Create File System
Now that you have your disk partitions ready, it’s time to create the file system. But let’s first review the partition table summary by running:
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
/dev/sda disk should have three partitions (
/dev/sda3) similar to those shown above.
The creation of the partitions in the previous steps simply drew boundaries on the storage space offered by the hard drive and specified the type of space between each boundary line. Now, it’s time to format the partitions with the required file systems.
We have to create three file systems here, so let’s get started.
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:
7. Install Arch Linux
First, sync the Pacman repository so that you can download and install any software:
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 /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
fstab file for your new Arch Linux system by issuing the following command:
genfstab -U /mnt >> /mnt/etc/fstab
We need to switch to the physically installed root partition using the
arch-chroot command now that we have installed Arch Linux.
Next, let’s configure the timezone. To find your timezone, you can list (
ls -l) the contents of the
Find your preferred timezone (
Zone/SubZone is your selection, such as
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 by default. We must open this file using a text editor and uncomment the line which contains the desired locale.
en_US ISO-8859-1 (by removing the
# sign), and and other needed locales in
/etc/locale.gen. Then, press
Ctrl+O Enter to save and
Ctrl+X to exit the editor.
Now generate the locale config file using the below commands one by one:
Create and set the
echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8
Now we will move ahead and set the hostname. A hostname is the computer’s name. So let’s name it
arch-pc. Use the following command:
echo arch-pc > /etc/hostname
You also need to add this name to the
/etc/hosts file. Edit
/etc/hosts file with Nano editor to add the following lines to it (replace
arch-pc with the hostname you chose earlier).
127.0.0.1 localhost ::1 localhost 127.0.1.1 arch-pc
You should also set the password for the root account using the passwd command:
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
grub-mkconfig -o /boot/grub/grub.cfg
10. Install a Desktop Environment on Arch Linux
Currently, our Arch Linux system 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.
pacman -S nvidia nvidia-utils
AMD / ATI users:
pacman -S xf86-video-ati
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. For each prompt, select the appropriate provider and press
Enter to proceed. If you are unsure, just press
Enter to accept defaults.
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 automatically create the home directory for the user as well. In addition, we can give this account
sudo privileges. Write your name instead of
useradd -m -G wheel linuxiac
Be sure to set a password for the new user:
sudo privileges for a newly created user:
Scroll down the screen and find the line:
# %wheel ALL=(ALL) ALL
Uncomment it by removing the
12. Arch Linux Installation is Done
Congratulations! We are now done with our Arch Linux installation, so we will exit from the terminal, unmount our root partition, and reboot to our newly installed Arch Linux system.
exit umount -R /mnt reboot
From this point, you can install what you want and configure your Arch Linux as you want. If you don’t feel confident about how to do it, don’t worry. Our excellent guide on the subject, “How to Install, Remove, and Update Software on Arch Linux“, will teach you everything you need to know.
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. However, you can surely accomplish it with patience and then tell the world that you use Arch Linux.
So, is Arch Linux hard to install? I think not at all. It just looks lengthy for a new Linux user to install.
Arch Linux installation itself provides a great deal of learning. As you probably know, Arch Linux is a rolling-release distribution. This means that 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. This resource is so well-composed and maintained that even non-Arch users glean knowledge and solutions from it daily.
If you want to share your experience with the Arch installation process, please feel free to leave your comment below.
I have tried to make this tutorial as simple as possible. Thanks for using it!