How to Install Arch Linux [Step by Step Guide]
How to Install Arch Linux [Step by Step Guide]
com /install-arch-linux/
Abhishek Prakash
As of now, there are two ways using which you can install Arch Linux:
In case you didn’t know, Arch Linux introduced a guided installer in 2021 (a menu based system to help you easily
configure things for installation).
In this tutorial, we focus on configuring things ourselves, without the need of archinstaller. It is potentially more time-
consuming, and if you are new to Arch Linux, you might want to refer to our separate tutorial, where we use the guided
installer to install Arch Linux using VirtualBox.
The installation steps can differ at some points depending on whether you have a UEFI or legacy BIOS system. Most new
systems come with UEFI these days.
I have written it here with a focus on the UEFI system but I’ll also mention the steps that are different for the legacy BIOS
systems.
The method discussed here wipes out existing operating system(s) from your computer and installs Arch Linux on it.
So if you are going to follow this tutorial, make sure that you have backed up your files, or else you’ll lose all of them. You
have been warned.
But before you see how to install Arch Linux from a USB, please make sure that you have the following requirements:
Once you have made sure you have all the requirements, let’s install Arch Linux.
You can download the ISO from the official website. Both direct download and torrent links are available.
You will have to create a live USB of Arch Linux from the ISO you just downloaded.
You may use the Etcher GUI tool to create the live USB. It is available for both Windows and Linux.
Alternatively, if you are on Linux, you can use the dd command to create a live USB. Replace /path/to/archlinux.iso with
the path where you have downloaded the ISO file, and /dev/sdx with your USB drive in the example below. You can get
your drive information using lsblk command.
Do note that in some cases, you may not be able to boot from live USB with secure boot enabled. If that’s the
case with you, disable the secure boot first.
Once you have created a live USB for Arch Linux, shut down your PC. Plugin your USB and boot your system. While
booting keep pressing F2, F10 or F12 key (depending upon your system) to go into boot settings.
Here, select to boot from USB or removable disk. Once you do that and the system boots, you should see an option like
this:
Arch Linux Boot Screen
Select Boot Arch Linux (x86_64). After various checks, Arch Linux will boot to the login prompt with the root user.
The default keyboard layout in the live session is US. While most English language keyboards will work just fine, the
same cannot be true for French, German and other keyboards.
If you face difficulty, you can list out all the supported keyboard layout:
ls /usr/share/kbd/keymaps/**/*.map.gz
And then change the layout to the an appropriate one using loadkeys command. For example, if you want a German
keyboard, this is what you’ll use:
loadkeys de-latin1
The next steps include partitioning the disk, creating the filesystem and mounting it.
�
Again, read all the instructions properly and follow each step carefully. You miss one step or ignore something
and you’ll have difficulty installing Arch.
For partitioning the disks, we’ll use command line based partition manager fdisk.
Use this command to list all the disk and partitions on your system:
fdisk -l
Your hard disk should be labelled /dev/sda or /dev/nvme0n1. Please use the appropriate disk labeling for your
system. I am using /dev/sda because that’s more common.
First, select the disk you are going to format and partition:
fdisk /dev/sda
I suggest that you delete any existing partitions on the disk using command d. Once you have the entire disk space free,
it’s time to create new partitions with command n.
Some steps are different for UEFI and non-UEFI systems.You should verify if you have UEFI enabled system or not. Use
this command:
ls /sys/firmware/efi/efivars
If this directory exists, you have a UEFI enabled system. You should follow the steps for UEFI system. The steps that
differ are clearly mentioned.
If you have a UEFI system, you must create an EFI partition at the beginning of your disk. Otherwise, skip this step.
When you enter n, it will ask you to choose a disk number, enter 1. Stay with the default block size, when it asks for the
partition size, enter +512M.
Creating EFI System Partition
One important steps is to change the type of the EFI partition to EFI System (instead of Linux system).
Enter t to change type. Enter L to see all the partition types available and then enter its corresponding number to the EFI
system.
You need to create root partition for both UEFI and legacy systems.
The common partitioning practice was/is to create root, swap and home partitions separately. You may just create a
single root partition and create a swapfile and home under the root directory itself.
So, in this approach, we’ll have a single root partition, no swap, no home.
While you are in the fdisk command, press n to create a new partition. It will automatically give it partition number 2. This
time keep on pressing enter to allocate entire remaining disk space to the root partition.
New Partition
When you are done with the disk partitioning, enter w command to write the changes to the disk and exit out of fdisk
command.
Now that you have your disk partitions ready, it’s time to create filesystem on it. Follow the steps for your system
So, you have two disk partitions and the first one is EFI type. Create a FAT32 file system on it using the mkfs command:
mkfs.ext4 /dev/sda2
For non-UEFI system, you only have one single root partition. So just make it ext4:
mkfs.ext4 /dev/sda1
iwctl
Next, you can list all your wireless interfaces/devices connected using the command:
device list
Once you select the wireless interface, scan for available network using the command below:
While it scans for the network, you don’t get to see the network names yet. So, to see the connections available, you can
type in:
Among the listed networks, you can connect to your target Wi-Fi using the command:
If it is protected by a password, you will be asked for it, enter the credentials and you should be connected to it.
Now, we’re connected to the network, but to make sure, you can check if you could use the internet by using the ping
command:
ping google.com
If you get bytes in reply, you are connected. Use Ctrl+C to stop the ping reply.
This is a big problem with installing Arch Linux. If you just go on installing it, you might find that the downloads are way
too slow. In some cases, it’s so slow that the download fails.
It’s because the mirrorlist (located in /etc/pacman.d/mirrorlist) has a huge number of mirrors but not in a good order. The
top mirror is chosen automatically and it may not always be a good choice.
Thankfully, there is a fix for that. First sync the pacman repository so that you can download and install software:
pacman -Syy
Now, install reflector too that you can use to list the fresh and fast mirrors located in your country:
pacman -S reflector
Make a backup of mirror list (just in case):
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
Now, get the good mirror list with reflector and save it to mirrorlist. You can change the country from US to your own
country.
Since you have all the things ready, it’s time to finally install the Arch Linux. You’ll be installing it on the root directory so
mount it first.
Do you remember the name of the root partition? Use it to mount it:
Note that this is valid for UEFI systems, you will have to use /dev/sda1 in non-UEFI systems.
With root mounted, it’s time to use the wonderful pacstrap script to install all the necessary packages:
It will take some time to download and install these packages. If the downloads get interrupted, no need to panic. You can
run the above command once again and it resumed the download.
I have added Vim and Nano text editor to the list because you’ll need to edit some files post-installation. You can use
anything you are comfortable with.
For reference, head to our nano vs vim article to explore the differences between these editors.
Generate a fstab file to define how disk partitions, block devices, or remote file systems are mounted into the filesystem.
Now use arch-chroot and enter the mounted disk as root. Actually, now you are using the just installed Arch Linux system
on the disk. You’ll have to do some configuration changes to the installed system so that you could run it properly when
you boot from the disk.
arch-chroot /mnt
Setting Timezone
To set up timezone on Linux, you can use timedatectl command. First find your time zone:
timedatectl list-timezones
Exit from the list using Ctrl + C or just q. And then set it up like this (replace Europe/Paris with your desired time zone):
Setting up Locale
This is what sets the language, numbering, date, and currency formats for your system.
The file /etc/locale.gen contains all the local settings and system language in a commented format.
Open the file using Vim or Nano editor and uncomment (remove the # from the start of the line) the language you prefer.
nano /etc/locale.gen
Locale Gen
I have used en_GB.UTF-8 (English with Great Britain). Hit Ctrl + X and then Y to save the selection and continue.
Now generate the locale config in the /etc directory file using the below commands one by one:
locale-gen
echo LANG=en_GB.UTF-8 > /etc/locale.conf
export LANG=en_GB.UTF-8
Both locale and timezone settings can be changed later on as well when you are using your Arch Linux system.
Network configuration
Create a /etc/hostname file and add the hostname entry to this file. Hostname is basically the name of your computer on
the network.
In my case, I’ll set the hostname as myarch. You can choose whatever you want:
touch /etc/hosts
And edit this /etc/hosts file with Vim or Nano editor to add the following lines to it (replace myarch with hostname you
chose earlier):
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch
You should also set the password for the root account using the passwd command:
passwd
This is one of the crucial steps and it differs for UEFI and non-UEFI systems. Let me mention the steps for the UEFI
systems first.
Make sure that you are still using arch-chroot. Install required packages:
mkdir /boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
Install grub on Non-UEFI systems
pacman -S grub
And then install grub like this (don’t put the disk number sda1, just the disk name sda):
grub-install /dev/sda
Last step:
grub-mkconfig -o /boot/grub/grub.cfg
You should not boot into a system, which has only a root user account. This way, every change you make will happen
without any authentication required, and you might end up messing up your system.
Of course, you can still choose to do it, but it is not the recommended solution for a stable and secure experience.
So there should be an additional user, who gets root privileges using sudo. That reminds me, you should also install the
sudo package if you didn’t already:
pacman -S sudo
Now create a new user and give permissions. In my case, ‘team’ is the new username I chose. You can select your own.
useradd -m team
passwd team
Enter the password for this user and confirm. Now, you will be adding this user to a group of users that grants specific
permissions. This should be self-explanatory, while the wheel group is needed for a user act as the super user.
Finally, you need to edit the visudo file, specifically the line referring to wheel should be uncommented as shown in the
image below.
EDITOR=nano visudo
Edit visudo
The first step is to install the X environment. Type the below command to install the Xorg as display server along with the
network manager. You can refer to the official documentation for Wayland.
Now, you can install GNOME desktop environment on Arch Linux using:
pacman -S gnome
The last step includes enabling the display manager GDM for Arch. I also suggest enabling Network Manager
exit
umount /mnt
Or,
umount -l /mnt
shutdown now
Don’t forget to take out the live USB before powering on the system again. If everything goes well, you should see the
Grub screen and then the GNOME login screen.
If you want a KDE desktop, please follow this tutorial about installing KDE on Arch Linux.
You might have realized by now that installing Arch Linux is not as easy as installing Ubuntu. However, with a little
patience, you can surely accomplish it and then tell the world that you use Arch Linux.
Arch Linux installation itself provides a great deal of learning. I recommend a few essential things to do after installing
Arch Linux where you’ll find steps to install various other desktop environments (if you didn’t install it here) and learn
more about the OS.