The Friendliest Arch Linux Installation Guide on the Interwebs
I’ve had a few friends that wanted to try out Arch Linux but have given up after the grueling installation process. In this post I demonstrate, with screenshots, how I usually perform a fresh Arch Linux installation.
This guide (like most Arch installation guides) is really just a simplified version of what’s on the wiki here, so consider referring to it as well.
Download an Arch Linux ISO (I’m using
archlinux-2016.12.01-dual.iso for this tutorial).
I then use
dd to make a bootable USB drive. You can view a guide on how to do this in your OS here.
Boot and check internet
Boot the Arch Linux image.
Boot Arch Linux (x86_64).
You’ll be automatically logged in on a console, as root
Make sure your internet connection is working:
ping -c 4 google.com
If it’s not working you’ll need to fix this before continuing.
If you’re using wifi, you’ll need to configure a connection to it. First, we’ll use
wifi-menu to create a connection profile.
Follow the prompts.
That should have established a connection (test with
ping google.com). If not, follow the steps below.
List your profiles using
Once you have identified the name of your newly created profile, establish a connection
Partition the hard drive
Check your current partitions with
Each hard drive is assigned to a block device such as
You can ignore
/dev/loop0 - it’s used to mount the image that we just booted from (so its files can be accessed).
I’ll be installing Arch on
/dev/sda, an 8GB hard drive.
I like to use
cfdisk to create the partitions
You can also use other tools such as
I’m only going to create 1 partition for the root directory (
It’s optional to create a separate partition for swap space, but I don’t because I hardly use swap (my PC’s have lots of ram - 12GB+) and thus don’t mind having sub-optimal swap file performance (you can still create a swap file on your root parition, its just slightly less efficient than allocating a partition to it)
There are many more complicated partitioning schemes for varying purposes which you can explore on the Arch Wiki partitioning page
At this point, you may have to delete/modify some of your old partitions first, remember to be careful when doing this.
Enter the partition size. I assign the entire free space for this partition.
Make the partition
primary - you can only boot an operating system from a primary partition
bootable to make this partition a bootable partition.
write to write the partition changes
Quit to exit the partition manager
Verify the partitions using
Note that hard drive partitions are represented by an additional number on the block device, i.e. the 1st partition on the drive is
/dev/sda1, 2nd partition is
Format (create filesystem on) the primary partition using
Install Arch Linux base system
Mount the primary partition that we just created to
Select the mirrors that the Arch base packages will be downloaded from. This step isn’t mandatory but highly recommended.
Using nano, find all the mirrors from your country and move them to the top of the list
Note that nano displays some handy commands at the bottom such as “Where Is” and “Cut Text”. The
^ symbol refers to the Ctrl key.
Now install the Arch Linux base packages
This will automatically download and install all the required packages
Create an fstab file
Short for ‘file system table’ it describes how your partitions should be automatically mounted in the filesystem. In our case its just mounting the partition
/dev/sda1 to the root,
Manually verify the fstab entries
If you notice something wrong with it (such as duplicate entries from running
genfstab twice), then just edit the fstab file and correct it.
Switch to the newly installed system (starts a new interactive shell with
/mnt as the root dir)
Set the time zone
First list the available timezones
My time region is
Now set the timezone
Configure locale (system language)
/etc/locale.gen and uncomment
/etc/locale.conf and add
Set your hostname
Set the same hostname in
Make network connections persistent (runs on startup)
If you’re using wifi install the following packages so you can connect to the wifi after rebooting.
Set the root password
Install the boot loader (GRUB)
Install GRUB. If you have more than 1 OS on your machine,
os-prober will take care of that and automatically add the other OS’s to your grub menu.
Generate a GRUB configuration file
Finally, exit from the chroot, unmount the partitions and reboot your Arch Linux. Make sure you have removed the installation media too.
Arch Linux from the boot menu
Log in to your newly installed Arch system as root user and password that you made during installation.
If you’re using wifi, you’ll need to establish a connection again using the same method as earlier (
Enable multilib repository. This is necessary to run 32-bit applications on our 64-bit installation of Arch Linux.
Then update the package list and upgrade with
Users and groups
Create a new normal user
And set the password for the account
Check that you have sudo installed so our normal user can perform administrative tasks (it should have already been installed from the
base-devel package group which we installed earlier)
Add the new user
michael to the sudoers group
Now all users in
wheel group can use sudo (thats why we added
Install desktop environment (kde)
Install Xorg first (this is a display server required for kde, and pretty much any GUI application)
The package group
xorg installs a bunch of video drivers so you don’t have to worry about manually finding yours.
Install kde plasma 5
Start SDDM on startup. SDDM is a display manager installed from the
plasma package group. It is a login GUI displayed at the end of the boot process.
Edit the SDDM theme to look like plasma
SDDM doesn’t look great in KDE. However you can easily fix that by changing the theme
Set the following parameters
Install kde base applications - konsole, dolphin etc.
Finally, reboot and use your password to login
If everything looks good, make SDDM auto-login (I like to do this, but you don’t have to)
Open konsole (alt+space, type konsole, press enter)
sudo is required now because we’re logged in as
Reboot and now the SDDM greeter should be skipped.
Install sound drivers
ALSA is already included with the linux kernel and is recommended because usually it works out of the box (it just needs to be unmuted).
Unmute audio and test if sound works
OSS is a viable alternative in case ALSA does not work.
Add an AUR helper
The Arch User Repository is a community-driven repository of packages. Some packages include
dropbox. The easiest way to install packages from the AUR is by using an AUR helper and the one I like to use is called
packer. Other AUR helpers do exist.
packer, you have to download and build it manually. I’ve made a shell script that does this automatically which you can run using:
packer in the same way as
packer -S <package>). Don’t use
sudo in front of
packer, if it needs administrative permissions it will ask you to enter the root password.
Shorten grub timeout
I like to reduce the GRUB timeout from 5 seconds down to 2 seconds.
Get config files from github
I store a few of my config files on github, such as my bash config (
~/.bashrc). To retrieve them, I simply cd to my home directory and clone the repo. There are many benefits to storing your config on github, but it’s really up to you.
There are many post-installation configurations that one could do - see this page on the Arch wiki for other ideas.
Every week or two you’ll want to run
sudo pacman -Syu and
packer -Syu to keep your packages up to date.
To remove a package I usually use
pacman -Rs package_name. The
Rs means: remove the package and its dependencies which are not required by any other installed package.