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.
Note: 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.
The first step is to get the Arch Linux installation image from a suitable mirror. To do that, visit the Arch Linux Download page, 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.
The next steps include creating 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 “[email protected]” prompt.
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 your SSID and connect to it. Replace
[SSID] in the commands with your wireless interface and Wi-Fi name respectively.
iwctl station [device] get-networks iwctl 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
With your PC connected to the internet, you’re ready to begin. The Arch installation process at its core is similar to installing any other Linux distro. So what’s the catch?
While other distros provide a graphical user interface to configure and set up the OS, Arch Linux comes with only a command-line interface. Any instructions, commands, or configurations need to be done through the shell.
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
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.
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.
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.
w and hit “Enter” to write the changes to the disk.
mkfs.fat -F32 /dev/sda1
Again, run the following command to format the
/dev/sda3 (root) partition to ext4:
Issue the following commands one by one to format and enable the swap partition:
mkswap /dev/sda2 swapon /dev/sda2
Warning: For those who are dual-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.
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
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 -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:
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:
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.
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.
Create another text file with the name
hosts under the
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
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.
Add the new user to the groups
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
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 /boot/EFI mount /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
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
plasma-meta , and
pacman -S xorg plasma-meta kde-applications
Then, enable the SDDM and NetworkManager services by typing:
systemctl enable sddm systemctl 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 environments and switch between each using the “Session” dropdown menu in the splash screen.