Skip to Main Content

Build a Killer Customized Arch Linux Installation (and Learn All About Linux in the Process)


Don't like Windows 8's new interface? Sick of Ubuntu Unity and the new ads that come along with it? Maybe it's time to create your own, ideal operating system with just the features you want. Arch Linux can make it happen: it lets you build your own personal, killer Linux distro from the ground up.

If this article looks familiar, it's because we've posted it before! However, Arch recently changed its installation process quite a bit, making our old guide outdated. Due to the popularity of this guide, we've updated it to work with Arch's new process, so we can all keep getting our Arch fix (and hopefully introduce a few new users to the OS of their dreams).

Here's why you may want to use Arch Linux, followed by how to set it up.

Who Is Arch Linux Good For?

Linux is popular for a number of reasons, but high on that list is the fact that, with Linux, you have a lot more power to tweak your OS to your liking. You also have the opportunity to learn more about the way computers and operating systems work. While Ubuntu certainly fits this bill (when compared with Windows or Mac OS), intermediate Linux users may be itching to try something new. Arch Linux is a great distribution for intermediate users looking to dig into Linux a bit more and essentially roll your own fast, stable, super-personalized distro.

The key part of this explanation is "intermediate users." Arch Linux is not for Linux beginners; there's a lot of manual configuration and command line work involved that Linux rookies probably aren't comfortable with. If you are a rookie, that's awesome—welcome to the wonderful world of Linux—but you won't want to start here. Check out our guide to getting started with Linux first, and when you've used something like Ubuntu or Mint for awhile, come on back here for some serious Linux action. If you're familiar with something like Ubuntu and are comfortable with the basic ideas of command line work and configuration files, read on, because Arch Linux is a great next step.

This guide has two parts. The first half describes the philosophy behind Arch Linux and its benefits as a distro, while the second part is a (very simplified) guide on setting up your first Arch install. I won't go through some of the more basic explanations since, as Linux users, you probably know how to burn an ISO image to CD, what the difference between 32- and 64-bit operating systems is, and so on.

Bear in mind that while this guide should get you started, this is by no means a one-stop-shop for all Arch Linux knowledge. I highly, highly recommend you also browse the Arch Linux Wiki, especially the Beginner's Guide, before you actually begin. The forums are also a great source of info, so check them out as well. If you just follow the steps in this guide and go "ta-dah!", you'll miss the point of what Arch Linux has to offer. The Beginner's Guide can be a bit overwhelming, since it incorporates so many different possibilities that many first-timers won't deal with, so I've created this guide to inspire you and help show you that it isn't as nerve-racking as it may seem—but you'll still want to use multiple resources when you go to install your system.

Why Arch Linux?

As Arch is definitely not for Linux beginners, you may be wondering what its advantages are. While it's pretty popular among developers and the like, it's also pretty popular among general tweakers and geeks that like to really get at the nuts and bolts of a system. If you've been a Linux user for a little while and you'd love to get a bit deeper and learn about how it works—so you can more properly and openly configure it to work for you—Arch is the perfect next step in your journey.

The philosophy behind Arch is what's known as The Arch Way: simplicity at its finest. Specifically, Arch aims to be an efficient, user-centric, open, elegantly coded distribution that doesn't sacrifice anything for convenience. That is, when faced with a choice between more efficient code and a simpler experience for the average computer user, Arch will always choose the former.

However, while this may seem like a burden to some, it's actually one of Arch's biggest advantages. Instead of configuring the distribution to be idiot-proof, Arch forces you (politely) to learn what each configuration file and important terminal command does early on. Thus, when something breaks or when you want to configure something beyond what KDE or GNOME has options for, you pretty much already know where to go and what to do.

Note that I'm not trying to say that idiot-proofing is a bad thing. In fact, being simple to use is one of the best characteristics a modern OS can have—for the average PC user. Once again, this guide is not for those people. This is for those of us that love tinkering with our operating system's insides.

Why, as an Ubuntu User, You May Want to Switch

Of course, if you're already a Linux user, you're probably pretty happy with all the options your distro of choice gives you. Here's what Arch really offers that makes it worth trying.

You'll Know What's Really Going on Behind the Scenes

For the record, I like Ubuntu. It's easy to install, works out of the box on tons of hardware, and has actually made some interesting innovations on the desktop (whether you love or hate Unity as a whole). I've also used it to repurpose some old PCs for my mother around the house and it's easy enough for even non-geeks to use. If you use Linux solely because it's free, open, and easy to use, you don't need to complicate your life for no reason. However, if you've used Linux for a little while and would like to take the next step, Arch is where you want to go.

While Ubuntu works out of the box with a lot of computers, and provides a lot of user-friendly configuration for certain things, it's a nightmare to configure for others. It provides no way of teaching you where the correct config files are for your eighty button mouse or your three monitor setup, and I hate to say it, but in my experience the Ubuntu forums have been less than helpful. Again, not to hate, but that's just what I've experienced.

Arch's installation doesn't really have a graphical interface. It's mostly done through the command line, and consists of you using a guide like this and the fabulous Arch Wiki to partition your drive, install a minimal base system, and go through each command and configuration file to get things set up, and you'll know how the base system works. That way, down the road, when you want to automatically mount another hard drive when Arch boots, you'll know you need to add something to the options column of /etc/fstab, and you won't be intimidated by that fact. And, when you don't know what to do, Arch has one of the best documentations and communities I've ever seen.

You'll Always Have the Newest Software

Unlike other popular operating systems, Arch doesn't have a big update every two years, one year, or even six months—Arch updates whatever it wants, whenever it wants, which means you're constantly on the bleeding edge of both the OS and the software you use.

Note that in this instance, "bleeding edge" does not mean "ridiculously unstable". Lots of testing goes into these packages before they get added to the repositories, and you aren't going to find your PC crashing every day because you're always getting the newest updates. What it really means is that you'll get software updates as soon as they're ready to use, not as soon as Ubuntu gets around to updating their repositories. If Thunderbird releases an update, you'll get that update the next day—not the next month.

You Build a Killer Operating System that Fits Your Needs and Wants

Since you start off with a minimal install and build up from there, you won't have any unnecessary packages bloating up your system. You have complete control over everything that goes into your setup, and you can make it as small and minimalistic or as big and powerful as you want—you essentially build your own, fast, stable, super-customized Linux distro from the ground up. And who wouldn't love that?

How to Install Arch Linux

If all this sounds like your dream come true, then it's time to move on to the next step: actually installing Arch. While the Arch Wiki has a great Beginner's Guide (have I mentioned that you should read it?), I found I still ran into a few hiccups along the way, and the wiki is so full of (great) information that it can be a bit overwhelming for an Arch first-timer. For example, the beginner's guide goes through lots of different possible situations—i.e., if you're using a static IP, if you require wireless internet from the get-go, etc. Instead of trying to sift through all that and ignore the more advanced stuff that may not apply to you, I've created this guide that should get you up and running without your brain exploding.

This guide contains the methods I found work best and were easiest for me, and they should work with most PC builds without a problem. If you do run into any problems, or have any specific needs that aren't fulfilled by this guide (like if you are using a static IP), you can probably find more detail in the corresponding section of Arch's Beginner's Guide, so head over there when necessary.

Step One: Get Yourself an Arch Linux Install CD

You can install Arch many different ways, but we're going to use your basic CD installation. If you don't have an optical drive, you can always install it from a USB flash drive, too. Head over to the Arch download page, download the Arch Linux ISO, and burn it to your installation medium of choice before you continue.

Step Two: Set Up Your Partitions

While you could always partition your drive from the Arch Linux installation CD, it's much easier to do from a Linux Live CD like Ubuntu or GParted, which you probably already have (because you're no Linux slouch!). Assuming you already know how to partition drives, go ahead and make one for your OS (around 15GB is safe) and one for all your documents and apps (which can be as big as you want). If you use an SSD, you can just make one partition on the SSD for your boot drive and one on a bigger HDD for your files. You can also make a nice 1GB swap partition for good measure, but if you have a lot of RAM, this probably isn't necessary.

Format them as ext4, and note the names of the two you'll be using (i.e. /dev/sda1 as the OS partition and /dev/sda2 as your data partition), as that's how you'll have to refer to the partitions during the install process.

Now that you've created your partitions, boot up from your newly-burned Arch Installation CD and choose "Start Arch Linux" at the prompt. Make sure you choose the right architecture for your CPU (32-bit or i686 vs 64-bit or x86-64). When it finishes booting, you'll get a command line prompt.

Start by seeing if you have an active internet connection. I recommend plugging your computer in via Ethernet, since that'll make installation a lot easier, even if you plan on using Wi-Fi later. To see if you have a connection, just ping Google with the following command:

ping -c 3 www.google.com

If you get an error that says unknown host or anything like that, you'll need to set up your network manually.

Next, mount those partitions you just created. If you aren't sure the names of your partitions, run the following command:

fdisk -l

You'll see a list of your drives and partitions, with the same names we saw before (like /dev/sda1. Make note of the partition(s) you want to use for Arch.

Again, we're using two partitions here—one for the OS and one for our personal files. So, we're going to need to mount them as such. Mount your drives using the following commands:

mkdir /mntmount /dev/sda1 /mntmkdir /mnt/homemount /dev/sda2 /mnt/home

In this example, /dev/sda1 is our root partition for the OS, while /dev/sda2 is our home partition for our files.

The last thing you need to do before starting is select a mirror for downloading your packages. Run:

nano /etc/pacman.d/mirrorlist

Scroll down to your preferred mirror (the closer to your location the better), press Alt+6 to copy the line, then scroll back up and press Ctrl+U to paste that line at the top of the list. US users should already have a good server at the top of the list. When you're done, press Ctrl+X to exit, and save with Y and Enter if you made any changes.

Step Three: Install the Arch Base System

Now it's time to start the installation. You can do so with the following command:

pacstrap -i /mnt base

If you want to tweak any packages during the process, you can do so when prompted, but the default settings should be fine.

Next, you'll need to create and edit some config files. Here are the ones you want to worry about:

/etc/fstab: Fstab stands for File Systems Table. This file lists your available drives and partitions and decides how you'll use each one. To create one for your drive, just run:

genfstab -U -p /mnt >> /mnt/etc/fstab

You can then view and edit it with:

nano /mnt/etc/fstab

The columns, in order from left to right, list the drive's name(s) and UUID, mount point, file system, and boot options. You probably won't have to do anything here at the moment, but if you have a lot of partitions on your drive, you'll probably find yourself back here soon. You may also want to clean up the columns a little bit so they line up better, but that's up to you. Check out the Fstab wiki entry for more information.

/etc/locale.gen: This file determines certain location-based settings, like time and date formats, alphabetic tweaks, and other things. For this and the other configuration files, we'll need to chroot into our newly-created system. Essentially, we'll be running a terminal on that system without having booted into it yet. To do this, just run:

arch-chroot /mnt

Next, create the locale files by running:

nano /etc/locale.gen

By default, everything has been commented out with a #, but you can scroll down and uncomment the line for your locale(s) by deleting the # symbol. For example, US users would uncomment the en_US.UTF-8 line. Again, press Ctrl+X to exit, then Y and Enter to save it.

You should also create a locale.conf file with the following command (for English-speaking US users):

echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8

If you speak another language, tweak this command accordingly.

Time Zone and Clock: Next, we'll set our time zone. To view the available zones, run the following command:

ls /usr/share/zoneinfo

You can view sub-zones by picking a category and running:

ls /usr/share/zoneinfo/America

Find the zone you want, then run the following command, replacing America/Los_Angeles with your time zone:

ln -s /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Then, set the clock according to your chosen zone with:

hwclock --systohc --utc

That's all you should need for now in the realm of miscellaneous configuration files. The next few steps will be a tad more pointed.

Step Four: Set Up Your Network

At this point, you have network access from the live CD, but you'll need to set up your network for the actual Arch installation.

If you have a wired connection, with a dynamic IP address, all you need to do is enable the wired networking service on your new setup. To enable a background service like this one, you'll need to use the systemctl command. In this case, run:

systemctl enable [email protected]

If you connect using Wi-Fi, you'll need to install a few packages first. To start, install Arch's wireless tools with:

pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

Then, run the following to connect to your network:

wifi-menu

This will create a profile in /etc/network.d named after your network. Lastly, enable the wireless service with systemctl:

systemctl enable net-auto-wireless.service

Now, your network should be all set up and ready to go when you finish installing Arch.

Step Five: Configure Your Package Manager

Arch Linux uses a package manager called Pacman, and it's pretty darn awesome. Before you can use it in your new installation though, you'll need to do a few things. Start by editing its configuration file with:

nano /etc/pacman.conf

Scroll down to the "Repositories" section. The [core], [extra], and [community] repositories should already be uncommented, but if you're on a 64-bit machine, you should also enable the [multilib] repository, which lets you install both 64- and 32-bit programs. To do so, add the following lines to the bottom of the config file:

[multilib]Include = /etc/pacman.d/mirrorlist

If you're on a 32-bit system, you shouldn't need to edit anything in here right now, but it's a good idea to take a look around, since this is where you'll add any extra repositories in the future. When you're done, go ahead and exit, saving any changes you might have made.

When you're done, run the following command to refresh your repository list (if you made any changes):

pacman -Sy

We'll talk more about how to use Pacman in a little bit. For now, head to the next step.

Step Six: Create a User Account

Now it's time for a few finishing touches before we actually boot into our Arch system. First, set the root password by running:

passwd

Type in your desired password when prompted. Now, as an intermediate Linux user, you already know you don't want to use the root account for regular computing, since that can be dangerous. So, create a user account (and a password) for yourself by running:

useradd -m -g users -G wheel,storage,power -s /bin/bash johndoepasswd johndoe

Of course, replace johndoe with your desired username. The string of comma-separated terms contains the groups to which your user belongs. The ones listed should be fine, though they aren't the only ones available. If you have a floppy drive or scanner, for example, you'll want to add floppy and/or scanner to the list. For a full list, check out the Groups wiki entry.

Now would probably be a good time to install sudo too, so your new user can perform administrative tasks. To do this, use the aforementioned Pacman package manager:

pacman -S sudo

That's how easy adding a package is in Pacman. If you wanted to see a list of packages pertaining to a search term, you could type:

pacman -Ss sudo

This would search the repositories for "sudo", returning to you a list of packages containing that name. Of course, you could also search the database on Arch Linux's web site.

Once you've installed sudo, you can allow your new user to run it by editing your sudoers file:

EDITOR=nano visudo

Scroll down until you find this line and uncomment it:

%wheel ALL=(ALL) ALL

Save the document and exit the editor. This tweak will allow all members of the wheel group—to which your new user belongs—to use sudo, which will be handy when you finally boot into our new OS.

Step 7: Install Your Bootloader

Next, you'll need to install a bootloader that can boot you into your Arch installation. For this guide, we'll be using the ever-popular GRUB, though you can use something else if you desire. If you're installing Arch on a UEFI-based motherboard (instead of a BIOS-based motherboard) or if you're dual-booting, you may want to do some extra reading before continuing, as everyone's setup is going to be a little different.

To install GRUB, run the following commands, replacing /dev/sda with the drive (not the partition, /dev/sda1) that holds your Arch Linux installation:

pacman -S grub-biosgrub-install --target=i386-pc --recheck /dev/sdacp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

If you're dual booting, run the following:

pacman -S os-prober

Then, whether you're dual-booting or not, run:

grub-mkconfig -o /boot/grub/grub.cfg

This will create a config file for your bootloader (which you can edit if you want different options when booting into Arch or another OS).

Lastly, exit from chroot, unmount your partitions, and reboot your computer:

exitumount /mnt/homeumount /mntreboot

Obviously, if you mounted other partitions at any point, include them in the commands above. You should also remove your Arch Linux Installation CD at this time.

Step Eight: Get Your Desktop Up and Running

When you reboot, you should find yourself at a simple login prompt, just like when you first started. However, this time, you're actually logging into your new Arch installation! You now have a very basic system from which you can build up a working desktop with sound, video, and more.

To start, let's get sound up and running. To do this, you need to install alsa-utils with the following command:

sudo pacman -S alsa-utils

Then, start up alsamixer:

alsamixer

All your channels will start muted, so use the M key to unmute the channels you need. Then, use the arrow keys to turn them up or down. You'll definitely want to unmute the Master channel, and the PCM channel if you have one. Depending on your speaker setup, you may also need to unmute others like Front Speaker or Headphone. Raise their volume up until "dB gain" equals "0" for each. This will ensure that you don't get any sound distortion. Press ESC when you're done.

To check and make sure your speakers are working, just run:

speaker-test -c 2

Change 2 to the number of speakers you have (for example, 8 if you have a 7.1 surround system). If you hear the static it generates, you've got working audio! If not, head back to alsamixer and try tweaking your channels to make sure everything's properly unmuted. To stop the speaker test, press Ctrl+C.

Next, it's time to get some graphics up and running. First, we'll install the X window system with:

sudo pacman -S xorg-server xorg-xinit xorg-server-utils

If you want 3D support, you'll also want to install mesa:

sudo pacman -S mesa

Now comes what, in my experience, is always the most troublesome part of a Linux installation: video drivers and configuring X. The video driver you need will depend on your graphics card and what you want to get from it, so see the corresponding entry in the Beginner's guide for more information. You'll use Pacman to install those drivers, a process with which you're probably familiar. For example, if I wanted to install the proprietary NVIDIA drivers on a 64-bit system, I'd run:

sudo pacman -S nvidia lib32-nvidia-utils

Again, your commands will differ. Do some research to find out what drivers you need.

Most desktop computers should be able to use their mouse and keyboard out of the box. If you're on a laptop, though, you should take this time to install some drivers for your trackpad:

sudo pacman -S xf86-input-synaptics

We're in the home stretch! Biw it's time to see if you can get a graphical environment up and running. First, install the default environment:

pacman -S xorg-twm xorg-xclock xterm

Then, to test X, just run:

startx

If it works, you should be able to interact with a very basic windowed environment and run commands in xterm. You can exit by typing exit into xterm and hitting Enter.

It is here where I learned I used the wrong video drivers my first time around, so I had to uninstall the old ones and reinstall a different package. To remove a package in Pacman, just type:

pacman -Rns package_name

The n flag removes all the configuration files related to a package, while the s flag removes any dependencies that are now unnecessary. I generally always use n and s when removing a package, because I like to keep my system clean of cruft.

If you're having trouble with your video drivers and testing X, there's more information on troubleshooting it in the Beginner's Guide.

Stay with us, we're at the last step! All that's left is to install your desktop environment of choice. First, install a few fonts:

sudo pacman -S ttf-dejavu

Then, pick your favorite desktop environment and install it (you can see lots of good choices here). Your commands will differ depending on what you choose, but it should be simple. For example, to install a GNOME desktop, you'd run:

sudo pacman -S gnome

This could take awhile, depending on how big of an environment you want. Once it's done, you can turn on a display manager to give yourself a graphical login to your new desktop. GNOME comes with the gdm display manager, so to enable its service (remember those?) we just need to run:

sudo systemctl enable gdm.service

Now, reboot your system with sudo reboot and you should find yourself inside a new desktop on your new Arch system! Hooray!

Going Further: Using Pacman, Installing Other Apps, and More

Congratulations on setting up your first Arch desktop. There's a lot more to learn, but that's pretty much where this guide ends. Here are some things you may want to read up on to get started:

  • How to Use Pacman: You already know how to install a package with Pacman, but this'll show you how to remove packages, update your repositories, and update your system with the newest versions of all your apps. Memorize this, it will be your bible.

  • Install Other Apps with the Arch User Repository: One of my absolute favorite parts of Arch is the Arch User Repository, or AUR. This is a special repository that combines apps that aren't in the official repositories, managed by Arch's user. It basically contains every Linux app you could possibly imagine. Read up on the AUR and install an AUR helper like Yaourt or Packer—they'll help you install apps from the AUR as easily as you install apps with Pacman. Seriously, do this.

  • Install Browser Plug-ins: You'll probably want (however begrudgingly) to install Adobe Flash, and this wiki page will help you do so.

  • Use the Forums: They'll be your greatest source of help. Of course, make sure you Google and search the forums before you go and start asking questions.

  • Compiz: Because who doesn't like cool desktop effects? Alternatively, KDE users can also use the built-in Kwin just by going to System Settings.

  • Our Lifehacker Pack for Linux and our App Directory: For finding all the best apps to get your new system started.


That's it for now! There's a ton of other information out there, and lots of cool things to do, but this will get you up and running. If you have any questions, Google and the Arch Forums are your friends, but so are we! Arch is a pretty popular distribution among Lifehacker readers, so hit us up in the comments of this post or in our weekly open thread if you've got questions.

Title image remixed from somchaij (Shutterstock).