This easy yet comprehensive tutorial details how to install Arch Linux on your computer. Arch Linux is one of my favorite Linux-based desktop OSes. I have written at length why I use Arch Linux. If you want an OS that gives you complete control over your computing, Arch Linux is the one. However, installing Arch Linux can be a daunting task. That’s why I wrote this tutorial. My goal is to present the installation process in a manner that is easy to understand and follow. You might also want to read the official Arch Linux Wiki for more in-depth information on Arch Linux. Getting ready for Arch Linux This tutorial is for a single-boot Arch Linux installation on BIOS with MBR (master boot record). The installation will wipe all data from your hard drive, so please make a backup. I suggest using a dedicated SSD to install Arch Linux on your system, so that your data and OS are on separate physical storage devices. SSDs are much faster than traditional hard drives, and you can get a decent SSD for under $50. SUBSCRIBE TO OUR NEWSLETTER From our editors straight to your inbox Get started by entering your email address below. Please enter a valid email address Subscribe If your wireless card needs extra drivers, you should use an Ethernet cable for the installation process. Create USB of Arch Linux First, download the latest iso of Arch Linux from the official site. You can use the “dd” utility if you are running macOS or Linux. Windows users can use rufus to create bootable a USB drive of Arch Linux. Once you have the bootable drive ready, go to the BIOS settings of the target system and set it to use BIOS instead of UEFI, then plug in the USB and boot from it. You will boot into the command line interface or Arch Linux and see the following screen: Swapnil Bhartiya The boot screen of Arch Linux. Swapnil Bhartiya The entire installation will be done in command line. If you are using an Ethernet cable, skip the wireless configuration section and ping Google to check connectivity. If you plan to use wireless then run an “ip link” command to see if your wireless chip is detected. On my system the Ethernet displayed as “enp0s5,” and the wireless displayed as “wlp58s0.” Let’s connect to the network using the wifi-menu tool (use the name of your wireless device in the command below): wifi-menu wlp58s0 That will open a dialogue box where you can use the arrow keys to select the network you want to connect to. Skip the step where you can name the profile and then enter the password for the network in the next dialog box. Swapnil Bhartiya You can easily connect to the wireless network. Next, you should ping Google to check if it’s connected. If you are connected, you will get a positive output: ping -c 3 www.google.com Prepare the hard drive There are many tools for partitioning, but I am using the “parted” tool for this tutorial. Run the “lsblk“ command to find the name of the storage devices. In my case its “/dev/sda.” Now open the “parted” tool: parted /dev/sda Next, create an MBR partition table: (parted) mklable msdos And then create partitions: (parted) mkpart primary ext4 1MiB 30GiB (parted) set 1 boot on (parted) mkpart primary linux-swap 30GiB 38GiB The first step creates a root partition of 30GB, the second step sets the boot flag on this partition, and the third step creates swap partition of 8GB. I won’t be creating a separate home partition, it will be created within root. Since I will also be installing more than one desktop environments on this system, I am allocating 30GB to root. You can choose as much space as you want for root. Make sure to use the endpoint of step one as the start point in step three. Once the partitioning is finished, exit the “parted” tool by typing “quit.” Now check the newly created partitions with “lsblk” command, to make sure everything is as expected: sda 259:0 0 477G 0 disk --sda1 259:1 0 30G 0 part / └--ada2 259:2 0 8G 0 part [SWAP] Here “sda1” is root and “sda2” is swap. Now we will format these partitions. I am using the “ext4” file system for root. # mkfs.ext4 /dev/sda1 Then format the swap partition: # mkswap /dev/sda2 # swapon /dev/sda2 Now mount the root partition: # mount /dev/sda1 /mnt Installation Before we start installation, let’s choose the closest mirror for the repositories for the fastest download speed. Open the “mirrorlist” file with Nano editor: # nano /etc/pacman.d/mirrorlist Use arrow keys to highlight the URL of the desired mirror. Use Alt+6 to copy it and then paste it at the top of the list with Ctrl+U. Then save the file with Ctrl+o and close it with ‘Ctrl+x’. Now we install the base packages: # pacstrap -i /mnt base base-devel Once all packages are installed, we will generate the “fstab” file. This is the file that stores info about the mounted storage devices (the command should be run only once): # genfstab -U /mnt > /mnt/etc/fstab Now “Chroot” into the newly installed system to configure it: # arch-chroot /mnt /bin/bash Setting up the boot-loader There are many boot-loaders for Arch Linux, but I am using “syslinux” instead of grub as it gave me a lot of trouble on the Dell XPS 13. Next, install syslinux: # pacman -S syslinux And then run the following command to create entries for the boot menu: # syslinux-install_update -i -a -m We need to edit the syslinux config file to use the correct root partition: # nano boot/syslinux/syslinux.cfg Scroll down to find the section that lists entries for arch and archfallback. Replace “sda2” with the root partition of your system. After making those changes, my entries look like these. Swapnil Bhartiya Set the language and time zone We have to now select the default language of the system. I am using US English. Run the following command: # nano /etc/locale.gen You will see a very long list of languages. Just uncomment the one that you need. I uncommented “en_US.UTF-8.” Save and close the file and then run the following commands, one by one: # locale-gen # echo LANG=en_US.UTF-8 > /etc/locale.conf # export LANG=en_US.UTF-8 Next, we’ll configure the time zone. I live on the U.S. east coast so I am setting New York as my time zone. Run the following command and the follow the steps: # tzselect Now create symlink to the selected time zone: # ln -s /usr/share/zoneinfo/America/New_York /etc/localtime Then set the hardware clock to UTC: # hwclock --systohc --utc Change hostname and create user accounts Let’s give our system a decent host name: # echo swapnil > /etc/hostname Now create the root password by running the following command: # passwd Once root password is generated, let’s create a user for our system. # useradd -m -G wheel,users -s /bin/bash swapnil Then create password for this user: # passwd swapnil Install Gnome and complete installation Technically we have Arch Linux installed, but we still need some work. It’s time to choose the desired desktop environment. I will be installing Gnome as it’s easy to use and works great on HiDPI displays: # pacman -S gnome gnome-extra Now we need to install networking tools so you can manage network from GUI: # pacman -S iw wpa_supplicant dialog network-manager-applet networkmanager If you are installing Arch Linux on a laptop then you also need support for trackpad, so install the “synaptics” package: # pacman -S xf86-input-synaptics I will also install “bash-completion,” which will make my life easier by autocompleting commands and package name: # pacman -S bash-completion Now all we need to do is to tell “systemd” so that Gnome Display Manager and Network start at the system boot: # systemctl enable NetworkManager.service # systemctl enable gdm.service Our installation is complete, but we need to get out of the chroot environment: # exit Now unmount the root partition: # umount -R /mnt Restart your machine so you can boot into your brand new Arch Linux system: # reboot Remove the USB drive when the system shuts down so that it can boot into the newly installed Arch Linux. If everything went well, you will see the Gnome boot screen. Congratulations, you are now an Arch Linux user. Welcome to the club! If you have any questions, ask them in the comment section below. Related content opinion These are the most exciting Linux powered devices Did you know that Tesla cars ran on Linux?rn By Swapnil Bhartiya May 22, 2017 4 mins Linux Open Source opinion How Rackspace flew through turbulence in the private cloud Bryan Thompson, General Manager, OpenStack Private Cloud at Rackspace, talked about the second generation of cloud and some turbulence that OpenStack recently experienced.rn By Swapnil Bhartiya May 22, 2017 4 mins Open Source Cloud Computing Data Center opinion How Dell’s Project Sputnik came to life I met and talked to Barton George, the projectu2019s initiator and leader, to understand the backstory. By Swapnil Bhartiya May 22, 2017 10 mins Linux Open Source Computers and Peripherals opinion Elementary OS is trying to create a business model for open source app developers There is no dearth of Linux based operating systems, you will find dime a dozen. However there are only a few major ones that matter and elementary OS is among them. rn By Swapnil Bhartiya May 20, 2017 4 mins Linux Open Source Podcasts Videos Resources Events SUBSCRIBE TO OUR NEWSLETTER From our editors straight to your inbox Get started by entering your email address below. Please enter a valid email address Subscribe