Quick Links
Download the Arch Linux ISO
Preliminary Steps
Install the Arch Linux System
Install a Desktop Environment in Arch
Arch Linux is well-known for its complex command-based installation. But once you get familiar with the ins and outs of the process, you can install Arch on any computer without fear of the terminal. We'll help you get there.
The Arch Linux ISO includes a script called archinstall meant to help you through the process. As of this writing, the script is still experimental, however, and prone to errors in our testing. This guide will instead cover the standard installation method.
Download the Arch Linux ISO
The first step is to get the Arch Linux installation image from a suitable mirror. To do that, visit the Arch Linux Downloadpage, and depending on how you wish to download the ISO, select the appropriate option. The available options include direct download, torrent, virtual machine image, "Netboot" install for wired connections, and more.
To keep it simple, we'll be doing a direct download. Scroll down to the list of available mirrors and choose one. Selecting a server closer to your geographical location will ensure that you get a fast and stable download speed. Verify the checksums of the ISO to confirm the downloaded file is genuine and secure.
Related: How to Create Bootable USB Drives and SD Cards For Every Operating System
The next steps includecreating a bootable USB drive, restarting your computer, and booting from the newly-created installation media instead of the hard disk. The Arch Linux boot interface will load and you'll be asked to choose from the various options displayed.
Select the default highlighted option by hitting "Enter." After the system has successfully loaded files necessary for the installation, you'll see the "root@archiso" prompt.
Preliminary Steps
Moving on, you need to have an active internet connection for the installation to complete. The Arch installer states that Ethernet and DHCP connections should work automatically. However, users on a wireless network will have to set up a connection manually.
Just to be sure, check if you are connected to a network by typing ping google.com
. If the output looks something like this, then you can skip ahead to the next section.
However, if the "Temporary failure in name resolution" error pops up, you need to establish an internet connection using the iwctl command.
First, launch the utility interactively by typing
iwctl
in the terminal. Then, check the name of your wireless interface by issuing the
device list
command. Generally, the name of the wireless interface will start with a "w", such as wlan0 or wlp2s0.
Next, run the following commands to scan for yourSSIDand connect to it. Replace
[device]
and
[SSID]
in the commands with your wireless interface and Wi-Fi name respectively.
iwctl station [device] get-networksiwctl station [device] connect [SSID]
The system will then ask you for the Wi-Fi password if you have one set up. Type it in and press "Enter" to continue. Run ping google.com
again to verify the connection.
Enable network time synchronization using timedatectl by running the following command:
timedatectl set-ntp true
Install the Arch Linux System
With your PC connected to the internet, you're ready to begin. TheArch installation process at its core is similar to installing any other Linux distro. So what's the catch?
Related: Command Lines: Why Do People Still Bother With Them?
While other distros provide a graphical user interface to configure and set up the OS, Arch Linuxcomes with only a command-line interface. Any instructions, commands, or configurations need to be done through the shell.
Creating the Necessary Partitions
To install Arch, you'll need to create three partitions, namely EFI, root, and swap. List the available storage devices on your system using fdisk -l
. Most of the time, the HDD would be listed as /dev/sda
and SSDs will be listed as /dev/nvme0n1
.
Run fdisk by typing fdisk /dev/sda
or fdisk /dev/nvme0n1
, depending on whether you're installing the OS on an HDD or SSD. Then, type g
and hit "Enter" to create a new GPT partition table.
Related: How to Use Fdisk to Manage Partitions on Linux
Type n
to create a new EFI partition and choose the partition type primary
. Hit "Enter" twice to proceed with the default partition number and first sector value.
For the partition size, you can either enter the sector number manually or specify the size you want the partition to have. Since you don't want to waste disk space on EFI partitions, any number between 500M and 1G would work. Type +550M
and press "Enter" to continue.
You are free to replace 550M
in the aforementioned command with the size you want for the partition.
Similarly, create a swap partition with +2G
as the last sector value. Finally, create a root partition and allocate all the remaining sectors to it by simply continuing with the default configurations.
Related: How Big Should Your Page File or Swap Partition Be?
By default, all the partitions will have the "Linux Filesystem" type. To change this, type t
and hit "Enter" to proceed. Select the EFI partition by entering 1
. Then, type ef
to change the filesystem to EFI System type.
Similarly, select the swap partition (partition number 2) and type 82
to convert the partition type to Linux swap. The root partition should be of Linux filesystem type, so we don't need to change it.
Type w
and hit "Enter" to write the changes to the disk.
Related: How to Choose a Partition Scheme for Your Linux PC
Formatting the Partitions
Now you need to format the partitions using themkfs command. Format the /dev/sda1
(EFI) partition to FAT32 by typing:
mkfs.fat -F32 /dev/sda1
Again, run the following command to format the /dev/sda3
(root) partition to ext4:
mkfs.ext4 /dev/sda3
Issue the following commands one by one to format and enable the swap partition:
mkswap /dev/sda2swapon /dev/sda2
For those who aredual-booting Linux with Windows, make sure you have the correct partitions set up. Pay extra attention when you're formatting partitions or creating new ones, as a mistake here can render your Windows system useless.
Installing and Configuring the System
To be able to install Arch on your disk, you need to mount the created partitions to appropriate directories. Mount the root partition ( /dev/sda3
) to the /mnt
directory.
mount /dev/sda3 /mnt
The next step is installing the base Linux packages to the mounted root partition.
pacstrap /mnt base linux linux-firmware
This will take some time depending on your network connection. Once done, generate a file system table using the genfstab
command.
genfstab -U /mnt >> /mnt/etc/fstab
The Arch Linux system is up and running on the /mnt
directory. You can change root to access the system by typing:
arch-chroot /mnt
The change in the bash prompt denotes that you've now logged in to the newly installed Arch Linux system. Before you can proceed further, you'll have to configure some settings and install the necessary packages for the system to work properly.
Set the local timezone by creating a symlink between the "/usr/share/zoneinfo" and "/etc/localtime" directories.
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
Replace the "Region" and "City" in the above command with the appropriate timezone. You can refer to this timezone database to check the region and city you need to input.
Then, sync the hardware clock with the system time by running:
hwclock --systohc
Before moving on, install Vim (or another text editor of your choice) and the "networkmanager" package.
pacman -S vim networkmanager
Next, edit the "/etc/locale.gen" file using your text editor and uncomment the locale statement that suits your needs. For the purpose of this guide, we will uncomment the en_US.UTF-8 UTF-8
line in the file using Vim.
vim /etc/locale.gen
After editing the file, type locale-gen
in the terminal to generate the locale configuration.
Next, create a new hostname file inside /etc
and add the hostname you want for your computer in the file. This can be anything you want, and you don't need to enter anything but the name. When you're done, don't forget to save the file.
vim /etc/hostname
Create another text file with the name hosts
under the /etc
directory.
vim /etc/hosts
You'll notice that the file already contains some comments. Leave the comments as is and append the following text to the file. Remember to replace hostname
in the command with the system hostname you set in the previous step.
127.0.0.1 localhost::1 localhost
127.0.1.1 hostname.localdomain hostname
Creating and Configuring Users
Set up the root user password by typing the passwd
command. Then, create an additional non-root user using useradd
as follows, replacing username
with your username:
useradd -m username
Configure the new user's password using the passwd
command, again replacing username
with your username.
passwd username
Add the new user to the groupswheel
, audio
, and video
using the command given below. Replace username
with your username, and note that the group names in the command don't have spaces after the commas.
usermod -aG wheel,video,audio username
Setting Up the GRUB Bootloader
First, install the grub
package using pacman.
pacman -S grub
Then, install these additional packages required for the bootloader to work properly.
pacman -S efibootmgr dosfstools os-prober mtools
Mount your EFI partition ( /dev/sda1
) to the /boot/EFI
directory. Note that you'll have to create the directory first with mkdir
.
mkdir /boot/EFImount /dev/sda1 /boot/EFI
Finally, run the grub-install
script to install the bootloader in the EFI directory.
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=grub
Generate a GRUB configuration file using grub-mkconfig
as follows:
grub-mkconfig -o /boot/grub/grub.cfg
Install a Desktop Environment in Arch
Unlike other Linux distros, Arch Linux doesn't ship with a preinstalled desktop environment. And if you want to control the system via a GUI, you'll have to install one manually.
You can install whichever DE you prefer, but we will install the KDE Plasma desktop on this system. Before that, however, let's configure the display server, network manager, and similar services.
Run the following command to install the xorg
, plasma-meta
, and kde-applications
packages:
pacman -S xorg plasma-meta kde-applications
Then, enable the SDDM and NetworkManager services by typing:
systemctl enable sddmsystemctl enable NetworkManager
Exit the arch-chroot environment by typing exit
. Then, unmount the root partition mounted in the /mnt
directory as follows:
umount -f /mnt
Finally, restart your system by typing reboot
and remove the installation media. Once the system boots, you'll notice that the dark terminal screen is now replaced with the colorful SDDM splash screen.
To log in, type the user password and hit "Enter." You can also install multiple desktop environmentsand switch between each using the "Session" dropdown menu in the splash screen.
Related: How to Install and Use Another Desktop Environment on Linux